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