1 # SPDX-License-Identifier: GPL-2.0
3 menu "PCI controller drivers"
7 bool "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"
45 Say Y here if you want support for the PCI host controller found
46 in the Intel IXP4xx XScale-based network processor SoC.
49 bool "NVIDIA Tegra PCIe controller"
50 depends on ARCH_TEGRA || COMPILE_TEST
51 depends on PCI_MSI_IRQ_DOMAIN
53 Say Y here if you want support for the PCIe host controller found
57 bool "Renesas R-Car Gen2 Internal PCI controller"
58 depends on ARCH_RENESAS || COMPILE_TEST
61 Say Y here if you want internal PCI support on R-Car Gen2 SoC.
62 There are 3 internal PCI controllers available with a single
63 built-in EHCI/OHCI host controller present on each one.
66 bool "Renesas R-Car PCIe host controller"
67 depends on ARCH_RENESAS || COMPILE_TEST
68 depends on PCI_MSI_IRQ_DOMAIN
70 Say Y here if you want PCIe controller support on R-Car SoCs in host
74 bool "Renesas R-Car PCIe endpoint controller"
75 depends on ARCH_RENESAS || COMPILE_TEST
76 depends on PCI_ENDPOINT
78 Say Y here if you want PCIe controller support on R-Car SoCs in
81 config PCI_HOST_COMMON
85 config PCI_HOST_GENERIC
86 tristate "Generic PCI host controller"
88 select PCI_HOST_COMMON
91 Say Y here if you want to support a simple generic PCI host
92 controller, such as the one emulated by kvmtool.
95 bool "Xilinx AXI PCIe host bridge support"
96 depends on OF || COMPILE_TEST
97 depends on PCI_MSI_IRQ_DOMAIN
99 Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
102 config PCIE_XILINX_CPM
103 bool "Xilinx Versal CPM host bridge support"
104 depends on ARCH_ZYNQMP || COMPILE_TEST
105 select PCI_HOST_COMMON
107 Say 'Y' here if you want kernel support for the
108 Xilinx Versal CPM host bridge.
111 bool "X-Gene PCIe controller"
112 depends on ARM64 || COMPILE_TEST
113 depends on OF || (ACPI && PCI_QUIRKS)
115 Say Y here if you want internal PCI support on APM X-Gene SoC.
116 There are 5 internal PCIe ports available. Each port is GEN3 capable
117 and have varied lanes from x1 to x8.
120 bool "X-Gene v1 PCIe MSI feature"
122 depends on PCI_MSI_IRQ_DOMAIN
125 Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
126 This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
129 bool "V3 Semiconductor PCI controller"
131 depends on ARM || COMPILE_TEST
132 default ARCH_INTEGRATOR_AP
135 bool "ARM Versatile PB PCI controller"
136 depends on ARCH_VERSATILE || COMPILE_TEST
141 This enables the iProc PCIe core controller support for Broadcom's
142 iProc family of SoCs. An appropriate bus interface driver needs
143 to be enabled to select this.
145 config PCIE_IPROC_PLATFORM
146 tristate "Broadcom iProc PCIe platform bus driver"
147 depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
150 default ARCH_BCM_IPROC
152 Say Y here if you want to use the Broadcom iProc PCIe controller
153 through the generic platform bus interface
155 config PCIE_IPROC_BCMA
156 tristate "Broadcom iProc PCIe BCMA bus driver"
157 depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
160 default ARCH_BCM_5301X
162 Say Y here if you want to use the Broadcom iProc PCIe controller
163 through the BCMA bus interface
165 config PCIE_IPROC_MSI
166 bool "Broadcom iProc PCIe MSI support"
167 depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
168 depends on PCI_MSI_IRQ_DOMAIN
169 default ARCH_BCM_IPROC
171 Say Y here if you want to enable MSI support for Broadcom's iProc
175 tristate "Altera PCIe controller"
176 depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
178 Say Y here if you want to enable PCIe controller support on Altera
181 config PCIE_ALTERA_MSI
182 tristate "Altera PCIe MSI feature"
183 depends on PCIE_ALTERA
184 depends on PCI_MSI_IRQ_DOMAIN
186 Say Y here if you want PCIe MSI support for the Altera FPGA.
187 This MSI driver supports Altera MSI to GIC controller IP.
189 config PCI_HOST_THUNDER_PEM
190 bool "Cavium Thunder PCIe controller to off-chip devices"
191 depends on ARM64 || COMPILE_TEST
192 depends on OF || (ACPI && PCI_QUIRKS)
193 select PCI_HOST_COMMON
195 Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
197 config PCI_HOST_THUNDER_ECAM
198 bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
199 depends on ARM64 || COMPILE_TEST
200 depends on OF || (ACPI && PCI_QUIRKS)
201 select PCI_HOST_COMMON
203 Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
209 config PCIE_ROCKCHIP_HOST
210 tristate "Rockchip PCIe host controller"
211 depends on ARCH_ROCKCHIP || COMPILE_TEST
213 depends on PCI_MSI_IRQ_DOMAIN
217 Say Y here if you want internal PCI support on Rockchip SoC.
218 There is 1 internal PCIe port available to support GEN2 with
221 config PCIE_ROCKCHIP_EP
222 bool "Rockchip PCIe endpoint controller"
223 depends on ARCH_ROCKCHIP || COMPILE_TEST
225 depends on PCI_ENDPOINT
229 Say Y here if you want to support Rockchip PCIe controller in
230 endpoint mode on Rockchip SoC. There is 1 internal PCIe port
231 available to support GEN2 with 4 slots.
234 tristate "MediaTek PCIe controller"
235 depends on ARCH_MEDIATEK || COMPILE_TEST
237 depends on PCI_MSI_IRQ_DOMAIN
239 Say Y here if you want to enable PCIe controller support on
242 config PCIE_MEDIATEK_GEN3
243 tristate "MediaTek Gen3 PCIe controller"
244 depends on ARCH_MEDIATEK || COMPILE_TEST
245 depends on PCI_MSI_IRQ_DOMAIN
247 Adds support for PCIe Gen3 MAC controller for MediaTek SoCs.
248 This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed,
249 and support up to 256 MSI interrupt numbers for
250 multi-function devices.
252 Say Y here if you want to enable Gen3 PCIe controller support on
256 depends on PCI_MSI && X86_64 && SRCU
257 tristate "Intel Volume Management Device Driver"
259 Adds support for the Intel Volume Management Device (VMD). VMD is a
260 secondary PCI host bridge that allows PCI Express root ports,
261 and devices attached to them, to be removed from the default
262 PCI domain and placed within the VMD domain. This provides
263 more bus resources than are otherwise possible with a
264 single domain. If you know your system provides one of these and
265 has devices attached to it, say Y; if you are not sure, say N.
267 To compile this driver as a module, choose M here: the
268 module will be called vmd.
271 tristate "Broadcom Brcmstb PCIe host controller"
272 depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCM4908 || COMPILE_TEST
274 depends on PCI_MSI_IRQ_DOMAIN
277 Say Y here to enable PCIe host controller support for
278 Broadcom STB based SoCs, like the Raspberry Pi 4.
280 config PCI_HYPERV_INTERFACE
281 tristate "Hyper-V PCI Interface"
282 depends on X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64
284 The Hyper-V PCI Interface is a helper driver allows other drivers to
285 have a common interface with the Hyper-V PCI frontend driver.
288 bool "LOONGSON PCI Controller"
289 depends on MACH_LOONGSON64 || COMPILE_TEST
291 depends on PCI_QUIRKS
292 default MACH_LOONGSON64
294 Say Y here if you want to enable PCI controller support on
297 config PCIE_MICROCHIP_HOST
298 bool "Microchip AXI PCIe host bridge support"
299 depends on PCI_MSI && OF
300 select PCI_MSI_IRQ_DOMAIN
301 select GENERIC_MSI_IRQ_DOMAIN
302 select PCI_HOST_COMMON
304 Say Y here if you want kernel to support the Microchip AXI PCIe
308 depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST)
309 bool "HiSilicon HIP PCIe controller error handling driver"
311 Say Y here if you want error handling support
312 for the PCIe controller's errors on HiSilicon HIP SoCs
314 source "drivers/pci/controller/dwc/Kconfig"
315 source "drivers/pci/controller/mobiveil/Kconfig"
316 source "drivers/pci/controller/cadence/Kconfig"