5 Enable support for PCI (Peripheral Interconnect Bus), a type of bus
6 used on some devices to allow the CPU to communicate with its
12 bool "Enable driver model for PCI"
15 Use driver model for PCI. Driver model is the new method for
16 orgnising devices in U-Boot. For PCI, driver model keeps track of
17 available PCI devices, allows scanning of PCI buses and provides
18 device configuration support.
21 bool "Enable compatible functions for PCI"
24 Enable compatibility functions for PCI so that old code can be used
25 with CONFIG_DM_PCI enabled. This should be used as an interim
26 measure when porting a board to use driver model for PCI. Once the
27 board is fully supported, this option should be disabled.
30 bool "Enable Aardvark PCIe driver"
34 depends on ARMADA_3700
36 Say Y here if you want to enable PCIe controller support on
37 Armada37x0 SoCs. The PCIe controller on Armada37x0 is based on
41 bool "Enable Plug & Play support for PCI"
42 depends on PCI || DM_PCI
45 Enable PCI memory and I/O space resource allocation and assignment.
47 config PCI_REGION_MULTI_ENTRY
48 bool "Enable Multiple entries of region type MEMORY in ranges for PCI"
49 depends on PCI || DM_PCI
52 Enable PCI memory regions to be of multiple entry. Multiple entry
53 here refers to allow more than one count of address ranges for MEMORY
54 region type. This helps to add support for SoC's like OcteonTX/TX2
55 where every peripheral is on the PCI bus.
58 bool "Enable Single Root I/O Virtualization support for PCI"
59 depends on PCI || DM_PCI
62 Say Y here if you want to enable PCI Single Root I/O Virtualization
63 capability support. This helps to enumerate Virtual Function devices
64 if available on a PCI Physical Function device and probe for
68 bool "Enable Alternate Routing-ID support for PCI"
69 depends on PCI || DM_PCI
72 Say Y here if you want to enable Alternate Routing-ID capability
73 support on PCI devices. This helps to skip some devices in BDF
74 scan that are not present.
76 config PCIE_ECAM_GENERIC
77 bool "Generic ECAM-based PCI host controller support"
81 Say Y here if you want to enable support for generic ECAM-based
82 PCIe host controllers, such as the one emulated by QEMU.
84 config PCIE_ECAM_SYNQUACER
85 bool "SynQuacer ECAM-based PCI host controller support"
89 select PCI_REGION_MULTI_ENTRY
91 Say Y here if you want to enable support for Socionext
92 SynQuacer SoC's ECAM-based PCIe host controllers.
93 Note that this must be configured when boot because Linux driver
94 expects the PCIe RC has been configured in the bootloader.
97 bool "Phytium PCIe support"
100 Say Y here if you want to enable PCIe controller support on
104 bool "Enable Armada-8K PCIe driver (DesignWare core)"
108 Say Y here if you want to enable PCIe controller support on
109 Armada-8K SoCs. The PCIe controller on Armada-8K is based on
112 config PCIE_DW_SIFIVE
113 bool "Enable SiFive FU740 PCIe"
114 depends on CLK_SIFIVE_PRCI
115 depends on RESET_SIFIVE
116 depends on SIFIVE_GPIO
117 select PCIE_DW_COMMON
119 Say Y here if you want to enable PCIe controller support on
123 bool "FSL PowerPC PCIe support"
126 Say Y here if you want to enable PCIe controller support on FSL
127 PowerPC MPC85xx, MPC86xx, B series, P series and T series SoCs.
128 This driver does not support SRIO_PCIE_BOOT feature.
131 bool "MPC85XX PowerPC PCI support"
134 Say Y here if you want to enable PCI controller support on FSL
138 bool "Renesas RCar Gen2 PCIe driver"
142 Say Y here if you want to enable PCIe controller support on
143 Renesas RCar Gen2 SoCs. The PCIe controller on RCar Gen2 is
144 also used to access EHCI USB controller on the SoC.
147 bool "Renesas RCar Gen3 PCIe driver"
151 Say Y here if you want to enable PCIe controller support on
152 Renesas RCar Gen3 SoCs.
155 bool "Sandbox PCI support"
156 depends on SANDBOX && DM_PCI
158 Support PCI on sandbox, as an emulated bus. This permits testing of
159 PCI feature such as bus scanning, device configuration and device
160 access. The available (emulated) devices are defined statically in
161 the device tree but the normal PCI scan technique is used to find
165 bool "Tegra PCI support"
166 depends on ARCH_TEGRA
167 depends on (TEGRA186 && POWER_DOMAIN) || (!TEGRA186)
169 Enable support for the PCIe controller found on some generations of
170 Tegra. Tegra20 has 2 root ports with a total of 4 lanes, Tegra30 has
171 3 root ports with a total of 6 lanes and Tegra124 has 2 root ports
172 with a total of 5 lanes. Some boards require this for Ethernet
173 support to work (e.g. beaver, jetson-tk1).
176 bool "OcteonTX PCI support"
177 depends on (ARCH_OCTEONTX || ARCH_OCTEONTX2)
179 Enable support for the OcteonTX/TX2 SoC family ECAM/PEM controllers.
180 These controllers provide PCI configuration access to all on-board
181 peripherals so it should only be disabled for testing purposes
184 bool "MIPS Octeon PCIe support"
185 depends on ARCH_OCTEON
187 Enable support for the MIPS Octeon SoC family PCIe controllers.
190 bool "Xilinx AXI Bridge for PCI Express"
193 Enable support for the Xilinx AXI bridge for PCI express, an IP block
194 which can be used on some generations of Xilinx FPGAs.
196 config PCIE_LAYERSCAPE
200 config PCIE_LAYERSCAPE_RC
201 bool "Layerscape PCIe Root Complex mode support"
203 select PCIE_LAYERSCAPE
205 Enable Layerscape PCIe Root Complex mode driver support. The Layerscape
206 SoC may have one or several PCIe controllers. Each controller can be
207 configured to Root Complex mode by clearing the corresponding bit of
210 config PCI_IOMMU_EXTRA_MAPPINGS
211 bool "Support for specifying extra IOMMU mappings for PCI"
212 depends on PCIE_LAYERSCAPE_RC
214 Enable support for specifying extra IOMMU mappings for PCI
215 controllers through a special env var called "pci_iommu_extra" or
216 through a device tree property named "pci-iommu-extra" placed in
217 the node describing the PCI controller.
218 The intent is to cover SR-IOV scenarios which need mappings for VFs
219 and PCI hot-plug scenarios. More documentation can be found under:
220 arch/arm/cpu/armv8/fsl-layerscape/doc/README.pci_iommu_extra
222 config PCIE_LAYERSCAPE_EP
223 bool "Layerscape PCIe Endpoint mode support"
225 select PCIE_LAYERSCAPE
228 Enable Layerscape PCIe Endpoint mode driver support. The Layerscape
229 SoC may have one or several PCIe controllers. Each controller can be
230 configured to Endpoint mode by setting the corresponding bit of
233 config PCIE_LAYERSCAPE_GEN4
234 bool "Layerscape Gen4 PCIe support"
237 Support PCIe Gen4 on NXP Layerscape SoCs, which may have one or
238 several PCIe controllers. The PCIe controller can work in RC or
239 EP mode according to RCW[HOST_AGT_PEX] setting.
241 config FSL_PCIE_COMPAT
242 string "PCIe compatible of Kernel DT"
243 depends on PCIE_LAYERSCAPE_RC || PCIE_LAYERSCAPE_GEN4
244 default "fsl,ls1012a-pcie" if ARCH_LS1012A
245 default "fsl,ls1028a-pcie" if ARCH_LS1028A
246 default "fsl,ls1043a-pcie" if ARCH_LS1043A
247 default "fsl,ls1046a-pcie" if ARCH_LS1046A
248 default "fsl,ls2080a-pcie" if ARCH_LS2080A
249 default "fsl,ls1088a-pcie" if ARCH_LS1088A
250 default "fsl,lx2160a-pcie" if ARCH_LX2160A
251 default "fsl,ls2088a-pcie" if ARCH_LX2162A
252 default "fsl,ls1021a-pcie" if ARCH_LS1021A
254 This compatible is used to find pci controller node in Kernel DT
257 config FSL_PCIE_EP_COMPAT
258 string "PCIe EP compatible of Kernel DT"
259 depends on PCIE_LAYERSCAPE_RC || PCIE_LAYERSCAPE_GEN4
260 default "fsl,lx2160a-pcie-ep" if ARCH_LX2160A
261 default "fsl,ls-pcie-ep"
263 This compatible is used to find pci controller ep node in Kernel DT
266 config PCIE_INTEL_FPGA
267 bool "Intel FPGA PCIe support"
270 Say Y here if you want to enable PCIe controller support on Intel
271 FPGA, example Stratix 10.
274 bool "Iproc PCIe support"
277 Broadcom iProc PCIe controller driver.
278 Say Y here if you want to enable Broadcom iProc PCIe controller,
281 bool "Enable Armada XP/38x PCIe driver"
282 depends on ARCH_MVEBU
286 Say Y here if you want to enable PCIe controller support on
289 config PCIE_DW_COMMON
294 bool "TI Keystone PCIe controller"
295 select PCIE_DW_COMMON
297 Say Y here if you want to enable PCI controller support on AM654 SoC.
300 bool "MediaTek PCIe Gen2 controller"
302 depends on ARCH_MEDIATEK
304 Say Y here if you want to enable Gen2 PCIe controller,
305 which could be found on MT7623 SoC family.
308 bool "Amlogic Meson DesignWare based PCIe controller"
309 depends on ARCH_MESON
310 select PCIE_DW_COMMON
312 Say Y here if you want to enable DW PCIe controller support on
316 bool "Enable Rockchip PCIe driver"
317 depends on ARCH_ROCKCHIP
319 select PHY_ROCKCHIP_PCIE
320 default y if ROCKCHIP_RK3399
322 Say Y here if you want to enable PCIe controller support on
325 config PCIE_DW_ROCKCHIP
326 bool "Rockchip DesignWare based PCIe controller"
327 depends on ARCH_ROCKCHIP
328 select PCIE_DW_COMMON
329 select PHY_ROCKCHIP_SNPS_PCIE3
331 Say Y here if you want to enable DW PCIe controller support on
335 bool "Broadcom STB PCIe controller"
337 depends on ARCH_BCM283X
339 Say Y here if you want to enable support for PCIe controller
340 on Broadcom set-top-box (STB) SoCs.
341 This driver currently supports only BCM2711 SoC and RC mode
345 bool "Socionext UniPhier PCIe driver"
347 depends on ARCH_UNIPHIER
348 select PHY_UNIPHIER_PCIE
350 Say Y here if you want to enable PCIe controller support on