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