blob: 517cf956ea0a993c3060687ce3061166b919c256 [file] [log] [blame]
Tom Rinif48e0252016-10-26 17:15:37 -04001menuconfig PCI
2 bool "PCI support"
Bin Meng00a17fd2017-07-30 06:23:09 -07003 default y if PPC
Tom Rinif48e0252016-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 Glassb94dc892015-03-05 12:25:25 -070010
11config DM_PCI
Marcel Ziswiler84c45602016-12-19 15:38:05 +010012 bool "Enable driver model for PCI"
Simon Glassb94dc892015-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 Glasseca7b0d2015-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 Dinga6bdc862018-03-26 15:57:29 +080029config PCI_AARDVARK
30 bool "Enable Aardvark PCIe driver"
31 default n
32 depends on DM_PCI
Pali Rohár5c6edca2020-08-25 10:45:04 +020033 depends on DM_GPIO
Wilson Dinga6bdc862018-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 Meng2f49e2e2016-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 Garapati3ac3aec2019-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 Garapati13822f72019-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 Garapatia99a5eb2019-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 Tynkkynena765f712017-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 Hiramatsu06850202021-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 hao1c4a2c42019-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 Ammouri3b386452016-10-27 13:29:41 +0200103config PCIE_DW_MVEBU
104 bool "Enable Armada-8K PCIe driver (DesignWare core)"
Shadi Ammouri3b386452016-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 Wanba5919b2021-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 Zhiqiang25ff98c2019-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 Schocherd647b462019-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 Vasut5012d1e2018-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 Vasut879b4a32018-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 Glass4d857552015-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 Glassc78e3272015-11-19 20:26:55 -0700164config PCI_TEGRA
165 bool "Tegra PCI support"
Trevor Woerner513f6402020-05-06 08:02:41 -0400166 depends on ARCH_TEGRA
Stephen Warren86f6a942016-08-05 16:10:34 -0600167 depends on (TEGRA186 && POWER_DOMAIN) || (!TEGRA186)
Simon Glassc78e3272015-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 Garapati4c7d28c2019-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 Roese098c7732021-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 Burtonc893f212016-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 Lianc1067842016-12-13 14:54:17 +0800196config PCIE_LAYERSCAPE
Hou Zhiqiang02f1f062020-07-09 23:31:42 +0800197 bool
198 default n
199
200config PCIE_LAYERSCAPE_RC
201 bool "Layerscape PCIe Root Complex mode support"
202 depends on DM_PCI
203 select PCIE_LAYERSCAPE
204 help
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
208 RCW[HOST_AGT_PEX].
209
Laurentiu Tudor7fd23502020-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 Zhiqiang02f1f062020-07-09 23:31:42 +0800222config PCIE_LAYERSCAPE_EP
223 bool "Layerscape PCIe Endpoint mode support"
Minghuan Lianc1067842016-12-13 14:54:17 +0800224 depends on DM_PCI
Hou Zhiqiang02f1f062020-07-09 23:31:42 +0800225 select PCIE_LAYERSCAPE
226 select PCI_ENDPOINT
Minghuan Lianc1067842016-12-13 14:54:17 +0800227 help
Hou Zhiqiang02f1f062020-07-09 23:31:42 +0800228 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 Lianc1067842016-12-13 14:54:17 +0800232
Hou Zhiqiange5d79c42019-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 Bansal4c656782019-11-30 13:14:00 +0000241config FSL_PCIE_COMPAT
242 string "PCIe compatible of Kernel DT"
Hou Zhiqiang02f1f062020-07-09 23:31:42 +0800243 depends on PCIE_LAYERSCAPE_RC || PCIE_LAYERSCAPE_GEN4
Pankaj Bansal4c656782019-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 Zhiqianga5b56632021-01-29 13:22:02 +0800250 default "fsl,lx2160a-pcie" if ARCH_LX2160A
251 default "fsl,ls2088a-pcie" if ARCH_LX2162A
Pankaj Bansal4c656782019-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 Bansal64d85a22019-11-30 13:14:10 +0000257config FSL_PCIE_EP_COMPAT
258 string "PCIe EP compatible of Kernel DT"
Hou Zhiqiang02f1f062020-07-09 23:31:42 +0800259 depends on PCIE_LAYERSCAPE_RC || PCIE_LAYERSCAPE_GEN4
Hou Zhiqianga5b56632021-01-29 13:22:02 +0800260 default "fsl,lx2160a-pcie-ep" if ARCH_LX2160A
Pankaj Bansal64d85a22019-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 Tandc05e632018-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 Mannamd90ba422020-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 Roese3179ec62019-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 Armstrongb46caff2021-03-25 15:49:18 +0100289config PCIE_DW_COMMON
290 bool
291 select DM_PCI
292
Sekhar Nori18db23d2019-08-01 19:12:57 +0530293config PCI_KEYSTONE
294 bool "TI Keystone PCIe controller"
Neil Armstrongc0c39ce2021-03-25 15:49:19 +0100295 select PCIE_DW_COMMON
Sekhar Nori18db23d2019-08-01 19:12:57 +0530296 help
297 Say Y here if you want to enable PCI controller support on AM654 SoC.
298
developerad767732019-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 Armstrong06e006b2021-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 Teki02262472020-05-09 22:26:21 +0530315config PCIE_ROCKCHIP
316 bool "Enable Rockchip PCIe driver"
Michal Simek7f6d2942020-08-19 10:44:15 +0200317 depends on ARCH_ROCKCHIP
Jagan Teki02262472020-05-09 22:26:21 +0530318 select DM_PCI
Jagan Teki427603b2020-07-09 23:41:02 +0530319 select PHY_ROCKCHIP_PCIE
Jagan Teki02262472020-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 Linc0649da2021-01-15 18:01:22 +0800325config PCIE_DW_ROCKCHIP
326 bool "Rockchip DesignWare based PCIe controller"
327 depends on ARCH_ROCKCHIP
Neil Armstrongcf214c62021-03-25 15:49:20 +0100328 select PCIE_DW_COMMON
Shawn Linc0649da2021-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 Nawrocki88f51f72020-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.
Kunihiko Hayashi741a1f92021-07-06 19:01:09 +0900343
344config PCIE_UNIPHIER
345 bool "Socionext UniPhier PCIe driver"
346 depends on DM_PCI
347 depends on ARCH_UNIPHIER
348 select PHY_UNIPHIER_PCIE
349 help
350 Say Y here if you want to enable PCIe controller support on
351 UniPhier SoCs.
352
Tom Rinif48e0252016-10-26 17:15:37 -0400353endif