linux/drivers/pci/controller/dwc
Rob Herring 9f9e59a480 PCI: dwc: Support multiple ATU memory regions
The current ATU setup only supports a single memory resource which
isn't sufficient if there are also prefetchable memory regions. In order
to support multiple memory regions, we need to move away from fixed ATU
slots and rework the assignment. As there's always an ATU entry for
config space, let's assign index 0 to config space. Then we assign
memory resources to index 1 and up. Finally, if we have an I/O region
and slots remaining, we assign the I/O region last. If there aren't
remaining slots, we keep the same config and I/O space sharing.

Link: https://lore.kernel.org/r/20201026181652.418729-1-robh@kernel.org
Tested-by: Vidya Sagar <vidyas@nvidia.com>
Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Reviewed-by: Vidya Sagar <vidyas@nvidia.com>
Acked-by: Jingoo Han <jingoohan1@gmail.com>
Cc: Vidya Sagar <vidyas@nvidia.com>
Cc: Jingoo Han <jingoohan1@gmail.com>
Cc: Gustavo Pimentel <gustavo.pimentel@synopsys.com>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
2020-11-18 16:01:53 +00:00
..
Kconfig PCI: meson: Build as module by default 2020-10-05 13:01:42 +01:00
Makefile PCI: uniphier: Add Socionext UniPhier Pro5 PCIe endpoint controller driver 2020-06-04 10:03:18 +01:00
pci-dra7xx.c PCI: dwc: Fix MSI page leakage in suspend/resume 2020-10-13 09:52:49 +01:00
pci-exynos.c PCI: dwc: exynos: Use pci_ops for root config space accessors 2020-09-08 16:37:02 +01:00
pci-imx6.c Merge branch 'remotes/lorenzo/pci/imx6' 2020-10-21 09:58:40 -05:00
pci-keystone.c PCI: keystone: Remove iATU register mapping 2020-10-13 09:52:49 +01:00
pci-layerscape-ep.c PCI: layerscape: Add EP mode support for ls1088a and ls2088a 2020-09-21 11:46:05 +01:00
pci-layerscape.c PCI: layerscape: Add LS1028a support 2019-11-08 10:45:00 +00:00
pci-meson.c Merge branch 'remotes/lorenzo/pci/meson' 2020-10-21 09:58:41 -05:00
pcie-al.c PCI: dwc: Remove storing of PCI resources 2020-09-08 16:37:02 +01:00
pcie-armada8k.c Merge branch 'pci/irq-error' 2020-08-05 18:24:22 -05:00
pcie-artpec6.c PCI: dwc: Move N_FTS setup to common setup 2020-09-10 16:50:53 +01:00
pcie-designware-ep.c PCI: designware-ep: Modify MSI and MSIX CAP way of finding 2020-09-21 11:46:04 +01:00
pcie-designware-host.c PCI: dwc: Support multiple ATU memory regions 2020-11-18 16:01:53 +00:00
pcie-designware-plat.c PCI: dwc: Check CONFIG_PCI_MSI inside dw_pcie_msi_init() 2020-09-08 16:37:02 +01:00
pcie-designware.c PCI: dwc: Add common iATU register support 2020-10-13 09:52:49 +01:00
pcie-designware.h PCI: dwc: Support multiple ATU memory regions 2020-11-18 16:01:53 +00:00
pcie-hisi.c PCI: dwc: hisi: Remove non-ECAM HiSilicon hip05/hip06 driver 2020-07-27 17:06:32 +01:00
pcie-histb.c PCI: dwc: Check CONFIG_PCI_MSI inside dw_pcie_msi_init() 2020-09-08 16:37:02 +01:00
pcie-intel-gw.c PCI: dwc: Move N_FTS setup to common setup 2020-09-10 16:50:53 +01:00
pcie-kirin.c Merge branch 'remotes/lorenzo/pci/kirin' 2020-10-21 09:58:41 -05:00
pcie-qcom.c Merge branch 'remotes/lorenzo/pci/qcom' 2020-10-21 09:58:43 -05:00
pcie-spear13xx.c PCI: dwc: Use DBI accessors 2020-09-10 16:50:53 +01:00
pcie-tegra194.c Merge branch 'remotes/lorenzo/pci/tegra' 2020-10-21 09:58:43 -05:00
pcie-uniphier-ep.c PCI: uniphier: Add Socionext UniPhier Pro5 PCIe endpoint controller driver 2020-06-04 10:03:18 +01:00
pcie-uniphier.c PCI: dwc: Check CONFIG_PCI_MSI inside dw_pcie_msi_init() 2020-09-08 16:37:02 +01:00