From: Stanimir Varbanov <svarbanov@suse.de>
To: linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-rpi-kernel@lists.infradead.org, linux-pci@vger.kernel.org,
Broadcom internal kernel review list
<bcm-kernel-feedback-list@broadcom.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Florian Fainelli <florian.fainelli@broadcom.com>,
Jim Quinlan <jim2101024@gmail.com>,
Nicolas Saenz Julienne <nsaenz@kernel.org>,
Bjorn Helgaas <bhelgaas@google.com>,
Lorenzo Pieralisi <lpieralisi@kernel.org>,
kw@linux.com, Philipp Zabel <p.zabel@pengutronix.de>,
Andrea della Porta <andrea.porta@suse.com>,
Phil Elwell <phil@raspberrypi.com>,
Jonathan Bell <jonathan@raspberrypi.com>,
Stanimir Varbanov <svarbanov@suse.de>
Subject: [PATCH 0/7] Add PCIe support for bcm2712
Date: Wed, 26 Jun 2024 13:45:37 +0300 [thread overview]
Message-ID: <20240626104544.14233-1-svarbanov@suse.de> (raw)
This patchset aims to add bare minimum support for bcm2712
in brcmstb PCIe driver needed to support the peripherals from
RP1 south-bridge found in RPi5. In order to support RP1
PCIe endpoint peripherals a new interrupt controller is added.
The interrupt controller supports 64 interrupt sources which
are enough to handle 61 RP1 peripherals.
Patch 1 is adding DT binding schema for the MIP interrupt
controller, patch 2 is adding relevant changes for PCIe
bcm2712 in yaml. Patch 3 adds MIP intterrupt cotroller driver.
Patches 4 and 5 are preparations for adding bcm2712 support in 6.
The last patch updates bcm2712 .dsti by adding pcie DT nodes.
Few concerns about the implementation:
- the connection between MIP interrupt-controller and PCIe RC is
done through BAR1. The PCIe driver is parsing the msi_parent
DT property in order to obtain few private DT properties like
"brcm,msi-pci-addr" and "reg". IMO this looks hackish but I failed
to find something better. Ideas?
- in downstream RPi kernel "ranges" and "dma-ranges" DT properties
are under an axi {} simple-bus node even that PCIe block is on CPU
MMIO bus. I tried to merge axi {} in soc {} and the result could be
seen on the last patch in this series, but I'm still not sure that
it looks good enough.
This series has been functionally tested on OpenSUSE Tumbleweed with
downstream RP1 south-bridge PCIe endpoint driver implementation as
MFD by using ethernet which is part of it.
The series is based on Andrea's "Add minimal boot support for Raspberry Pi 5"
series.
Comments are welcome!
regards,
~Stan
Stanimir Varbanov (7):
dt-bindings: interrupt-controller: Add bcm2712 MSI-X DT bindings
dt-bindings: PCI: brcmstb: Update bindings for PCIe on bcm2712
irqchip: Add Broadcom bcm2712 MSI-X interrupt controller
PCI: brcmstb: Reuse config structure
PCI: brcmstb: add phy_controllable flag
PCI: brcmstb: Add bcm2712 support
arm64: dts: broadcom: bcm2712: Add PCIe DT nodes
.../brcm,bcm2712-msix.yaml | 74 +++++
.../bindings/pci/brcm,stb-pcie.yaml | 17 +
arch/arm64/boot/dts/broadcom/bcm2712.dtsi | 218 +++++++++++-
drivers/irqchip/Kconfig | 12 +
drivers/irqchip/Makefile | 1 +
drivers/irqchip/irq-bcm2712-mip.c | 287 ++++++++++++++++
drivers/pci/controller/pcie-brcmstb.c | 314 ++++++++++++++++--
7 files changed, 876 insertions(+), 47 deletions(-)
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/brcm,bcm2712-msix.yaml
create mode 100644 drivers/irqchip/irq-bcm2712-mip.c
--
2.43.0
next reply other threads:[~2024-06-26 10:46 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-26 10:45 Stanimir Varbanov [this message]
2024-06-26 10:45 ` [PATCH 1/7] dt-bindings: interrupt-controller: Add bcm2712 MSI-X DT bindings Stanimir Varbanov
2024-06-26 11:31 ` Florian Fainelli
2024-07-02 9:39 ` Stanimir Varbanov
2024-06-26 11:35 ` Florian Fainelli
2024-07-02 9:58 ` Stanimir Varbanov
2024-06-28 22:05 ` Rob Herring
2024-07-19 16:22 ` Stanimir Varbanov
2024-06-26 10:45 ` [PATCH 2/7] dt-bindings: PCI: brcmstb: Update bindings for PCIe on bcm2712 Stanimir Varbanov
2024-06-28 22:06 ` Rob Herring (Arm)
2024-06-26 10:45 ` [PATCH 3/7] irqchip: Add Broadcom bcm2712 MSI-X interrupt controller Stanimir Varbanov
2024-06-27 12:12 ` Thomas Gleixner
2024-07-18 15:54 ` Stanimir Varbanov
2024-06-26 10:45 ` [PATCH 4/7] PCI: brcmstb: Reuse config structure Stanimir Varbanov
2024-06-26 10:45 ` [PATCH 5/7] PCI: brcmstb: add phy_controllable flag Stanimir Varbanov
2024-06-26 15:27 ` Bjorn Helgaas
2024-06-26 10:45 ` [PATCH 6/7] PCI: brcmstb: Add bcm2712 support Stanimir Varbanov
2024-06-26 10:45 ` [PATCH 7/7] arm64: dts: broadcom: bcm2712: Add PCIe DT nodes Stanimir Varbanov
2024-06-26 11:28 ` Florian Fainelli
2024-06-26 11:31 ` [PATCH 0/7] Add PCIe support for bcm2712 Florian Fainelli
2024-07-02 10:05 ` Stanimir Varbanov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240626104544.14233-1-svarbanov@suse.de \
--to=svarbanov@suse.de \
--cc=andrea.porta@suse.com \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=bhelgaas@google.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=florian.fainelli@broadcom.com \
--cc=jim2101024@gmail.com \
--cc=jonathan@raspberrypi.com \
--cc=krzk+dt@kernel.org \
--cc=kw@linux.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-rpi-kernel@lists.infradead.org \
--cc=lpieralisi@kernel.org \
--cc=nsaenz@kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=phil@raspberrypi.com \
--cc=robh@kernel.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).