[PATCH v3 0/7] PCI: mvebu: add support for orion soc

Pali Rohár
2022-09-05T19:50:22Z

Hello! This patch series add support for Orion PCIe controller into
pci-mvebu.c driver. V3 version has completely rewritten pci-mvebu.c code
to parse all physical addresses from device tree files according to
mvebu-pci.txt documentation, allow access to all extended PCIe config
space registers and use modern kernel API pci_remap_cfgspace() and
mvebu_mbus_add_window_by_id() fir mapping PCIe config space.

Most of Marvell device tree code in pci-mvebu.c is giant magic, but it was
there because this change and it is de-facto API between dts files and
kernel used for a long time. Note that it is misused according to PCI
device tree bindings, but we have to follow this Marvell bindings to do
not introduce backward incompatibility issues for other non-Orion
platforms.

Mauri tested these changes on DNS323 board with both DT and non-DT builds.
PCIe AER is working too (one of the feature which proved that access to
extended PCIe config registers is working fine).

After this patch is accepted we are planning to look at existing Orion
arch specific code and covert it to use this new DT based pci-mvebu.c
code. Later this would allow to kill arch specific Orion PCIe code,
which is in arch/arm/plat-orion/pcie.c and parts also in file
arch/arm/mach-orion5x/pci.c (shared with old-PCI bus code).

This patch series depends on another patches:
https://lore.kernel.org/linux-pci/20220524122817.7199-1-pali@kernel.org/
https://lore.kernel.org/linux-pci/20220817230036.817-3-pali@kernel.org/

Mauri Sandberg (2):
bus: mvebu-mbus: add configuration space aperture
dt-bindings: PCI: mvebu: Add orion5x compatible

Pali Rohár (5):
ARM: orion: Move PCIe mbus window mapping from orion5x_setup_wins() to
pcie_setup()
PCI: mvebu: Remove unused busn member
PCI: mvebu: Cleanup error handling in mvebu_pcie_probe()
PCI: mvebu: Add support for Orion PCIe controller
ARM: dts: orion5x: Add PCIe node

.../devicetree/bindings/pci/mvebu-pci.txt | 4 +-
arch/arm/boot/dts/orion5x.dtsi | 51 +++++
arch/arm/mach-orion5x/common.c | 13 --
arch/arm/mach-orion5x/pci.c | 14 ++
drivers/bus/mvebu-mbus.c | 26 ++-
drivers/pci/controller/Kconfig | 4 +-
drivers/pci/controller/pci-mvebu.c | 202 ++++++++++++++----
include/linux/mbus.h | 1 +
8 files changed, 256 insertions(+), 59 deletions(-)

--
2.20.1