1 # SPDX-License-Identifier: GPL-2.0
3 menu "PCI controller drivers"
7 tristate "Marvell EBU PCIe controller"
8 depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST
12 select PCI_BRIDGE_EMUL
15 tristate "Aardvark PCIe controller"
16 depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
18 depends on PCI_MSI_IRQ_DOMAIN
19 select PCI_BRIDGE_EMUL
21 Add support for Aardvark 64bit PCIe Host Controller. This
22 controller is part of the South Bridge of the Marvel Armada
25 config PCIE_XILINX_NWL
27 depends on ARCH_ZYNQMP || COMPILE_TEST
28 depends on PCI_MSI_IRQ_DOMAIN
30 Say 'Y' here if you want kernel support for Xilinx
31 NWL PCIe controller. The controller can act as Root Port
32 or End Point. The current option selection will only
33 support root port enabling.
36 bool "Faraday Technology FTPCI100 PCI controller"
41 bool "Intel IXP4xx PCI controller"
43 depends on ARCH_IXP4XX || COMPILE_TEST
46 Say Y here if you want support for the PCI host controller found
47 in the Intel IXP4xx XScale-based network processor SoC.
50 bool "NVIDIA Tegra PCIe controller"
51 depends on ARCH_TEGRA || COMPILE_TEST
52 depends on PCI_MSI_IRQ_DOMAIN
54 Say Y here if you want support for the PCIe host controller found
58 bool "Renesas R-Car Gen2 Internal PCI controller"
59 depends on ARCH_RENESAS || COMPILE_TEST
62 Say Y here if you want internal PCI support on R-Car Gen2 SoC.
63 There are 3 internal PCI controllers available with a single
64 built-in EHCI/OHCI host controller present on each one.
67 bool "Renesas R-Car PCIe host controller"
68 depends on ARCH_RENESAS || COMPILE_TEST
69 depends on PCI_MSI_IRQ_DOMAIN
71 Say Y here if you want PCIe controller support on R-Car SoCs in host
75 bool "Renesas R-Car PCIe endpoint controller"
76 depends on ARCH_RENESAS || COMPILE_TEST
77 depends on PCI_ENDPOINT
79 Say Y here if you want PCIe controller support on R-Car SoCs in
82 config PCI_HOST_COMMON
86 config PCI_HOST_GENERIC
87 tristate "Generic PCI host controller"
89 select PCI_HOST_COMMON
92 Say Y here if you want to support a simple generic PCI host
93 controller, such as the one emulated by kvmtool.
96 bool "Xilinx AXI PCIe host bridge support"
97 depends on OF || COMPILE_TEST
98 depends on PCI_MSI_IRQ_DOMAIN
100 Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
103 config PCIE_XILINX_CPM
104 bool "Xilinx Versal CPM host bridge support"
105 depends on ARCH_ZYNQMP || COMPILE_TEST
106 select PCI_HOST_COMMON
108 Say 'Y' here if you want kernel support for the
109 Xilinx Versal CPM host bridge.
112 bool "X-Gene PCIe controller"
113 depends on ARM64 || COMPILE_TEST
114 depends on OF || (ACPI && PCI_QUIRKS)
116 Say Y here if you want internal PCI support on APM X-Gene SoC.
117 There are 5 internal PCIe ports available. Each port is GEN3 capable
118 and have varied lanes from x1 to x8.
121 bool "X-Gene v1 PCIe MSI feature"
123 depends on PCI_MSI_IRQ_DOMAIN
126 Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
127 This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
130 bool "V3 Semiconductor PCI controller"
132 depends on ARM || COMPILE_TEST
133 default ARCH_INTEGRATOR_AP
136 bool "ARM Versatile PB PCI controller"
137 depends on ARCH_VERSATILE || COMPILE_TEST
142 This enables the iProc PCIe core controller support for Broadcom's
143 iProc family of SoCs. An appropriate bus interface driver needs
144 to be enabled to select this.
146 config PCIE_IPROC_PLATFORM
147 tristate "Broadcom iProc PCIe platform bus driver"
148 depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
151 default ARCH_BCM_IPROC
153 Say Y here if you want to use the Broadcom iProc PCIe controller
154 through the generic platform bus interface
156 config PCIE_IPROC_BCMA
157 tristate "Broadcom iProc PCIe BCMA bus driver"
158 depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
161 default ARCH_BCM_5301X
163 Say Y here if you want to use the Broadcom iProc PCIe controller
164 through the BCMA bus interface
166 config PCIE_IPROC_MSI
167 bool "Broadcom iProc PCIe MSI support"
168 depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
169 depends on PCI_MSI_IRQ_DOMAIN
170 default ARCH_BCM_IPROC
172 Say Y here if you want to enable MSI support for Broadcom's iProc
176 tristate "Altera PCIe controller"
177 depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
179 Say Y here if you want to enable PCIe controller support on Altera
182 config PCIE_ALTERA_MSI
183 tristate "Altera PCIe MSI feature"
184 depends on PCIE_ALTERA
185 depends on PCI_MSI_IRQ_DOMAIN
187 Say Y here if you want PCIe MSI support for the Altera FPGA.
188 This MSI driver supports Altera MSI to GIC controller IP.
190 config PCI_HOST_THUNDER_PEM
191 bool "Cavium Thunder PCIe controller to off-chip devices"
192 depends on ARM64 || COMPILE_TEST
193 depends on OF || (ACPI && PCI_QUIRKS)
194 select PCI_HOST_COMMON
196 Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
198 config PCI_HOST_THUNDER_ECAM
199 bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
200 depends on ARM64 || COMPILE_TEST
201 depends on OF || (ACPI && PCI_QUIRKS)
202 select PCI_HOST_COMMON
204 Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
210 config PCIE_ROCKCHIP_HOST
211 tristate "Rockchip PCIe host controller"
212 depends on ARCH_ROCKCHIP || COMPILE_TEST
214 depends on PCI_MSI_IRQ_DOMAIN
218 Say Y here if you want internal PCI support on Rockchip SoC.
219 There is 1 internal PCIe port available to support GEN2 with
222 config PCIE_ROCKCHIP_EP
223 bool "Rockchip PCIe endpoint controller"
224 depends on ARCH_ROCKCHIP || COMPILE_TEST
226 depends on PCI_ENDPOINT
230 Say Y here if you want to support Rockchip PCIe controller in
231 endpoint mode on Rockchip SoC. There is 1 internal PCIe port
232 available to support GEN2 with 4 slots.
235 tristate "MediaTek PCIe controller"
236 depends on ARCH_MEDIATEK || COMPILE_TEST
238 depends on PCI_MSI_IRQ_DOMAIN
240 Say Y here if you want to enable PCIe controller support on
243 config PCIE_MEDIATEK_GEN3
244 tristate "MediaTek Gen3 PCIe controller"
245 depends on ARCH_MEDIATEK || COMPILE_TEST
246 depends on PCI_MSI_IRQ_DOMAIN
248 Adds support for PCIe Gen3 MAC controller for MediaTek SoCs.
249 This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed,
250 and support up to 256 MSI interrupt numbers for
251 multi-function devices.
253 Say Y here if you want to enable Gen3 PCIe controller support on
257 depends on PCI_MSI && X86_64 && SRCU && !UML
258 tristate "Intel Volume Management Device Driver"
260 Adds support for the Intel Volume Management Device (VMD). VMD is a
261 secondary PCI host bridge that allows PCI Express root ports,
262 and devices attached to them, to be removed from the default
263 PCI domain and placed within the VMD domain. This provides
264 more bus resources than are otherwise possible with a
265 single domain. If you know your system provides one of these and
266 has devices attached to it, say Y; if you are not sure, say N.
268 To compile this driver as a module, choose M here: the
269 module will be called vmd.
272 tristate "Broadcom Brcmstb PCIe host controller"
273 depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCM4908 || \
274 BMIPS_GENERIC || COMPILE_TEST
276 depends on PCI_MSI_IRQ_DOMAIN
277 default ARCH_BRCMSTB || BMIPS_GENERIC
279 Say Y here to enable PCIe host controller support for
280 Broadcom STB based SoCs, like the Raspberry Pi 4.
282 config PCI_HYPERV_INTERFACE
283 tristate "Hyper-V PCI Interface"
284 depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN
286 The Hyper-V PCI Interface is a helper driver allows other drivers to
287 have a common interface with the Hyper-V PCI frontend driver.
290 bool "LOONGSON PCI Controller"
291 depends on MACH_LOONGSON64 || COMPILE_TEST
293 depends on PCI_QUIRKS
294 default MACH_LOONGSON64
296 Say Y here if you want to enable PCI controller support on
299 config PCIE_MICROCHIP_HOST
300 bool "Microchip AXI PCIe host bridge support"
301 depends on PCI_MSI && OF
302 select PCI_MSI_IRQ_DOMAIN
303 select GENERIC_MSI_IRQ_DOMAIN
304 select PCI_HOST_COMMON
306 Say Y here if you want kernel to support the Microchip AXI PCIe
310 depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST)
311 bool "HiSilicon HIP PCIe controller error handling driver"
313 Say Y here if you want error handling support
314 for the PCIe controller's errors on HiSilicon HIP SoCs
316 config PCIE_APPLE_MSI_DOORBELL_ADDR
319 depends on PCIE_APPLE
322 tristate "Apple PCIe controller"
323 depends on ARCH_APPLE || COMPILE_TEST
325 depends on PCI_MSI_IRQ_DOMAIN
326 select PCI_HOST_COMMON
328 Say Y here if you want to enable PCIe controller support on Apple
329 system-on-chips, like the Apple M1. This is required for the USB
330 type-A ports, Ethernet, Wi-Fi, and Bluetooth.
332 If unsure, say Y if you have an Apple Silicon system.
335 tristate "MediaTek MT7621 PCIe Controller"
336 depends on SOC_MT7621 || COMPILE_TEST
337 select PHY_MT7621_PCI
340 This selects a driver for the MediaTek MT7621 PCIe Controller.
342 source "drivers/pci/controller/dwc/Kconfig"
343 source "drivers/pci/controller/mobiveil/Kconfig"
344 source "drivers/pci/controller/cadence/Kconfig"