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 "NVIDIA Tegra PCIe controller"
42 depends on ARCH_TEGRA || COMPILE_TEST
43 depends on PCI_MSI_IRQ_DOMAIN
45 Say Y here if you want support for the PCIe host controller found
49 bool "Renesas R-Car Gen2 Internal PCI controller"
50 depends on ARCH_RENESAS || COMPILE_TEST
53 Say Y here if you want internal PCI support on R-Car Gen2 SoC.
54 There are 3 internal PCI controllers available with a single
55 built-in EHCI/OHCI host controller present on each one.
58 bool "Renesas R-Car PCIe host controller"
59 depends on ARCH_RENESAS || COMPILE_TEST
60 depends on PCI_MSI_IRQ_DOMAIN
62 Say Y here if you want PCIe controller support on R-Car SoCs in host
66 bool "Renesas R-Car PCIe endpoint controller"
67 depends on ARCH_RENESAS || COMPILE_TEST
68 depends on PCI_ENDPOINT
70 Say Y here if you want PCIe controller support on R-Car SoCs in
73 config PCI_HOST_COMMON
77 config PCI_HOST_GENERIC
78 tristate "Generic PCI host controller"
80 select PCI_HOST_COMMON
83 Say Y here if you want to support a simple generic PCI host
84 controller, such as the one emulated by kvmtool.
87 bool "Xilinx AXI PCIe host bridge support"
88 depends on OF || COMPILE_TEST
89 depends on PCI_MSI_IRQ_DOMAIN
91 Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
94 config PCIE_XILINX_CPM
95 bool "Xilinx Versal CPM host bridge support"
96 depends on ARCH_ZYNQMP || COMPILE_TEST
97 select PCI_HOST_COMMON
99 Say 'Y' here if you want kernel support for the
100 Xilinx Versal CPM host bridge.
103 bool "X-Gene PCIe controller"
104 depends on ARM64 || COMPILE_TEST
105 depends on OF || (ACPI && PCI_QUIRKS)
107 Say Y here if you want internal PCI support on APM X-Gene SoC.
108 There are 5 internal PCIe ports available. Each port is GEN3 capable
109 and have varied lanes from x1 to x8.
112 bool "X-Gene v1 PCIe MSI feature"
114 depends on PCI_MSI_IRQ_DOMAIN
117 Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
118 This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
121 bool "V3 Semiconductor PCI controller"
123 depends on ARM || COMPILE_TEST
124 default ARCH_INTEGRATOR_AP
127 bool "ARM Versatile PB PCI controller"
128 depends on ARCH_VERSATILE || COMPILE_TEST
133 This enables the iProc PCIe core controller support for Broadcom's
134 iProc family of SoCs. An appropriate bus interface driver needs
135 to be enabled to select this.
137 config PCIE_IPROC_PLATFORM
138 tristate "Broadcom iProc PCIe platform bus driver"
139 depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
142 default ARCH_BCM_IPROC
144 Say Y here if you want to use the Broadcom iProc PCIe controller
145 through the generic platform bus interface
147 config PCIE_IPROC_BCMA
148 tristate "Broadcom iProc PCIe BCMA bus driver"
149 depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
152 default ARCH_BCM_5301X
154 Say Y here if you want to use the Broadcom iProc PCIe controller
155 through the BCMA bus interface
157 config PCIE_IPROC_MSI
158 bool "Broadcom iProc PCIe MSI support"
159 depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
160 depends on PCI_MSI_IRQ_DOMAIN
161 default ARCH_BCM_IPROC
163 Say Y here if you want to enable MSI support for Broadcom's iProc
167 tristate "Altera PCIe controller"
168 depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
170 Say Y here if you want to enable PCIe controller support on Altera
173 config PCIE_ALTERA_MSI
174 tristate "Altera PCIe MSI feature"
175 depends on PCIE_ALTERA
176 depends on PCI_MSI_IRQ_DOMAIN
178 Say Y here if you want PCIe MSI support for the Altera FPGA.
179 This MSI driver supports Altera MSI to GIC controller IP.
181 config PCI_HOST_THUNDER_PEM
182 bool "Cavium Thunder PCIe controller to off-chip devices"
183 depends on ARM64 || COMPILE_TEST
184 depends on OF || (ACPI && PCI_QUIRKS)
185 select PCI_HOST_COMMON
187 Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
189 config PCI_HOST_THUNDER_ECAM
190 bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
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 ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
201 config PCIE_ROCKCHIP_HOST
202 tristate "Rockchip PCIe host controller"
203 depends on ARCH_ROCKCHIP || COMPILE_TEST
205 depends on PCI_MSI_IRQ_DOMAIN
209 Say Y here if you want internal PCI support on Rockchip SoC.
210 There is 1 internal PCIe port available to support GEN2 with
213 config PCIE_ROCKCHIP_EP
214 bool "Rockchip PCIe endpoint controller"
215 depends on ARCH_ROCKCHIP || COMPILE_TEST
217 depends on PCI_ENDPOINT
221 Say Y here if you want to support Rockchip PCIe controller in
222 endpoint mode on Rockchip SoC. There is 1 internal PCIe port
223 available to support GEN2 with 4 slots.
226 tristate "MediaTek PCIe controller"
227 depends on ARCH_MEDIATEK || COMPILE_TEST
229 depends on PCI_MSI_IRQ_DOMAIN
231 Say Y here if you want to enable PCIe controller support on
234 config PCIE_MEDIATEK_GEN3
235 tristate "MediaTek Gen3 PCIe controller"
236 depends on ARCH_MEDIATEK || COMPILE_TEST
237 depends on PCI_MSI_IRQ_DOMAIN
239 Adds support for PCIe Gen3 MAC controller for MediaTek SoCs.
240 This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed,
241 and support up to 256 MSI interrupt numbers for
242 multi-function devices.
244 Say Y here if you want to enable Gen3 PCIe controller support on
248 depends on PCI_MSI && X86_64 && SRCU
249 tristate "Intel Volume Management Device Driver"
251 Adds support for the Intel Volume Management Device (VMD). VMD is a
252 secondary PCI host bridge that allows PCI Express root ports,
253 and devices attached to them, to be removed from the default
254 PCI domain and placed within the VMD domain. This provides
255 more bus resources than are otherwise possible with a
256 single domain. If you know your system provides one of these and
257 has devices attached to it, say Y; if you are not sure, say N.
259 To compile this driver as a module, choose M here: the
260 module will be called vmd.
263 tristate "Broadcom Brcmstb PCIe host controller"
264 depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCM4908 || COMPILE_TEST
266 depends on PCI_MSI_IRQ_DOMAIN
269 Say Y here to enable PCIe host controller support for
270 Broadcom STB based SoCs, like the Raspberry Pi 4.
272 config PCI_HYPERV_INTERFACE
273 tristate "Hyper-V PCI Interface"
274 depends on X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64
276 The Hyper-V PCI Interface is a helper driver allows other drivers to
277 have a common interface with the Hyper-V PCI frontend driver.
280 bool "LOONGSON PCI Controller"
281 depends on MACH_LOONGSON64 || COMPILE_TEST
283 depends on PCI_QUIRKS
284 default MACH_LOONGSON64
286 Say Y here if you want to enable PCI controller support on
289 config PCIE_MICROCHIP_HOST
290 bool "Microchip AXI PCIe host bridge support"
291 depends on PCI_MSI && OF
292 select PCI_MSI_IRQ_DOMAIN
293 select GENERIC_MSI_IRQ_DOMAIN
294 select PCI_HOST_COMMON
296 Say Y here if you want kernel to support the Microchip AXI PCIe
300 depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST)
301 bool "HiSilicon HIP PCIe controller error handling driver"
303 Say Y here if you want error handling support
304 for the PCIe controller's errors on HiSilicon HIP SoCs
306 source "drivers/pci/controller/dwc/Kconfig"
307 source "drivers/pci/controller/mobiveil/Kconfig"
308 source "drivers/pci/controller/cadence/Kconfig"