mbox series

[v4,0/9] USB host support for Raspberry Pi 4 board (64-bit)

Message ID 20200525113959.11886-1-s.nawrocki@samsung.com
Headers show
Series USB host support for Raspberry Pi 4 board (64-bit) | expand

Message

Sylwester Nawrocki May 25, 2020, 11:39 a.m. UTC
Hi all,

This patch series adds USB host support for Raspberry Pi 4 board. 
It includes the Broadcom STB PCIe controller driver ported from Linux 
kernel, a memory mapping update for the xHCI controller on PCIe bus
for 64-bit builds and some related fixes and updates in the usb/xhci 
and the pci driver core code.

The 32-bit ARM part has be excluded from the series and will be posted
separately.

The difference comparing to previous version is only in the config update
patch "configs: Enable support for the XHCI controller on RPI4 board (ARM
 64-bit)".

The patch series is based on v2020.07-rc1 tree.

Thanks,
Sylwester

Marek Szyprowski (3):
  rpi4: shorten a mapping for the DRAM
  rpi4: add a mapping for the PCIe XHCI controller MMIO registers (ARM
    64bit)
  configs: Enable support for the XHCI controller on RPI4 board (ARM
    64-bit)

Nicolas Saenz Julienne (1):
  linux/bitfield.h: Add primitives for manipulating bitfields both in
    host- and fixed-endian

Sylwester Nawrocki (5):
  usb: xhci: Add missing cache flush in the scratchpad array
    initialization
  usb: xhci: Use only 32-bit accesses in xhci_writeq/xhci_readq
  pci: Move some PCIe register offset definitions to a common header
  pci: Add some PCI Express capability register offset definitions
  pci: Add driver for Broadcom BCM2711 SoC PCIe controller

 arch/arm/mach-bcm283x/init.c  |  20 +-
 configs/rpi_4_defconfig       |   9 +
 configs/rpi_arm64_defconfig   |   8 +-
 drivers/pci/Kconfig           |   9 +
 drivers/pci/Makefile          |   1 +
 drivers/pci/pci-rcar-gen3.c   |   8 -
 drivers/pci/pcie_brcmstb.c    | 623 ++++++++++++++++++++++++++++++++++++++++++
 drivers/pci/pcie_intel_fpga.c |   3 -
 drivers/usb/host/xhci-mem.c   |   3 +
 include/linux/bitfield.h      |  52 ++++
 include/pci.h                 |  22 +-
 include/usb/xhci.h            |   8 -
 12 files changed, 740 insertions(+), 26 deletions(-)
 create mode 100644 drivers/pci/pcie_brcmstb.c

Comments

Matthias Brugger June 11, 2020, 8:38 a.m. UTC | #1
Hi Sylwester,

On 25/05/2020 13:39, Sylwester Nawrocki wrote:
> Hi all,
> 
> This patch series adds USB host support for Raspberry Pi 4 board. 
> It includes the Broadcom STB PCIe controller driver ported from Linux 
> kernel, a memory mapping update for the xHCI controller on PCIe bus
> for 64-bit builds and some related fixes and updates in the usb/xhci 
> and the pci driver core code.
> 
> The 32-bit ARM part has be excluded from the series and will be posted
> separately.
> 
> The difference comparing to previous version is only in the config update
> patch "configs: Enable support for the XHCI controller on RPI4 board (ARM
>  64-bit)".
> 
> The patch series is based on v2020.07-rc1 tree.
> 
> Thanks,
> Sylwester
> 
> Marek Szyprowski (3):
>   rpi4: shorten a mapping for the DRAM
>   rpi4: add a mapping for the PCIe XHCI controller MMIO registers (ARM
>     64bit)
>   configs: Enable support for the XHCI controller on RPI4 board (ARM
>     64-bit)
> 
> Nicolas Saenz Julienne (1):
>   linux/bitfield.h: Add primitives for manipulating bitfields both in
>     host- and fixed-endian
> 
> Sylwester Nawrocki (5):
>   usb: xhci: Add missing cache flush in the scratchpad array
>     initialization
>   usb: xhci: Use only 32-bit accesses in xhci_writeq/xhci_readq
>   pci: Move some PCIe register offset definitions to a common header
>   pci: Add some PCI Express capability register offset definitions
>   pci: Add driver for Broadcom BCM2711 SoC PCIe controller
> 

