projects/linux·blob master · refs

400 lines · 11.5 KiB

1# SPDX-License-Identifier: GPL-2.0
2
3menu "PCI controller drivers"
4 depends on PCI
5
6config PCI_HOST_COMMON
7 tristate
8 select PCI_ECAM
9
10config PCI_AARDVARK
11 tristate "Aardvark PCIe controller"
12 depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
13 depends on OF
14 depends on PCI_MSI
15 select PCI_BRIDGE_EMUL
16 select IRQ_MSI_LIB
17 help
18 Add support for Aardvark 64bit PCIe Host Controller. This
19 controller is part of the South Bridge of the Marvel Armada
20 3700 SoC.
21
22config PCIE_ALTERA
23 tristate "Altera PCIe controller"
24 depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
25 help
26 Say Y here if you want to enable PCIe controller support on Altera
27 FPGA.
28
29config PCIE_ALTERA_MSI
30 tristate "Altera PCIe MSI feature"
31 depends on PCIE_ALTERA
32 depends on PCI_MSI
33 select IRQ_MSI_LIB
34 help
35 Say Y here if you want PCIe MSI support for the Altera FPGA.
36 This MSI driver supports Altera MSI to GIC controller IP.
37
38config PCIE_APPLE_MSI_DOORBELL_ADDR
39 hex
40 default 0xfffff000
41 depends on PCIE_APPLE
42
43config PCIE_APPLE
44 tristate "Apple PCIe controller"
45 depends on ARCH_APPLE || COMPILE_TEST
46 depends on OF
47 depends on PCI_MSI
48 select PCI_HOST_COMMON
49 select IRQ_MSI_LIB
50 help
51 Say Y here if you want to enable PCIe controller support on Apple
52 system-on-chips, like the Apple M1. This is required for the USB
53 type-A ports, Ethernet, Wi-Fi, and Bluetooth.
54
55 If unsure, say Y if you have an Apple Silicon system.
56
57config PCI_VERSATILE
58 bool "ARM Versatile PB PCI controller"
59 depends on ARCH_VERSATILE || COMPILE_TEST
60
61config PCIE_ASPEED
62 bool "ASPEED PCIe controller"
63 depends on ARCH_ASPEED || COMPILE_TEST
64 depends on OF
65 depends on PCI_MSI
66 select IRQ_MSI_LIB
67 help
68 Enable this option to support the PCIe controller found on ASPEED
69 SoCs.
70
71 This driver provides initialization and management for PCIe
72 Root Complex functionality, including INTx and MSI support.
73
74 Select Y if your platform uses an ASPEED SoC and requires PCIe
75 connectivity.
76
77config PCIE_BRCMSTB
78 tristate "Broadcom Brcmstb PCIe controller"
79 depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCMBCA || \
80 BMIPS_GENERIC || COMPILE_TEST
81 depends on OF
82 depends on PCI_MSI
83 select IRQ_MSI_LIB
84 default ARCH_BRCMSTB || BMIPS_GENERIC
85 help
86 Say Y here to enable PCIe host controller support for
87 Broadcom STB based SoCs, like the Raspberry Pi 4.
88
89config PCIE_IPROC
90 tristate
91 help
92 This enables the iProc PCIe core controller support for Broadcom's
93 iProc family of SoCs. An appropriate bus interface driver needs
94 to be enabled to select this.
95
96config PCIE_IPROC_PLATFORM
97 tristate "Broadcom iProc PCIe platform bus driver"
98 depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
99 depends on OF
100 select PCIE_IPROC
101 default ARCH_BCM_IPROC
102 help
103 Say Y here if you want to use the Broadcom iProc PCIe controller
104 through the generic platform bus interface
105
106config PCIE_IPROC_BCMA
107 tristate "Broadcom iProc BCMA PCIe controller"
108 depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
109 select PCIE_IPROC
110 select BCMA
111 default ARCH_BCM_5301X
112 help
113 Say Y here if you want to use the Broadcom iProc PCIe controller
114 through the BCMA bus interface
115
116config PCIE_IPROC_MSI
117 bool "Broadcom iProc PCIe MSI support"
118 depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
119 depends on PCI_MSI
120 select IRQ_MSI_LIB
121 default ARCH_BCM_IPROC
122 help
123 Say Y here if you want to enable MSI support for Broadcom's iProc
124 PCIe controller
125
126config PCI_HOST_THUNDER_PEM
127 bool "Cavium Thunder PCIe controller to off-chip devices"
128 depends on ARM64 || COMPILE_TEST
129 depends on OF || (ACPI && PCI_QUIRKS)
130 select PCI_HOST_COMMON
131 help
132 Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
133
134config PCI_HOST_THUNDER_ECAM
135 bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
136 depends on ARM64 || COMPILE_TEST
137 depends on OF || (ACPI && PCI_QUIRKS)
138 select PCI_HOST_COMMON
139 help
140 Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
141
142config PCI_FTPCI100
143 bool "Faraday Technology FTPCI100 PCI controller"
144 depends on OF
145 default ARCH_GEMINI
146
147config PCI_HOST_GENERIC
148 tristate "Generic PCI host controller"
149 depends on OF
150 select PCI_HOST_COMMON
151 select IRQ_DOMAIN
152 help
153 Say Y here if you want to support a simple generic PCI host
154 controller, such as the one emulated by kvmtool.
155
156config PCIE_HISI_ERR
157 depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST)
158 bool "HiSilicon HIP PCIe controller error handling driver"
159 help
160 Say Y here if you want error handling support
161 for the PCIe controller's errors on HiSilicon HIP SoCs
162
163config PCI_IXP4XX
164 bool "Intel IXP4xx PCI controller"
165 depends on OF
166 depends on ARCH_IXP4XX || COMPILE_TEST
167 default ARCH_IXP4XX
168 help
169 Say Y here if you want support for the PCI host controller found
170 in the Intel IXP4xx XScale-based network processor SoC.
171
172config VMD
173 depends on PCI_MSI && X86_64 && !UML
174 tristate "Intel Volume Management Device Driver"
175 select IRQ_MSI_LIB
176 help
177 Adds support for the Intel Volume Management Device (VMD). VMD is a
178 secondary PCI host bridge that allows PCI Express root ports,
179 and devices attached to them, to be removed from the default
180 PCI domain and placed within the VMD domain. This provides
181 more bus resources than are otherwise possible with a
182 single domain. If you know your system provides one of these and
183 has devices attached to it, say Y; if you are not sure, say N.
184
185 To compile this driver as a module, choose M here: the
186 module will be called vmd.
187
188config PCI_LOONGSON
189 bool "LOONGSON PCIe controller"
190 depends on MACH_LOONGSON32 || MACH_LOONGSON64 || COMPILE_TEST
191 depends on OF || ACPI
192 depends on PCI_QUIRKS
193 default MACH_LOONGSON64
194 help
195 Say Y here if you want to enable PCI controller support on
196 Loongson systems.
197
198config PCI_MVEBU
199 tristate "Marvell EBU PCIe controller"
200 depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST
201 depends on MVEBU_MBUS
202 depends on ARM
203 depends on OF
204 select PCI_BRIDGE_EMUL
205 help
206 Add support for Marvell EBU PCIe controller. This PCIe controller
207 is used on 32-bit Marvell ARM SoCs: Dove, Kirkwood, Armada 370,
208 Armada XP, Armada 375, Armada 38x and Armada 39x.
209
210config PCIE_MEDIATEK
211 tristate "MediaTek PCIe controller"
212 depends on ARCH_AIROHA || ARCH_MEDIATEK || ECONET || COMPILE_TEST
213 depends on OF
214 depends on PCI_MSI
215 select IRQ_MSI_LIB
216 help
217 Say Y here if you want to enable PCIe controller support on
218 MediaTek SoCs.
219
220config PCIE_MEDIATEK_GEN3
221 tristate "MediaTek Gen3 PCIe controller"
222 depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST
223 depends on PCI_MSI
224 select IRQ_MSI_LIB
225 select PCI_PWRCTRL_GENERIC
226 help
227 Adds support for PCIe Gen3 MAC controller for MediaTek SoCs.
228 This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed,
229 and support up to 256 MSI interrupt numbers for
230 multi-function devices.
231
232 Say Y here if you want to enable Gen3 PCIe controller support on
233 MediaTek SoCs.
234
235config PCIE_MT7621
236 tristate "MediaTek MT7621 PCIe controller"
237 depends on SOC_MT7621 || COMPILE_TEST
238 select PHY_MT7621_PCI
239 default SOC_MT7621
240 help
241 This selects a driver for the MediaTek MT7621 PCIe Controller.
242
243config PCI_HYPERV_INTERFACE
244 tristate "Microsoft Hyper-V PCI Interface"
245 depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI
246 help
247 The Hyper-V PCI Interface is a helper driver that allows other
248 drivers to have a common interface with the Hyper-V PCI frontend
249 driver.
250
251config PCI_TEGRA
252 tristate "NVIDIA Tegra PCIe controller"
253 depends on ARCH_TEGRA || COMPILE_TEST
254 depends on PCI_MSI
255 select IRQ_MSI_LIB
256 help
257 Say Y here if you want support for the PCIe host controller found
258 on NVIDIA Tegra SoCs (Tegra20 through Tegra186).
259
260config PCIE_TEGRA264
261 tristate "NVIDIA Tegra264 PCIe controller"
262 depends on ARCH_TEGRA || COMPILE_TEST
263 select PCI_ECAM
264 help
265 Say Y here if you want support for the PCIe Host Controller found
266 on NVIDIA Tegra264 SoCs.
267
268config PCIE_RCAR_HOST
269 bool "Renesas R-Car PCIe controller (host mode)"
270 depends on ARCH_RENESAS || COMPILE_TEST
271 depends on OF
272 depends on PCI_MSI
273 select IRQ_MSI_LIB
274 help
275 Say Y here if you want PCIe controller support on R-Car SoCs in host
276 mode.
277
278config PCIE_RCAR_EP
279 bool "Renesas R-Car PCIe controller (endpoint mode)"
280 depends on ARCH_RENESAS || COMPILE_TEST
281 depends on PCI_ENDPOINT
282 help
283 Say Y here if you want PCIe controller support on R-Car SoCs in
284 endpoint mode.
285
286config PCI_RCAR_GEN2
287 bool "Renesas R-Car Gen2 Internal PCI controller"
288 depends on (ARCH_RENESAS && ARM) || COMPILE_TEST
289 help
290 Say Y here if you want internal PCI support on R-Car Gen2 SoC.
291 Each internal PCI controller contains a single built-in EHCI/OHCI
292 host controller.
293
294config PCIE_RENESAS_RZG3S_HOST
295 bool "Renesas RZ/G3S PCIe host controller"
296 depends on ARCH_RENESAS || COMPILE_TEST
297 select MFD_SYSCON
298 select IRQ_MSI_LIB
299 help
300 Say Y here if you want PCIe host controller support on Renesas RZ/G3S
301 SoC.
302
303config PCIE_ROCKCHIP
304 bool
305 depends on PCI
306
307config PCIE_ROCKCHIP_HOST
308 tristate "Rockchip PCIe controller (host mode)"
309 depends on ARCH_ROCKCHIP || COMPILE_TEST
310 depends on OF
311 depends on PCI_MSI
312 select MFD_SYSCON
313 select PCIE_ROCKCHIP
314 help
315 Say Y here if you want internal PCI support on Rockchip SoC.
316 There is 1 internal PCIe port available to support GEN2 with
317 4 slots.
318
319config PCIE_ROCKCHIP_EP
320 bool "Rockchip PCIe controller (endpoint mode)"
321 depends on ARCH_ROCKCHIP || COMPILE_TEST
322 depends on OF
323 depends on PCI_ENDPOINT
324 select MFD_SYSCON
325 select PCIE_ROCKCHIP
326 help
327 Say Y here if you want to support Rockchip PCIe controller in
328 endpoint mode on Rockchip SoC. There is 1 internal PCIe port
329 available to support GEN2 with 4 slots.
330
331config PCI_V3_SEMI
332 bool "V3 Semiconductor PCI controller"
333 depends on OF
334 depends on ARM || COMPILE_TEST
335 default ARCH_INTEGRATOR_AP
336
337config PCI_XGENE
338 bool "X-Gene PCIe controller"
339 depends on ARM64 || COMPILE_TEST
340 depends on OF || (ACPI && PCI_QUIRKS)
341 help
342 Say Y here if you want internal PCI support on APM X-Gene SoC.
343 There are 5 internal PCIe ports available. Each port is GEN3 capable
344 and have varied lanes from x1 to x8.
345
346config PCI_XGENE_MSI
347 bool "X-Gene v1 PCIe MSI feature"
348 depends on PCI_XGENE
349 depends on PCI_MSI
350 select IRQ_MSI_LIB
351 default y
352 help
353 Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
354 This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
355
356config PCIE_XILINX
357 bool "Xilinx AXI PCIe controller"
358 depends on OF
359 depends on PCI_MSI
360 select IRQ_MSI_LIB
361 help
362 Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
363 Host Bridge driver.
364
365config PCIE_XILINX_DMA_PL
366 bool "Xilinx DMA PL PCIe host bridge support"
367 depends on ARCH_ZYNQMP || COMPILE_TEST
368 depends on PCI_MSI
369 select PCI_HOST_COMMON
370 select IRQ_MSI_LIB
371 help
372 Say 'Y' here if you want kernel support for the Xilinx PL DMA
373 PCIe host bridge. The controller is a Soft IP which can act as
374 Root Port. If your system provides Xilinx PCIe host controller
375 bridge DMA as Soft IP say 'Y'; if you are not sure, say 'N'.
376
377config PCIE_XILINX_NWL
378 bool "Xilinx NWL PCIe controller"
379 depends on ARCH_ZYNQMP || COMPILE_TEST
380 depends on PCI_MSI
381 select IRQ_MSI_LIB
382 help
383 Say 'Y' here if you want kernel support for Xilinx
384 NWL PCIe controller. The controller can act as Root Port
385 or End Point. The current option selection will only
386 support root port enabling.
387
388config PCIE_XILINX_CPM
389 bool "Xilinx Versal CPM PCI controller"
390 depends on ARCH_ZYNQMP || COMPILE_TEST
391 select PCI_HOST_COMMON
392 help
393 Say 'Y' here if you want kernel support for the
394 Xilinx Versal CPM host bridge.
395
396source "drivers/pci/controller/cadence/Kconfig"
397source "drivers/pci/controller/dwc/Kconfig"
398source "drivers/pci/controller/mobiveil/Kconfig"
399source "drivers/pci/controller/plda/Kconfig"
400endmenu