[0/4] Raspberry Pi 4 PCIe support
mbox series

Message ID 20191106214527.18736-1-nsaenzjulienne@suse.de
Headers show
Series
  • Raspberry Pi 4 PCIe support
Related show

Message

Nicolas Saenz Julienne Nov. 6, 2019, 9:45 p.m. UTC
This series aims at providing support for Raspberry Pi 4's PCIe
controller, which is also shared with the Broadcom STB family of
devices.

There was a previous attempt to upstream this some years ago[1] but was
blocked as most STB PCIe integrations have a sparse DMA mapping[2] which
is something currently not supported by the kernel.  Luckily this is not
the case for the Raspberry Pi 4.

Note that the driver code is to be based on top of Rob Herring's series
simplifying inbound and outbound range parsing.

[1] https://patchwork.kernel.org/cover/10605933/
[2] https://patchwork.kernel.org/patch/10605957/
---

Jim Quinlan (3):
  dt-bindings: pci: add bindings for brcmstb's PCIe device
  PCI: brcmstb: add Broadcom STB PCIe host controller driver
  PCI: brcmstb: add MSI capability

Nicolas Saenz Julienne (1):
  ARM: dts: bcm2711: Enable PCIe controller

 .../bindings/pci/brcm,stb-pcie.yaml           |  116 ++
 arch/arm/boot/dts/bcm2711.dtsi                |   47 +
 drivers/pci/controller/Kconfig                |   12 +
 drivers/pci/controller/Makefile               |    1 +
 drivers/pci/controller/pcie-brcmstb.c         | 1302 +++++++++++++++++
 5 files changed, 1478 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml
 create mode 100644 drivers/pci/controller/pcie-brcmstb.c

Comments

Florian Fainelli Nov. 6, 2019, 9:51 p.m. UTC | #1
On 11/6/19 1:45 PM, Nicolas Saenz Julienne wrote:
> This series aims at providing support for Raspberry Pi 4's PCIe
> controller, which is also shared with the Broadcom STB family of
> devices.
> 
> There was a previous attempt to upstream this some years ago[1] but was
> blocked as most STB PCIe integrations have a sparse DMA mapping[2] which
> is something currently not supported by the kernel.  Luckily this is not
> the case for the Raspberry Pi 4.
> 
> Note that the driver code is to be based on top of Rob Herring's series
> simplifying inbound and outbound range parsing.
> 
> [1] https://patchwork.kernel.org/cover/10605933/
> [2] https://patchwork.kernel.org/patch/10605957/

Thanks for picking up on this Nicolas. Can you amend the MAINTAINERS
file with something along those lines such that PCIe binding and driver
changes are picked up by both the BCM2835 and BCM7XXX entries?

diff --git a/MAINTAINERS b/MAINTAINERS
index cba1095547fd..4276a30f3294 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3196,6 +3196,8 @@ S:        Maintained
 N:     bcm2711
 N:     bcm2835
 F:     drivers/staging/vc04_services
+F:     Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml
+F:     drivers/pci/controller/pcie-brcmstb.c

 BROADCOM BCM47XX MIPS ARCHITECTURE
 M:     Hauke Mehrtens <hauke@hauke-m.de>
@@ -3251,6 +3253,7 @@ F:        drivers/bus/brcmstb_gisb.c
 F:     arch/arm/mm/cache-b15-rac.c
 F:     arch/arm/include/asm/hardware/cache-b15-rac.h
 N:     brcmstb
+F:     Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml

 BROADCOM BMIPS CPUFREQ DRIVER
 M:     Markus Mayer <mmayer@broadcom.com>
Nicolas Saenz Julienne Nov. 7, 2019, 9:58 a.m. UTC | #2
On Wed, 2019-11-06 at 13:51 -0800, Florian Fainelli wrote:
> On 11/6/19 1:45 PM, Nicolas Saenz Julienne wrote:
> > This series aims at providing support for Raspberry Pi 4's PCIe
> > controller, which is also shared with the Broadcom STB family of
> > devices.
> > 
> > There was a previous attempt to upstream this some years ago[1] but was
> > blocked as most STB PCIe integrations have a sparse DMA mapping[2] which
> > is something currently not supported by the kernel.  Luckily this is not
> > the case for the Raspberry Pi 4.
> > 
> > Note that the driver code is to be based on top of Rob Herring's series
> > simplifying inbound and outbound range parsing.
> > 
> > [1] https://patchwork.kernel.org/cover/10605933/
> > [2] https://patchwork.kernel.org/patch/10605957/
> 
> Thanks for picking up on this Nicolas. Can you amend the MAINTAINERS
> file with something along those lines such that PCIe binding and driver
> changes are picked up by both the BCM2835 and BCM7XXX entries?
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index cba1095547fd..4276a30f3294 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -3196,6 +3196,8 @@ S:        Maintained
>  N:     bcm2711
>  N:     bcm2835
>  F:     drivers/staging/vc04_services
> +F:     Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml
> +F:     drivers/pci/controller/pcie-brcmstb.c
> 
>  BROADCOM BCM47XX MIPS ARCHITECTURE
>  M:     Hauke Mehrtens <hauke@hauke-m.de>
> @@ -3251,6 +3253,7 @@ F:        drivers/bus/brcmstb_gisb.c
>  F:     arch/arm/mm/cache-b15-rac.c
>  F:     arch/arm/include/asm/hardware/cache-b15-rac.h
>  N:     brcmstb
> +F:     Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml
> 
>  BROADCOM BMIPS CPUFREQ DRIVER
>  M:     Markus Mayer <mmayer@broadcom.com>
> 

Ok, noted, I'll add that patch to v2.