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
13 select PCI_BRIDGE_EMUL
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.
20 tristate "Aardvark PCIe controller"
21 depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
24 select PCI_BRIDGE_EMUL
26 Add support for Aardvark 64bit PCIe Host Controller. This
27 controller is part of the South Bridge of the Marvel Armada
30 config PCIE_XILINX_NWL
32 depends on ARCH_ZYNQMP || COMPILE_TEST
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.
41 bool "Faraday Technology FTPCI100 PCI controller"
46 bool "Intel IXP4xx PCI controller"
48 depends on ARCH_IXP4XX || COMPILE_TEST
51 Say Y here if you want support for the PCI host controller found
52 in the Intel IXP4xx XScale-based network processor SoC.
55 bool "NVIDIA Tegra PCIe controller"
56 depends on ARCH_TEGRA || COMPILE_TEST
59 Say Y here if you want support for the PCIe host controller found
63 bool "Renesas R-Car Gen2 Internal PCI controller"
64 depends on ARCH_RENESAS || COMPILE_TEST
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.
72 bool "Renesas R-Car PCIe host controller"
73 depends on ARCH_RENESAS || COMPILE_TEST
76 Say Y here if you want PCIe controller support on R-Car SoCs in host
80 bool "Renesas R-Car PCIe endpoint controller"
81 depends on ARCH_RENESAS || COMPILE_TEST
82 depends on PCI_ENDPOINT
84 Say Y here if you want PCIe controller support on R-Car SoCs in
87 config PCI_HOST_COMMON
91 config PCI_HOST_GENERIC
92 tristate "Generic PCI host controller"
94 select PCI_HOST_COMMON
97 Say Y here if you want to support a simple generic PCI host
98 controller, such as the one emulated by kvmtool.
101 bool "Xilinx AXI PCIe host bridge support"
102 depends on OF || COMPILE_TEST
105 Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
108 config PCIE_XILINX_CPM
109 bool "Xilinx Versal CPM host bridge support"
110 depends on ARCH_ZYNQMP || COMPILE_TEST
111 select PCI_HOST_COMMON
113 Say 'Y' here if you want kernel support for the
114 Xilinx Versal CPM host bridge.
117 bool "X-Gene PCIe controller"
118 depends on ARM64 || COMPILE_TEST
119 depends on OF || (ACPI && PCI_QUIRKS)
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.
126 bool "X-Gene v1 PCIe MSI feature"
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.
135 bool "V3 Semiconductor PCI controller"
137 depends on ARM || COMPILE_TEST
138 default ARCH_INTEGRATOR_AP
141 bool "ARM Versatile PB PCI controller"
142 depends on ARCH_VERSATILE || COMPILE_TEST
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.
151 config PCIE_IPROC_PLATFORM
152 tristate "Broadcom iProc PCIe platform bus driver"
153 depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
156 default ARCH_BCM_IPROC
158 Say Y here if you want to use the Broadcom iProc PCIe controller
159 through the generic platform bus interface
161 config PCIE_IPROC_BCMA
162 tristate "Broadcom iProc PCIe BCMA bus driver"
163 depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
166 default ARCH_BCM_5301X
168 Say Y here if you want to use the Broadcom iProc PCIe controller
169 through the BCMA bus interface
171 config PCIE_IPROC_MSI
172 bool "Broadcom iProc PCIe MSI support"
173 depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
175 default ARCH_BCM_IPROC
177 Say Y here if you want to enable MSI support for Broadcom's iProc
181 tristate "Altera PCIe controller"
182 depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
184 Say Y here if you want to enable PCIe controller support on Altera
187 config PCIE_ALTERA_MSI
188 tristate "Altera PCIe MSI feature"
189 depends on PCIE_ALTERA
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.
195 config 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
201 Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
203 config 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
209 Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
215 config PCIE_ROCKCHIP_HOST
216 tristate "Rockchip PCIe host controller"
217 depends on ARCH_ROCKCHIP || COMPILE_TEST
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
227 config PCIE_ROCKCHIP_EP
228 bool "Rockchip PCIe endpoint controller"
229 depends on ARCH_ROCKCHIP || COMPILE_TEST
231 depends on PCI_ENDPOINT
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.
240 tristate "MediaTek PCIe controller"
241 depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST
245 Say Y here if you want to enable PCIe controller support on
248 config PCIE_MEDIATEK_GEN3
249 tristate "MediaTek Gen3 PCIe controller"
250 depends on ARCH_MEDIATEK || COMPILE_TEST
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.
258 Say Y here if you want to enable Gen3 PCIe controller support on
262 depends on PCI_MSI && X86_64 && !UML
263 tristate "Intel Volume Management Device Driver"
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.
273 To compile this driver as a module, choose M here: the
274 module will be called vmd.
277 tristate "Broadcom Brcmstb PCIe host controller"
278 depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCMBCA || \
279 BMIPS_GENERIC || COMPILE_TEST
282 default ARCH_BRCMSTB || BMIPS_GENERIC
284 Say Y here to enable PCIe host controller support for
285 Broadcom STB based SoCs, like the Raspberry Pi 4.
287 config PCI_HYPERV_INTERFACE
288 tristate "Hyper-V PCI Interface"
289 depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI
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.
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
301 Say Y here if you want to enable PCI controller support on
304 config PCIE_MICROCHIP_HOST
305 bool "Microchip AXI PCIe host bridge support"
306 depends on PCI_MSI && OF
307 select PCI_HOST_COMMON
309 Say Y here if you want kernel to support the Microchip AXI PCIe
313 depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST)
314 bool "HiSilicon HIP PCIe controller error handling driver"
316 Say Y here if you want error handling support
317 for the PCIe controller's errors on HiSilicon HIP SoCs
319 config PCIE_APPLE_MSI_DOORBELL_ADDR
322 depends on PCIE_APPLE
325 tristate "Apple PCIe controller"
326 depends on ARCH_APPLE || COMPILE_TEST
329 select PCI_HOST_COMMON
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.
335 If unsure, say Y if you have an Apple Silicon system.
338 tristate "MediaTek MT7621 PCIe Controller"
339 depends on SOC_MT7621 || COMPILE_TEST
340 select PHY_MT7621_PCI
343 This selects a driver for the MediaTek MT7621 PCIe Controller.
345 source "drivers/pci/controller/dwc/Kconfig"
346 source "drivers/pci/controller/mobiveil/Kconfig"
347 source "drivers/pci/controller/cadence/Kconfig"