blob: 782179eb0f6f81f63164856b063e0260249ae443 [file] [log] [blame]
Tom Riniaf273822016-10-26 17:15:37 -04001menuconfig PCI
2 bool "PCI support"
Bin Meng6bf89de2017-07-30 06:23:09 -07003 default y if PPC
Tom Riniaf273822016-10-26 17:15:37 -04004 help
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
7 peripherals.
8
9if PCI
Simon Glassff3e0772015-03-05 12:25:25 -070010
11config DM_PCI
Marcel Ziswilere090fdb2016-12-19 15:38:05 +010012 bool "Enable driver model for PCI"
Simon Glassff3e0772015-03-05 12:25:25 -070013 depends on DM
14 help
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.
19
Simon Glass3ba5f742015-11-26 19:51:30 -070020config DM_PCI_COMPAT
21 bool "Enable compatible functions for PCI"
22 depends on DM_PCI
23 help
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.
28
Wilson Dinge51f2b12018-03-26 15:57:29 +080029config PCI_AARDVARK
30 bool "Enable Aardvark PCIe driver"
31 default n
32 depends on DM_PCI
Pali Rohár835d9692020-08-25 10:45:04 +020033 depends on DM_GPIO
Wilson Dinge51f2b12018-03-26 15:57:29 +080034 depends on ARMADA_3700
35 help
36 Say Y here if you want to enable PCIe controller support on
37 Armada37x0 SoCs. The PCIe controller on Armada37x0 is based on
38 Aardvark hardware.
39
Bin Mengc4762152016-10-16 23:35:18 -070040config PCI_PNP
41 bool "Enable Plug & Play support for PCI"
42 depends on PCI || DM_PCI
43 default y
44 help
45 Enable PCI memory and I/O space resource allocation and assignment.
46
Suneel Garapati4cf56ec2019-10-19 17:10:20 -070047config PCI_REGION_MULTI_ENTRY
48 bool "Enable Multiple entries of region type MEMORY in ranges for PCI"
49 depends on PCI || DM_PCI
50 default n
51 help
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.
56
Suneel Garapatib8852dc2019-10-19 16:07:20 -070057config PCI_SRIOV
58 bool "Enable Single Root I/O Virtualization support for PCI"
59 depends on PCI || DM_PCI
60 default n
61 help
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
65 applicable drivers.
66
Suneel Garapatia3fac3f2019-10-23 18:40:36 -070067config PCI_ARID
68 bool "Enable Alternate Routing-ID support for PCI"
69 depends on PCI || DM_PCI
70 default n
71 help
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.
75
Tuomas Tynkkynen3675cb02017-09-19 23:18:06 +030076config PCIE_ECAM_GENERIC
77 bool "Generic ECAM-based PCI host controller support"
78 default n
79 depends on DM_PCI
80 help
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.
83
Masami Hiramatsu3296d522021-06-04 18:44:06 +090084config PCIE_ECAM_SYNQUACER
85 bool "SynQuacer ECAM-based PCI host controller support"
86 default n
87 depends on DM_PCI
88 select PCI_INIT_R
89 select PCI_REGION_MULTI_ENTRY
90 help
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.
95
liu haoe3aafef2019-10-31 07:51:08 +000096config PCI_PHYTIUM
97 bool "Phytium PCIe support"
98 depends on DM_PCI
99 help
100 Say Y here if you want to enable PCIe controller support on
101 Phytium SoCs.
102
Shadi Ammouri182ba1a2016-10-27 13:29:41 +0200103config PCIE_DW_MVEBU
104 bool "Enable Armada-8K PCIe driver (DesignWare core)"
Shadi Ammouri182ba1a2016-10-27 13:29:41 +0200105 depends on DM_PCI
106 depends on ARMADA_8K
107 help
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
110 DesignWare hardware.
111
Green Wan416395c2021-05-27 06:52:10 -0700112config 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
118 help
119 Say Y here if you want to enable PCIe controller support on
120 FU740.
121
Hou Zhiqiangb89e3d92019-04-24 22:33:02 +0800122config PCIE_FSL
123 bool "FSL PowerPC PCIe support"
124 depends on DM_PCI
125 help
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.
129
Heiko Schocherb61cbbd2019-10-14 11:29:39 +0200130config PCI_MPC85XX
131 bool "MPC85XX PowerPC PCI support"
132 depends on DM_PCI
133 help
134 Say Y here if you want to enable PCI controller support on FSL
135 PowerPC MPC85xx SoC.
136
Marek Vasut5f14f7d2018-01-18 14:35:35 +0100137config PCI_RCAR_GEN2
138 bool "Renesas RCar Gen2 PCIe driver"
139 depends on DM_PCI
140 depends on RCAR_32
141 help
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.
145
Marek Vasut776abed2018-10-16 12:49:19 +0200146config PCI_RCAR_GEN3
147 bool "Renesas RCar Gen3 PCIe driver"
148 depends on DM_PCI
149 depends on RCAR_GEN3
150 help
151 Say Y here if you want to enable PCIe controller support on
152 Renesas RCar Gen3 SoCs.
153
Simon Glass537849a2015-03-05 12:25:27 -0700154config PCI_SANDBOX
155 bool "Sandbox PCI support"
156 depends on SANDBOX && DM_PCI
157 help
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
162 then.
163
Simon Glassfde7e182015-11-19 20:26:55 -0700164config PCI_TEGRA
165 bool "Tegra PCI support"
Trevor Woerner18138ab2020-05-06 08:02:41 -0400166 depends on ARCH_TEGRA
Stephen Warrenbbc5b362016-08-05 16:10:34 -0600167 depends on (TEGRA186 && POWER_DOMAIN) || (!TEGRA186)
Simon Glassfde7e182015-11-19 20:26:55 -0700168 help
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).
174
Suneel Garapati638d7052019-10-19 17:28:01 -0700175config PCI_OCTEONTX
176 bool "OcteonTX PCI support"
177 depends on (ARCH_OCTEONTX || ARCH_OCTEONTX2)
178 help
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
182
Stefan Roeseddafdb92021-04-07 08:43:35 +0200183config PCIE_OCTEON
184 bool "MIPS Octeon PCIe support"
185 depends on ARCH_OCTEON
186 help
187 Enable support for the MIPS Octeon SoC family PCIe controllers.
188
Paul Burtona29e45a2016-09-08 07:47:31 +0100189config PCI_XILINX
190 bool "Xilinx AXI Bridge for PCI Express"
191 depends on DM_PCI
192 help
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.
195
Minghuan Lian80afc632016-12-13 14:54:17 +0800196config PCIE_LAYERSCAPE
Hou Zhiqianged188aa2020-07-09 23:31:42 +0800197 bool
198 default n
199
200config PCIE_LAYERSCAPE_RC
201 bool "Layerscape PCIe Root Complex mode support"
Minghuan Lian80afc632016-12-13 14:54:17 +0800202 depends on DM_PCI
Hou Zhiqianged188aa2020-07-09 23:31:42 +0800203 select PCIE_LAYERSCAPE
Minghuan Lian80afc632016-12-13 14:54:17 +0800204 help
Hou Zhiqianged188aa2020-07-09 23:31:42 +0800205 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
208 RCW[HOST_AGT_PEX].
209
Laurentiu Tudor2a5bbb12020-09-10 12:42:19 +0300210config PCI_IOMMU_EXTRA_MAPPINGS
211 bool "Support for specifying extra IOMMU mappings for PCI"
212 depends on PCIE_LAYERSCAPE_RC
213 help
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
221
Hou Zhiqianged188aa2020-07-09 23:31:42 +0800222config PCIE_LAYERSCAPE_EP
223 bool "Layerscape PCIe Endpoint mode support"
224 depends on DM_PCI
225 select PCIE_LAYERSCAPE
226 select PCI_ENDPOINT
227 help
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
231 RCW[HOST_AGT_PEX].
Minghuan Lian80afc632016-12-13 14:54:17 +0800232
Hou Zhiqiang07ce19f2019-04-08 10:15:46 +0000233config PCIE_LAYERSCAPE_GEN4
234 bool "Layerscape Gen4 PCIe support"
235 depends on DM_PCI
236 help
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.
240
Pankaj Bansalba7c9662019-11-30 13:14:00 +0000241config FSL_PCIE_COMPAT
242 string "PCIe compatible of Kernel DT"
Hou Zhiqianged188aa2020-07-09 23:31:42 +0800243 depends on PCIE_LAYERSCAPE_RC || PCIE_LAYERSCAPE_GEN4
Pankaj Bansalba7c9662019-11-30 13:14:00 +0000244 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
Hou Zhiqiangd1676672021-01-29 13:22:02 +0800250 default "fsl,lx2160a-pcie" if ARCH_LX2160A
251 default "fsl,ls2088a-pcie" if ARCH_LX2162A
Pankaj Bansalba7c9662019-11-30 13:14:00 +0000252 default "fsl,ls1021a-pcie" if ARCH_LS1021A
253 help
254 This compatible is used to find pci controller node in Kernel DT
255 to complete fixup.
256
Pankaj Bansal63618e72019-11-30 13:14:10 +0000257config FSL_PCIE_EP_COMPAT
258 string "PCIe EP compatible of Kernel DT"
Hou Zhiqianged188aa2020-07-09 23:31:42 +0800259 depends on PCIE_LAYERSCAPE_RC || PCIE_LAYERSCAPE_GEN4
Hou Zhiqiangd1676672021-01-29 13:22:02 +0800260 default "fsl,lx2160a-pcie-ep" if ARCH_LX2160A
Pankaj Bansal63618e72019-11-30 13:14:10 +0000261 default "fsl,ls-pcie-ep"
262 help
263 This compatible is used to find pci controller ep node in Kernel DT
264 to complete fixup.
265
Ley Foon Tan7c458622018-04-20 21:55:45 +0800266config PCIE_INTEL_FPGA
267 bool "Intel FPGA PCIe support"
268 depends on DM_PCI
269 help
270 Say Y here if you want to enable PCIe controller support on Intel
271 FPGA, example Stratix 10.
272
Srinath Mannam48487042020-05-12 13:29:50 +0530273config PCIE_IPROC
274 bool "Iproc PCIe support"
275 depends on DM_PCI
276 help
277 Broadcom iProc PCIe controller driver.
278 Say Y here if you want to enable Broadcom iProc PCIe controller,
279
Stefan Roese94f453e2019-01-25 11:52:43 +0100280config PCI_MVEBU
281 bool "Enable Armada XP/38x PCIe driver"
282 depends on ARCH_MVEBU
283 select DM_PCI
284 select MISC
285 help
286 Say Y here if you want to enable PCIe controller support on
287 Armada XP/38x SoCs.
288
Neil Armstrongdfadb942021-03-25 15:49:18 +0100289config PCIE_DW_COMMON
290 bool
291 select DM_PCI
292
Sekhar Nori03c396b2019-08-01 19:12:57 +0530293config PCI_KEYSTONE
294 bool "TI Keystone PCIe controller"
Neil Armstrong1a031822021-03-25 15:49:19 +0100295 select PCIE_DW_COMMON
Sekhar Nori03c396b2019-08-01 19:12:57 +0530296 help
297 Say Y here if you want to enable PCI controller support on AM654 SoC.
298
Ryder Lee42d37452019-08-22 12:26:49 +0200299config PCIE_MEDIATEK
300 bool "MediaTek PCIe Gen2 controller"
301 depends on DM_PCI
302 depends on ARCH_MEDIATEK
303 help
304 Say Y here if you want to enable Gen2 PCIe controller,
305 which could be found on MT7623 SoC family.
306
Neil Armstrong2c32c702021-03-25 15:49:21 +0100307config PCIE_DW_MESON
308 bool "Amlogic Meson DesignWare based PCIe controller"
309 depends on ARCH_MESON
310 select PCIE_DW_COMMON
311 help
312 Say Y here if you want to enable DW PCIe controller support on
313 Amlogic SoCs.
314
Jagan Teki99d59062020-05-09 22:26:21 +0530315config PCIE_ROCKCHIP
316 bool "Enable Rockchip PCIe driver"
Michal Simeka261fdc2020-08-19 10:44:15 +0200317 depends on ARCH_ROCKCHIP
Jagan Teki99d59062020-05-09 22:26:21 +0530318 select DM_PCI
Jagan Tekice920e02020-07-09 23:41:02 +0530319 select PHY_ROCKCHIP_PCIE
Jagan Teki99d59062020-05-09 22:26:21 +0530320 default y if ROCKCHIP_RK3399
321 help
322 Say Y here if you want to enable PCIe controller support on
323 Rockchip SoCs.
324
Shawn Lin9ddc0782021-01-15 18:01:22 +0800325config PCIE_DW_ROCKCHIP
326 bool "Rockchip DesignWare based PCIe controller"
327 depends on ARCH_ROCKCHIP
Neil Armstrongc90f3d02021-03-25 15:49:20 +0100328 select PCIE_DW_COMMON
Shawn Lin9ddc0782021-01-15 18:01:22 +0800329 select PHY_ROCKCHIP_SNPS_PCIE3
330 help
331 Say Y here if you want to enable DW PCIe controller support on
332 Rockchip SoCs.
333
Sylwester Nawrocki7b1c3f62020-05-25 13:39:58 +0200334config PCI_BRCMSTB
335 bool "Broadcom STB PCIe controller"
336 depends on DM_PCI
337 depends on ARCH_BCM283X
338 help
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
342 of the controller.
Tom Riniaf273822016-10-26 17:15:37 -0400343endif