]>
Commit | Line | Data |
---|---|---|
af27382e TR |
1 | menuconfig PCI |
2 | bool "PCI support" | |
ac9fa570 | 3 | depends on DM |
6bf89de7 | 4 | default y if PPC |
af27382e TR |
5 | help |
6 | Enable support for PCI (Peripheral Interconnect Bus), a type of bus | |
7 | used on some devices to allow the CPU to communicate with its | |
8 | peripherals. | |
9 | ||
3232bdf0 | 10 | This subsystem requires driver model. |
ff3e077b | 11 | |
ac9fa570 TR |
12 | if PCI |
13 | ||
3ba5f74a SG |
14 | config DM_PCI_COMPAT |
15 | bool "Enable compatible functions for PCI" | |
3ba5f74a SG |
16 | help |
17 | Enable compatibility functions for PCI so that old code can be used | |
3232bdf0 | 18 | with CONFIG_PCI enabled. This should be used as an interim |
3ba5f74a SG |
19 | measure when porting a board to use driver model for PCI. Once the |
20 | board is fully supported, this option should be disabled. | |
21 | ||
7856cd5a TR |
22 | config SYS_PCI_64BIT |
23 | bool "Enable 64-bit PCI resources" | |
24 | default y if PPC | |
25 | help | |
26 | Enable 64-bit PCI resource access. | |
27 | ||
e51f2b14 WD |
28 | config PCI_AARDVARK |
29 | bool "Enable Aardvark PCIe driver" | |
835d969c | 30 | depends on DM_GPIO |
e51f2b14 WD |
31 | depends on ARMADA_3700 |
32 | help | |
33 | Say Y here if you want to enable PCIe controller support on | |
34 | Armada37x0 SoCs. The PCIe controller on Armada37x0 is based on | |
35 | Aardvark hardware. | |
36 | ||
c4762157 BM |
37 | config PCI_PNP |
38 | bool "Enable Plug & Play support for PCI" | |
c4762157 BM |
39 | default y |
40 | help | |
41 | Enable PCI memory and I/O space resource allocation and assignment. | |
42 | ||
32f5e9e5 | 43 | config SPL_PCI_PNP |
8d2c311c HS |
44 | bool "Enable Plug & Play support for PCI in SPL" |
45 | depends on SPL_PCI | |
32f5e9e5 MC |
46 | help |
47 | Enable PCI memory and I/O space resource allocation and assignment. | |
db3820a2 | 48 | |
32f5e9e5 MC |
49 | This is required to auto configure the enumerated devices. |
50 | ||
db3820a2 SG |
51 | This is normally not done in SPL, but can be enabled if devices must |
52 | be set up in the SPL phase. Often it is enough to manually configure | |
53 | one device, so this option can be disabled. | |
54 | ||
4cf56ec0 SG |
55 | config PCI_REGION_MULTI_ENTRY |
56 | bool "Enable Multiple entries of region type MEMORY in ranges for PCI" | |
4cf56ec0 SG |
57 | help |
58 | Enable PCI memory regions to be of multiple entry. Multiple entry | |
59 | here refers to allow more than one count of address ranges for MEMORY | |
60 | region type. This helps to add support for SoC's like OcteonTX/TX2 | |
61 | where every peripheral is on the PCI bus. | |
62 | ||
e58eebb5 TR |
63 | config PCI_CONFIG_HOST_BRIDGE |
64 | bool "Configure PCI host bridges" | |
65 | default y if X86 | |
66 | ||
a45343a0 DS |
67 | config PCI_MAP_SYSTEM_MEMORY |
68 | bool "Map local system memory from a virtual base address" | |
a45343a0 | 69 | depends on MIPS |
a45343a0 DS |
70 | help |
71 | Say Y if base address of system memory is being used as a virtual address | |
72 | instead of a physical address (e.g. on MIPS). The PCI core will then remap | |
73 | the virtual memory base address to a physical address when adding the PCI | |
74 | region of type PCI_REGION_SYS_MEMORY. | |
aa6e94de | 75 | This should only be required on MIPS where CFG_SYS_SDRAM_BASE is still |
a45343a0 DS |
76 | being used as virtual address. |
77 | ||
b8852dcf SG |
78 | config PCI_SRIOV |
79 | bool "Enable Single Root I/O Virtualization support for PCI" | |
b8852dcf SG |
80 | help |
81 | Say Y here if you want to enable PCI Single Root I/O Virtualization | |
82 | capability support. This helps to enumerate Virtual Function devices | |
83 | if available on a PCI Physical Function device and probe for | |
84 | applicable drivers. | |
85 | ||
3b920186 AS |
86 | config PCI_ENHANCED_ALLOCATION |
87 | bool "Enable support for Enhanced Allocation of resources" | |
88 | default y | |
89 | help | |
90 | Enable support for Enhanced Allocation which can be used by supported | |
91 | devices in place of traditional BARS for allocation of resources. | |
92 | ||
a3fac3f3 SG |
93 | config PCI_ARID |
94 | bool "Enable Alternate Routing-ID support for PCI" | |
a3fac3f3 SG |
95 | help |
96 | Say Y here if you want to enable Alternate Routing-ID capability | |
97 | support on PCI devices. This helps to skip some devices in BDF | |
98 | scan that are not present. | |
99 | ||
f27bca4c TR |
100 | config PCI_SCAN_SHOW |
101 | bool "Show PCI devices during startup" | |
102 | depends on PCIE_IMX | |
103 | ||
3675cb04 TT |
104 | config PCIE_ECAM_GENERIC |
105 | bool "Generic ECAM-based PCI host controller support" | |
3675cb04 TT |
106 | help |
107 | Say Y here if you want to enable support for generic ECAM-based | |
108 | PCIe host controllers, such as the one emulated by QEMU. | |
109 | ||
3296d52b MH |
110 | config PCIE_ECAM_SYNQUACER |
111 | bool "SynQuacer ECAM-based PCI host controller support" | |
3296d52b MH |
112 | select PCI_INIT_R |
113 | select PCI_REGION_MULTI_ENTRY | |
114 | help | |
115 | Say Y here if you want to enable support for Socionext | |
116 | SynQuacer SoC's ECAM-based PCIe host controllers. | |
117 | Note that this must be configured when boot because Linux driver | |
118 | expects the PCIe RC has been configured in the bootloader. | |
119 | ||
bdebb00d MK |
120 | config PCIE_APPLE |
121 | bool "Enable Apple PCIe driver" | |
122 | depends on ARCH_APPLE | |
123 | imply PCI_INIT_R | |
815ce125 | 124 | select SYS_PCI_64BIT |
bdebb00d MK |
125 | default y |
126 | help | |
127 | Say Y here if you want to enable PCIe controller support on | |
128 | Apple SoCs. | |
129 | ||
852467de SA |
130 | config PCI_FTPCI100 |
131 | bool "Enable Faraday FTPCI100 PCI Bridge Controller driver" | |
132 | help | |
133 | Say Y here if you want to enable Faraday FTPCI100 PCI. | |
134 | FTPCI100 IP is used in SoC chip designs. | |
135 | ||
bf2c48fa TR |
136 | config PCI_GT64120 |
137 | bool "GT64120 PCI support" | |
138 | depends on MIPS | |
139 | ||
e3aafef4 | 140 | config PCI_PHYTIUM |
141 | bool "Phytium PCIe support" | |
e3aafef4 | 142 | help |
143 | Say Y here if you want to enable PCIe controller support on | |
144 | Phytium SoCs. | |
145 | ||
182ba1a7 SA |
146 | config PCIE_DW_MVEBU |
147 | bool "Enable Armada-8K PCIe driver (DesignWare core)" | |
182ba1a7 SA |
148 | depends on ARMADA_8K |
149 | help | |
150 | Say Y here if you want to enable PCIe controller support on | |
151 | Armada-8K SoCs. The PCIe controller on Armada-8K is based on | |
152 | DesignWare hardware. | |
153 | ||
416395c7 GW |
154 | config PCIE_DW_SIFIVE |
155 | bool "Enable SiFive FU740 PCIe" | |
156 | depends on CLK_SIFIVE_PRCI | |
157 | depends on RESET_SIFIVE | |
158 | depends on SIFIVE_GPIO | |
159 | select PCIE_DW_COMMON | |
160 | help | |
161 | Say Y here if you want to enable PCIe controller support on | |
162 | FU740. | |
163 | ||
6bb74fe1 TR |
164 | config SYS_FSL_PCI_VER_3_X |
165 | bool | |
166 | ||
b89e3d92 HZ |
167 | config PCIE_FSL |
168 | bool "FSL PowerPC PCIe support" | |
6bb74fe1 | 169 | select SYS_FSL_PCI_VER_3_X if ARCH_T2080 || ARCH_T4240 |
b89e3d92 HZ |
170 | help |
171 | Say Y here if you want to enable PCIe controller support on FSL | |
172 | PowerPC MPC85xx, MPC86xx, B series, P series and T series SoCs. | |
173 | This driver does not support SRIO_PCIE_BOOT feature. | |
174 | ||
b61cbbdc HS |
175 | config PCI_MPC85XX |
176 | bool "MPC85XX PowerPC PCI support" | |
b61cbbdc HS |
177 | help |
178 | Say Y here if you want to enable PCI controller support on FSL | |
179 | PowerPC MPC85xx SoC. | |
180 | ||
363397ae TR |
181 | config PCI_MSC01 |
182 | bool "MSC01 PCI support" | |
183 | depends on TARGET_MALTA | |
184 | ||
5f14f7d7 MV |
185 | config PCI_RCAR_GEN2 |
186 | bool "Renesas RCar Gen2 PCIe driver" | |
5f14f7d7 MV |
187 | depends on RCAR_32 |
188 | help | |
189 | Say Y here if you want to enable PCIe controller support on | |
190 | Renesas RCar Gen2 SoCs. The PCIe controller on RCar Gen2 is | |
191 | also used to access EHCI USB controller on the SoC. | |
192 | ||
776abede MV |
193 | config PCI_RCAR_GEN3 |
194 | bool "Renesas RCar Gen3 PCIe driver" | |
776abede MV |
195 | depends on RCAR_GEN3 |
196 | help | |
197 | Say Y here if you want to enable PCIe controller support on | |
198 | Renesas RCar Gen3 SoCs. | |
199 | ||
537849aa SG |
200 | config PCI_SANDBOX |
201 | bool "Sandbox PCI support" | |
3232bdf0 | 202 | depends on SANDBOX |
537849aa SG |
203 | help |
204 | Support PCI on sandbox, as an emulated bus. This permits testing of | |
205 | PCI feature such as bus scanning, device configuration and device | |
206 | access. The available (emulated) devices are defined statically in | |
207 | the device tree but the normal PCI scan technique is used to find | |
208 | then. | |
209 | ||
31a8f554 TR |
210 | config SH7751_PCI |
211 | bool "SH7751 PCI controller support" | |
212 | depends on SH | |
213 | help | |
214 | SuperH PCI Bridge Configuration | |
215 | ||
fde7e189 SG |
216 | config PCI_TEGRA |
217 | bool "Tegra PCI support" | |
18138ab2 | 218 | depends on ARCH_TEGRA |
bbc5b36b | 219 | depends on (TEGRA186 && POWER_DOMAIN) || (!TEGRA186) |
fde7e189 SG |
220 | help |
221 | Enable support for the PCIe controller found on some generations of | |
222 | Tegra. Tegra20 has 2 root ports with a total of 4 lanes, Tegra30 has | |
223 | 3 root ports with a total of 6 lanes and Tegra124 has 2 root ports | |
224 | with a total of 5 lanes. Some boards require this for Ethernet | |
225 | support to work (e.g. beaver, jetson-tk1). | |
226 | ||
638d705a SG |
227 | config PCI_OCTEONTX |
228 | bool "OcteonTX PCI support" | |
229 | depends on (ARCH_OCTEONTX || ARCH_OCTEONTX2) | |
230 | help | |
231 | Enable support for the OcteonTX/TX2 SoC family ECAM/PEM controllers. | |
232 | These controllers provide PCI configuration access to all on-board | |
233 | peripherals so it should only be disabled for testing purposes | |
234 | ||
ddafdb90 SR |
235 | config PCIE_OCTEON |
236 | bool "MIPS Octeon PCIe support" | |
237 | depends on ARCH_OCTEON | |
238 | help | |
239 | Enable support for the MIPS Octeon SoC family PCIe controllers. | |
240 | ||
a29e45a9 PB |
241 | config PCI_XILINX |
242 | bool "Xilinx AXI Bridge for PCI Express" | |
a29e45a9 PB |
243 | help |
244 | Enable support for the Xilinx AXI bridge for PCI express, an IP block | |
245 | which can be used on some generations of Xilinx FPGAs. | |
246 | ||
80afc63f | 247 | config PCIE_LAYERSCAPE |
ed188aa8 | 248 | bool |
ed188aa8 HZ |
249 | |
250 | config PCIE_LAYERSCAPE_RC | |
251 | bool "Layerscape PCIe Root Complex mode support" | |
ed188aa8 HZ |
252 | select PCIE_LAYERSCAPE |
253 | help | |
254 | Enable Layerscape PCIe Root Complex mode driver support. The Layerscape | |
255 | SoC may have one or several PCIe controllers. Each controller can be | |
256 | configured to Root Complex mode by clearing the corresponding bit of | |
257 | RCW[HOST_AGT_PEX]. | |
258 | ||
2a5bbb13 LT |
259 | config PCI_IOMMU_EXTRA_MAPPINGS |
260 | bool "Support for specifying extra IOMMU mappings for PCI" | |
261 | depends on PCIE_LAYERSCAPE_RC | |
262 | help | |
263 | Enable support for specifying extra IOMMU mappings for PCI | |
264 | controllers through a special env var called "pci_iommu_extra" or | |
265 | through a device tree property named "pci-iommu-extra" placed in | |
266 | the node describing the PCI controller. | |
267 | The intent is to cover SR-IOV scenarios which need mappings for VFs | |
268 | and PCI hot-plug scenarios. More documentation can be found under: | |
269 | arch/arm/cpu/armv8/fsl-layerscape/doc/README.pci_iommu_extra | |
270 | ||
ed188aa8 HZ |
271 | config PCIE_LAYERSCAPE_EP |
272 | bool "Layerscape PCIe Endpoint mode support" | |
ed188aa8 HZ |
273 | select PCIE_LAYERSCAPE |
274 | select PCI_ENDPOINT | |
80afc63f | 275 | help |
ed188aa8 HZ |
276 | Enable Layerscape PCIe Endpoint mode driver support. The Layerscape |
277 | SoC may have one or several PCIe controllers. Each controller can be | |
278 | configured to Endpoint mode by setting the corresponding bit of | |
279 | RCW[HOST_AGT_PEX]. | |
80afc63f | 280 | |
07ce19f5 HZ |
281 | config PCIE_LAYERSCAPE_GEN4 |
282 | bool "Layerscape Gen4 PCIe support" | |
07ce19f5 HZ |
283 | help |
284 | Support PCIe Gen4 on NXP Layerscape SoCs, which may have one or | |
285 | several PCIe controllers. The PCIe controller can work in RC or | |
286 | EP mode according to RCW[HOST_AGT_PEX] setting. | |
287 | ||
ba7c966c PB |
288 | config FSL_PCIE_COMPAT |
289 | string "PCIe compatible of Kernel DT" | |
ed188aa8 | 290 | depends on PCIE_LAYERSCAPE_RC || PCIE_LAYERSCAPE_GEN4 |
ba7c966c PB |
291 | default "fsl,ls1012a-pcie" if ARCH_LS1012A |
292 | default "fsl,ls1028a-pcie" if ARCH_LS1028A | |
293 | default "fsl,ls1043a-pcie" if ARCH_LS1043A | |
294 | default "fsl,ls1046a-pcie" if ARCH_LS1046A | |
295 | default "fsl,ls2080a-pcie" if ARCH_LS2080A | |
296 | default "fsl,ls1088a-pcie" if ARCH_LS1088A | |
18c62dfe | 297 | default "fsl,ls2088a-pcie" if ARCH_LX2160A || ARCH_LX2162A |
ba7c966c PB |
298 | default "fsl,ls1021a-pcie" if ARCH_LS1021A |
299 | help | |
300 | This compatible is used to find pci controller node in Kernel DT | |
301 | to complete fixup. | |
302 | ||
63618e71 PB |
303 | config FSL_PCIE_EP_COMPAT |
304 | string "PCIe EP compatible of Kernel DT" | |
ed188aa8 | 305 | depends on PCIE_LAYERSCAPE_RC || PCIE_LAYERSCAPE_GEN4 |
63618e71 PB |
306 | default "fsl,ls-pcie-ep" |
307 | help | |
308 | This compatible is used to find pci controller ep node in Kernel DT | |
309 | to complete fixup. | |
310 | ||
4547a1bc TR |
311 | config PCIE_IMX |
312 | bool "i.MX PCIe support" | |
313 | depends on ARCH_MX6 | |
314 | ||
7c45862f LFT |
315 | config PCIE_INTEL_FPGA |
316 | bool "Intel FPGA PCIe support" | |
7c45862f LFT |
317 | help |
318 | Say Y here if you want to enable PCIe controller support on Intel | |
319 | FPGA, example Stratix 10. | |
320 | ||
4848704a SM |
321 | config PCIE_IPROC |
322 | bool "Iproc PCIe support" | |
4848704a SM |
323 | help |
324 | Broadcom iProc PCIe controller driver. | |
325 | Say Y here if you want to enable Broadcom iProc PCIe controller, | |
326 | ||
94f453ea | 327 | config PCI_MVEBU |
43640713 T |
328 | bool "Enable Kirkwood / Armada 370/XP/375/38x PCIe driver" |
329 | depends on (ARCH_KIRKWOOD || ARCH_MVEBU) | |
94f453ea | 330 | select MISC |
94c30f9c | 331 | select DM_RESET |
ca3756c8 | 332 | select DM_GPIO |
94f453ea SR |
333 | help |
334 | Say Y here if you want to enable PCIe controller support on | |
43640713 | 335 | Kirkwood and Armada 370/XP/375/38x SoCs. |
94f453ea | 336 | |
dfadb946 NA |
337 | config PCIE_DW_COMMON |
338 | bool | |
dfadb946 | 339 | |
03c396bb SN |
340 | config PCI_KEYSTONE |
341 | bool "TI Keystone PCIe controller" | |
1a031829 | 342 | select PCIE_DW_COMMON |
03c396bb SN |
343 | help |
344 | Say Y here if you want to enable PCI controller support on AM654 SoC. | |
345 | ||
42d37450 RL |
346 | config PCIE_MEDIATEK |
347 | bool "MediaTek PCIe Gen2 controller" | |
42d37450 RL |
348 | depends on ARCH_MEDIATEK |
349 | help | |
350 | Say Y here if you want to enable Gen2 PCIe controller, | |
351 | which could be found on MT7623 SoC family. | |
352 | ||
2c32c701 NA |
353 | config PCIE_DW_MESON |
354 | bool "Amlogic Meson DesignWare based PCIe controller" | |
355 | depends on ARCH_MESON | |
356 | select PCIE_DW_COMMON | |
357 | help | |
358 | Say Y here if you want to enable DW PCIe controller support on | |
359 | Amlogic SoCs. | |
360 | ||
99d59069 JT |
361 | config PCIE_ROCKCHIP |
362 | bool "Enable Rockchip PCIe driver" | |
a261fdce | 363 | depends on ARCH_ROCKCHIP |
ce920e0e | 364 | select PHY_ROCKCHIP_PCIE |
99d59069 JT |
365 | default y if ROCKCHIP_RK3399 |
366 | help | |
367 | Say Y here if you want to enable PCIe controller support on | |
368 | Rockchip SoCs. | |
369 | ||
9ddc0787 SL |
370 | config PCIE_DW_ROCKCHIP |
371 | bool "Rockchip DesignWare based PCIe controller" | |
372 | depends on ARCH_ROCKCHIP | |
c90f3d0e | 373 | select PCIE_DW_COMMON |
9ddc0787 SL |
374 | select PHY_ROCKCHIP_SNPS_PCIE3 |
375 | help | |
376 | Say Y here if you want to enable DW PCIe controller support on | |
377 | Rockchip SoCs. | |
378 | ||
7b1c3f6f SN |
379 | config PCI_BRCMSTB |
380 | bool "Broadcom STB PCIe controller" | |
7b1c3f6f SN |
381 | depends on ARCH_BCM283X |
382 | help | |
383 | Say Y here if you want to enable support for PCIe controller | |
384 | on Broadcom set-top-box (STB) SoCs. | |
385 | This driver currently supports only BCM2711 SoC and RC mode | |
386 | of the controller. | |
e22c2560 KH |
387 | |
388 | config PCIE_UNIPHIER | |
389 | bool "Socionext UniPhier PCIe driver" | |
e22c2560 KH |
390 | depends on ARCH_UNIPHIER |
391 | select PHY_UNIPHIER_PCIE | |
392 | help | |
393 | Say Y here if you want to enable PCIe controller support on | |
394 | UniPhier SoCs. | |
395 | ||
2f5ad77c SR |
396 | config PCIE_XILINX_NWL |
397 | bool "Xilinx NWL PCIe controller" | |
398 | depends on ARCH_ZYNQMP | |
399 | help | |
400 | Say 'Y' here if you want support for Xilinx / AMD NWL PCIe | |
401 | controller as Root Port. | |
402 | ||
7870a055 MH |
403 | config PCIE_PLDA_COMMON |
404 | bool | |
405 | ||
406 | config PCIE_STARFIVE_JH7110 | |
407 | bool "Enable Starfive JH7110 PCIe driver" | |
408 | select PCIE_PLDA_COMMON | |
409 | imply STARFIVE_JH7110 | |
410 | imply CLK_JH7110 | |
411 | imply RESET_JH7110 | |
412 | help | |
413 | Say Y here if you want to enable PLDA XpressRich PCIe controller | |
414 | support on StarFive JH7110 SoC. | |
415 | ||
d56d4937 SG |
416 | config PCIE_DW_IMX |
417 | bool "i.MX DW PCIe controller support" | |
418 | depends on ARCH_IMX8M | |
419 | select PCIE_DW_COMMON | |
420 | select DM_REGULATOR | |
421 | select REGMAP | |
422 | select SYSCON | |
423 | help | |
424 | Say Y here if you want to enable DW PCIe controller support on | |
425 | iMX SoCs. | |
426 | ||
af27382e | 427 | endif |