[PATCH 00/16] PCI: support non 1:1 mappings

Sascha Hauer s.hauer at pengutronix.de
Tue Mar 26 03:07:30 PDT 2024


This series evolved from getting PCIe to work on a RK3568 based board.
The device tree PCIe ranges property uses non 1:1 mappings between CPU
and PCI bus which this series adds support for. With this series we
parse the ranges property into struct resource_entry windows like done
in Linux. With this we get pcibios_resource_to_bus() and
pcibios_bus_to_resource() to translate between the PCI/CPU address
spaces. Additionally we have some cleanup for the pcie-designware driver
and we can remove the quirk we already introduced for the rk3588 Rock5b
board in which we have overwritten the ranges property.

Sascha Hauer (16):
  net: phy: realtek: add phy for RTL8168 internal phy
  pci: add 'self' member to struct pci_bus
  pci: rename parent_bus to parent
  add support for resource lists
  pci: pcie-designware: remove unused variable
  pci: dwc: Drop support for config space in 'ranges'
  pci: add pci_controller_init()
  pci: support non 1:1 mappings
  pci: pcie-designware: Speed up waiting for link
  pci: pcie-dw-rockchip: wait for link
  pci: drop resources from struct pci_bus
  pci: add of_pci_bridge_init()
  pci: pcie-designware: drop duplicate resource assigning
  pci: pcie-designware: remove dra7xx quirks
  pci: pcie-designware: iterate over windows
  ARM: dts: rk3588-rock-5b: remove pci ranges quirks

 arch/arm/dts/rk3588-rock-5b.dts    |  15 -----
 arch/mips/mach-malta/pci.c         |   2 +
 common/resource.c                  |  16 +++++
 drivers/net/phy/realtek.c          |   7 ++
 drivers/pci/Makefile               |   3 +-
 drivers/pci/bus.c                  |  23 +++++++
 drivers/pci/host-bridge.c          |  76 +++++++++++++++++++++
 drivers/pci/of.c                   | 102 +++++++++++++++++++++++++++++
 drivers/pci/pci-ecam-generic.c     |   2 +
 drivers/pci/pci-efi.c              |   4 +-
 drivers/pci/pci-layerscape.c       |   2 +-
 drivers/pci/pci-mvebu.c            |   3 +
 drivers/pci/pci-tegra.c            |   4 +-
 drivers/pci/pci.c                  |  67 +++++++++++--------
 drivers/pci/pcie-designware-host.c |  95 ++++++++-------------------
 drivers/pci/pcie-designware.c      |   8 ++-
 drivers/pci/pcie-designware.h      |   9 ---
 drivers/pci/pcie-dw-rockchip.c     |   2 +
 include/linux/pci.h                |  37 ++++++++++-
 include/linux/resource_ext.h       |  81 +++++++++++++++++++++++
 20 files changed, 426 insertions(+), 132 deletions(-)
 create mode 100644 drivers/pci/host-bridge.c
 create mode 100644 drivers/pci/of.c
 create mode 100644 include/linux/resource_ext.h

-- 
2.39.2




More information about the barebox mailing list