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
44 select PCI_MSI_ARCH_FALLBACKS
46 Say Y here if you want support for the PCIe host controller found
50 bool "Renesas R-Car Gen2 Internal PCI controller"
51 depends on ARCH_RENESAS || COMPILE_TEST
54 Say Y here if you want internal PCI support on R-Car Gen2 SoC.
55 There are 3 internal PCI controllers available with a single
56 built-in EHCI/OHCI host controller present on each one.
59 bool "Renesas R-Car PCIe host controller"
60 depends on ARCH_RENESAS || COMPILE_TEST
61 depends on PCI_MSI_IRQ_DOMAIN
62 select PCI_MSI_ARCH_FALLBACKS
64 Say Y here if you want PCIe controller support on R-Car SoCs in host
68 bool "Renesas R-Car PCIe endpoint controller"
69 depends on ARCH_RENESAS || COMPILE_TEST
70 depends on PCI_ENDPOINT
72 Say Y here if you want PCIe controller support on R-Car SoCs in
75 config PCI_HOST_COMMON
79 config PCI_HOST_GENERIC
80 tristate "Generic PCI host controller"
82 select PCI_HOST_COMMON
85 Say Y here if you want to support a simple generic PCI host
86 controller, such as the one emulated by kvmtool.
89 bool "Xilinx AXI PCIe host bridge support"
90 depends on OF || COMPILE_TEST
91 select PCI_MSI_ARCH_FALLBACKS
93 Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
96 config PCIE_XILINX_CPM
97 bool "Xilinx Versal CPM host bridge support"
98 depends on ARCH_ZYNQMP || COMPILE_TEST
99 select PCI_HOST_COMMON
101 Say 'Y' here if you want kernel support for the
102 Xilinx Versal CPM host bridge.
105 bool "X-Gene PCIe controller"
106 depends on ARM64 || COMPILE_TEST
107 depends on OF || (ACPI && PCI_QUIRKS)
109 Say Y here if you want internal PCI support on APM X-Gene SoC.
110 There are 5 internal PCIe ports available. Each port is GEN3 capable
111 and have varied lanes from x1 to x8.
114 bool "X-Gene v1 PCIe MSI feature"
116 depends on PCI_MSI_IRQ_DOMAIN
119 Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
120 This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
123 bool "V3 Semiconductor PCI controller"
125 depends on ARM || COMPILE_TEST
126 default ARCH_INTEGRATOR_AP
129 bool "ARM Versatile PB PCI controller"
130 depends on ARCH_VERSATILE || COMPILE_TEST
135 This enables the iProc PCIe core controller support for Broadcom's
136 iProc family of SoCs. An appropriate bus interface driver needs
137 to be enabled to select this.
139 config PCIE_IPROC_PLATFORM
140 tristate "Broadcom iProc PCIe platform bus driver"
141 depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
144 default ARCH_BCM_IPROC
146 Say Y here if you want to use the Broadcom iProc PCIe controller
147 through the generic platform bus interface
149 config PCIE_IPROC_BCMA
150 tristate "Broadcom iProc PCIe BCMA bus driver"
151 depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
154 default ARCH_BCM_5301X
156 Say Y here if you want to use the Broadcom iProc PCIe controller
157 through the BCMA bus interface
159 config PCIE_IPROC_MSI
160 bool "Broadcom iProc PCIe MSI support"
161 depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
162 depends on PCI_MSI_IRQ_DOMAIN
163 default ARCH_BCM_IPROC
165 Say Y here if you want to enable MSI support for Broadcom's iProc
169 tristate "Altera PCIe controller"
170 depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
172 Say Y here if you want to enable PCIe controller support on Altera
175 config PCIE_ALTERA_MSI
176 tristate "Altera PCIe MSI feature"
177 depends on PCIE_ALTERA
178 depends on PCI_MSI_IRQ_DOMAIN
180 Say Y here if you want PCIe MSI support for the Altera FPGA.
181 This MSI driver supports Altera MSI to GIC controller IP.
183 config PCI_HOST_THUNDER_PEM
184 bool "Cavium Thunder PCIe controller to off-chip devices"
185 depends on ARM64 || COMPILE_TEST
186 depends on OF || (ACPI && PCI_QUIRKS)
187 select PCI_HOST_COMMON
189 Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
191 config PCI_HOST_THUNDER_ECAM
192 bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
193 depends on ARM64 || COMPILE_TEST
194 depends on OF || (ACPI && PCI_QUIRKS)
195 select PCI_HOST_COMMON
197 Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
203 config PCIE_ROCKCHIP_HOST
204 tristate "Rockchip PCIe host controller"
205 depends on ARCH_ROCKCHIP || COMPILE_TEST
207 depends on PCI_MSI_IRQ_DOMAIN
211 Say Y here if you want internal PCI support on Rockchip SoC.
212 There is 1 internal PCIe port available to support GEN2 with
215 config PCIE_ROCKCHIP_EP
216 bool "Rockchip PCIe endpoint controller"
217 depends on ARCH_ROCKCHIP || COMPILE_TEST
219 depends on PCI_ENDPOINT
223 Say Y here if you want to support Rockchip PCIe controller in
224 endpoint mode on Rockchip SoC. There is 1 internal PCIe port
225 available to support GEN2 with 4 slots.
228 tristate "MediaTek PCIe controller"
229 depends on ARCH_MEDIATEK || COMPILE_TEST
231 depends on PCI_MSI_IRQ_DOMAIN
233 Say Y here if you want to enable PCIe controller support on
237 depends on PCI_MSI && X86_64 && SRCU
238 tristate "Intel Volume Management Device Driver"
240 Adds support for the Intel Volume Management Device (VMD). VMD is a
241 secondary PCI host bridge that allows PCI Express root ports,
242 and devices attached to them, to be removed from the default
243 PCI domain and placed within the VMD domain. This provides
244 more bus resources than are otherwise possible with a
245 single domain. If you know your system provides one of these and
246 has devices attached to it, say Y; if you are not sure, say N.
248 To compile this driver as a module, choose M here: the
249 module will be called vmd.
252 tristate "Broadcom Brcmstb PCIe host controller"
253 depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCM4908 || COMPILE_TEST
255 depends on PCI_MSI_IRQ_DOMAIN
258 Say Y here to enable PCIe host controller support for
259 Broadcom STB based SoCs, like the Raspberry Pi 4.
261 config PCI_HYPERV_INTERFACE
262 tristate "Hyper-V PCI Interface"
263 depends on X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64
265 The Hyper-V PCI Interface is a helper driver allows other drivers to
266 have a common interface with the Hyper-V PCI frontend driver.
269 bool "LOONGSON PCI Controller"
270 depends on MACH_LOONGSON64 || COMPILE_TEST
272 depends on PCI_QUIRKS
273 default MACH_LOONGSON64
275 Say Y here if you want to enable PCI controller support on
278 config PCIE_MICROCHIP_HOST
279 bool "Microchip AXI PCIe host bridge support"
280 depends on PCI_MSI && OF
281 select PCI_MSI_IRQ_DOMAIN
282 select GENERIC_MSI_IRQ_DOMAIN
283 select PCI_HOST_COMMON
285 Say Y here if you want kernel to support the Microchip AXI PCIe
289 depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST)
290 bool "HiSilicon HIP PCIe controller error handling driver"
292 Say Y here if you want error handling support
293 for the PCIe controller's errors on HiSilicon HIP SoCs
295 source "drivers/pci/controller/dwc/Kconfig"
296 source "drivers/pci/controller/mobiveil/Kconfig"
297 source "drivers/pci/controller/cadence/Kconfig"