Series looks good to me. The problem is that on RPi4 with 8 GB the USB FW get's
loaded via the RPi FW. Nicolas provided a series which is under review right
now. Without this series the 8 GB RPi4 won't boot. As soon as the series is
ready I'll take all the RPi4 PCI/USB related patches into the next branch.

Regards,
Matthias

>  arch/arm/mach-bcm283x/init.c  |  20 +-
>  configs/rpi_4_defconfig       |   9 +
>  configs/rpi_arm64_defconfig   |   8 +-
>  drivers/pci/Kconfig           |   9 +
>  drivers/pci/Makefile          |   1 +
>  drivers/pci/pci-rcar-gen3.c   |   8 -
>  drivers/pci/pcie_brcmstb.c    | 623 ++++++++++++++++++++++++++++++++++++++++++
>  drivers/pci/pcie_intel_fpga.c |   3 -
>  drivers/usb/host/xhci-mem.c   |   3 +
>  include/linux/bitfield.h      |  52 ++++
>  include/pci.h                 |  22 +-
>  include/usb/xhci.h            |   8 -
>  12 files changed, 740 insertions(+), 26 deletions(-)
>  create mode 100644 drivers/pci/pcie_brcmstb.c
>
Matthias Brugger July 8, 2020, 3:07 p.m. UTC | #2
On 25/05/2020 13:39, Sylwester Nawrocki wrote:
> Hi all,
> 
> This patch series adds USB host support for Raspberry Pi 4 board.
> It includes the Broadcom STB PCIe controller driver ported from Linux
> kernel, a memory mapping update for the xHCI controller on PCIe bus
> for 64-bit builds and some related fixes and updates in the usb/xhci
> and the pci driver core code.
> 
> The 32-bit ARM part has be excluded from the series and will be posted
> separately.
> 
> The difference comparing to previous version is only in the config update
> patch "configs: Enable support for the XHCI controller on RPI4 board (ARM
>   64-bit)".
> 
> The patch series is based on v2020.07-rc1 tree.
> 
> Thanks,
> Sylwester
> 
> Marek Szyprowski (3):
>    rpi4: shorten a mapping for the DRAM
>    rpi4: add a mapping for the PCIe XHCI controller MMIO registers (ARM
>      64bit)
>    configs: Enable support for the XHCI controller on RPI4 board (ARM
>      64-bit)
> 
> Nicolas Saenz Julienne (1):
>    linux/bitfield.h: Add primitives for manipulating bitfields both in
>      host- and fixed-endian
> 
> Sylwester Nawrocki (5):
>    usb: xhci: Add missing cache flush in the scratchpad array
>      initialization
>    usb: xhci: Use only 32-bit accesses in xhci_writeq/xhci_readq
>    pci: Move some PCIe register offset definitions to a common header
>    pci: Add some PCI Express capability register offset definitions
>    pci: Add driver for Broadcom BCM2711 SoC PCIe controller

Applied now to rpi-next

Thanks!

> 
>   arch/arm/mach-bcm283x/init.c  |  20 +-
>   configs/rpi_4_defconfig       |   9 +
>   configs/rpi_arm64_defconfig   |   8 +-
>   drivers/pci/Kconfig           |   9 +
>   drivers/pci/Makefile          |   1 +
>   drivers/pci/pci-rcar-gen3.c   |   8 -
>   drivers/pci/pcie_brcmstb.c    | 623 ++++++++++++++++++++++++++++++++++++++++++
>   drivers/pci/pcie_intel_fpga.c |   3 -
>   drivers/usb/host/xhci-mem.c   |   3 +
>   include/linux/bitfield.h      |  52 ++++
>   include/pci.h                 |  22 +-
>   include/usb/xhci.h            |   8 -
>   12 files changed, 740 insertions(+), 26 deletions(-)
>   create mode 100644 drivers/pci/pcie_brcmstb.c
>