
Hi all,
This patch series adds USB host support for Raspberry Pi 4 board. It includes the Broadcom STB PCIe driver ported from Linux kernel, a memory mapping update for the xHCI controller behind the PCIe bridge for 32-bit and 64-bit system builds and some related fixes and updates in the usb/xhci and the pci driver core code.
One of the issues I run into with RPI4 was not working accesses to 64-bit xHCI IO registers with readq/writeq. I am not entirely sure if that limitation comes from the VL805 USB host controller or from the BCM2711 PCI Express Root Complex, or if it's a matter of some missing configuration steps for one of these devices. In Linux kernel quad word accesses for 64-bit xHCI registers are never used, the best I could come up with so far is a Kconfig option which allows to disable readq/writeq for selected target. Any suggestions on how to better solve this are appreciated.
This patch series is based on v2020.04 tag.
Regards, Sylwester
Marek Szyprowski (4): rpi4: shorten a mapping for the DRAM rpi4: add a mapping for the PCIe XHCI controller MMIO registers (ARM 64bit) rpi4: add a mapping for the PCIe XHCI controller MMIO registers (ARM 32bit) config: Enable support for the XHCI controller on RPI4 board
Sylwester Nawrocki (5): usb: xhci: Add missing cache flush in the scratchpad array initialization pci: Move some PCIe register offset definitions to a common header usb: xhci: Allow accessing 64-bit registers with DWORD accesses only pci: Add some PCI Express capability register offset definitions pci: Add driver for Broadcom STB PCIe controller
arch/arm/mach-bcm283x/Kconfig | 1 + arch/arm/mach-bcm283x/include/mach/base.h | 7 + arch/arm/mach-bcm283x/init.c | 72 ++- configs/rpi_4_32b_defconfig | 9 + configs/rpi_4_defconfig | 10 + configs/rpi_arm64_defconfig | 9 +- drivers/pci/Kconfig | 5 + drivers/pci/Makefile | 1 + drivers/pci/pci-rcar-gen3.c | 8 - drivers/pci/pcie_brcmstb.c | 844 ++++++++++++++++++++++++++++++ drivers/pci/pcie_intel_fpga.c | 3 - drivers/usb/host/Kconfig | 7 + drivers/usb/host/xhci-mem.c | 3 + include/pci.h | 20 + include/usb/xhci.h | 4 +- 15 files changed, 985 insertions(+), 18 deletions(-) create mode 100644 drivers/pci/pcie_brcmstb.c