1 # SPDX-License-Identifier: GPL-2.0
3 menu "PCI controller drivers"
7 tristate "Aardvark PCIe controller"
8 depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
11 select PCI_BRIDGE_EMUL
13 Add support for Aardvark 64bit PCIe Host Controller. This
14 controller is part of the South Bridge of the Marvel Armada
18 tristate "Altera PCIe controller"
19 depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
21 Say Y here if you want to enable PCIe controller support on Altera
24 config PCIE_ALTERA_MSI
25 tristate "Altera PCIe MSI feature"
26 depends on PCIE_ALTERA
29 Say Y here if you want PCIe MSI support for the Altera FPGA.
30 This MSI driver supports Altera MSI to GIC controller IP.
32 config PCIE_APPLE_MSI_DOORBELL_ADDR
38 tristate "Apple PCIe controller"
39 depends on ARCH_APPLE || COMPILE_TEST
42 select PCI_HOST_COMMON
44 Say Y here if you want to enable PCIe controller support on Apple
45 system-on-chips, like the Apple M1. This is required for the USB
46 type-A ports, Ethernet, Wi-Fi, and Bluetooth.
48 If unsure, say Y if you have an Apple Silicon system.
51 bool "ARM Versatile PB PCI controller"
52 depends on ARCH_VERSATILE || COMPILE_TEST
55 tristate "Broadcom Brcmstb PCIe controller"
56 depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCMBCA || \
57 BMIPS_GENERIC || COMPILE_TEST
60 default ARCH_BRCMSTB || BMIPS_GENERIC
62 Say Y here to enable PCIe host controller support for
63 Broadcom STB based SoCs, like the Raspberry Pi 4.
68 This enables the iProc PCIe core controller support for Broadcom's
69 iProc family of SoCs. An appropriate bus interface driver needs
70 to be enabled to select this.
72 config PCIE_IPROC_PLATFORM
73 tristate "Broadcom iProc PCIe platform bus driver"
74 depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
77 default ARCH_BCM_IPROC
79 Say Y here if you want to use the Broadcom iProc PCIe controller
80 through the generic platform bus interface
82 config PCIE_IPROC_BCMA
83 tristate "Broadcom iProc BCMA PCIe controller"
84 depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
87 default ARCH_BCM_5301X
89 Say Y here if you want to use the Broadcom iProc PCIe controller
90 through the BCMA bus interface
93 bool "Broadcom iProc PCIe MSI support"
94 depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
96 default ARCH_BCM_IPROC
98 Say Y here if you want to enable MSI support for Broadcom's iProc
101 config PCI_HOST_THUNDER_PEM
102 bool "Cavium Thunder PCIe controller to off-chip devices"
103 depends on ARM64 || COMPILE_TEST
104 depends on OF || (ACPI && PCI_QUIRKS)
105 select PCI_HOST_COMMON
107 Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
109 config PCI_HOST_THUNDER_ECAM
110 bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
111 depends on ARM64 || COMPILE_TEST
112 depends on OF || (ACPI && PCI_QUIRKS)
113 select PCI_HOST_COMMON
115 Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
118 bool "Faraday Technology FTPCI100 PCI controller"
122 config PCI_HOST_COMMON
126 config PCI_HOST_GENERIC
127 tristate "Generic PCI host controller"
129 select PCI_HOST_COMMON
132 Say Y here if you want to support a simple generic PCI host
133 controller, such as the one emulated by kvmtool.
136 depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST)
137 bool "HiSilicon HIP PCIe controller error handling driver"
139 Say Y here if you want error handling support
140 for the PCIe controller's errors on HiSilicon HIP SoCs
143 bool "Intel IXP4xx PCI controller"
145 depends on ARCH_IXP4XX || COMPILE_TEST
148 Say Y here if you want support for the PCI host controller found
149 in the Intel IXP4xx XScale-based network processor SoC.
152 depends on PCI_MSI && X86_64 && !UML
153 tristate "Intel Volume Management Device Driver"
155 Adds support for the Intel Volume Management Device (VMD). VMD is a
156 secondary PCI host bridge that allows PCI Express root ports,
157 and devices attached to them, to be removed from the default
158 PCI domain and placed within the VMD domain. This provides
159 more bus resources than are otherwise possible with a
160 single domain. If you know your system provides one of these and
161 has devices attached to it, say Y; if you are not sure, say N.
163 To compile this driver as a module, choose M here: the
164 module will be called vmd.
167 bool "LOONGSON PCIe controller"
168 depends on MACH_LOONGSON64 || COMPILE_TEST
169 depends on OF || ACPI
170 depends on PCI_QUIRKS
171 default MACH_LOONGSON64
173 Say Y here if you want to enable PCI controller support on
177 tristate "Marvell EBU PCIe controller"
178 depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST
179 depends on MVEBU_MBUS
182 select PCI_BRIDGE_EMUL
184 Add support for Marvell EBU PCIe controller. This PCIe controller
185 is used on 32-bit Marvell ARM SoCs: Dove, Kirkwood, Armada 370,
186 Armada XP, Armada 375, Armada 38x and Armada 39x.
189 tristate "MediaTek PCIe controller"
190 depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST
194 Say Y here if you want to enable PCIe controller support on
197 config PCIE_MEDIATEK_GEN3
198 tristate "MediaTek Gen3 PCIe controller"
199 depends on ARCH_MEDIATEK || COMPILE_TEST
202 Adds support for PCIe Gen3 MAC controller for MediaTek SoCs.
203 This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed,
204 and support up to 256 MSI interrupt numbers for
205 multi-function devices.
207 Say Y here if you want to enable Gen3 PCIe controller support on
211 tristate "MediaTek MT7621 PCIe controller"
212 depends on SOC_MT7621 || COMPILE_TEST
213 select PHY_MT7621_PCI
216 This selects a driver for the MediaTek MT7621 PCIe Controller.
218 config PCIE_MICROCHIP_HOST
219 bool "Microchip AXI PCIe controller"
220 depends on PCI_MSI && OF
221 select PCI_HOST_COMMON
223 Say Y here if you want kernel to support the Microchip AXI PCIe
226 config PCI_HYPERV_INTERFACE
227 tristate "Microsoft Hyper-V PCI Interface"
228 depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI
230 The Hyper-V PCI Interface is a helper driver that allows other
231 drivers to have a common interface with the Hyper-V PCI frontend
235 bool "NVIDIA Tegra PCIe controller"
236 depends on ARCH_TEGRA || COMPILE_TEST
239 Say Y here if you want support for the PCIe host controller found
240 on NVIDIA Tegra SoCs.
242 config PCIE_RCAR_HOST
243 bool "Renesas R-Car PCIe controller (host mode)"
244 depends on ARCH_RENESAS || COMPILE_TEST
247 Say Y here if you want PCIe controller support on R-Car SoCs in host
251 bool "Renesas R-Car PCIe controller (endpoint mode)"
252 depends on ARCH_RENESAS || COMPILE_TEST
253 depends on PCI_ENDPOINT
255 Say Y here if you want PCIe controller support on R-Car SoCs in
259 bool "Renesas R-Car Gen2 Internal PCI controller"
260 depends on ARCH_RENESAS || COMPILE_TEST
263 Say Y here if you want internal PCI support on R-Car Gen2 SoC.
264 There are 3 internal PCI controllers available with a single
265 built-in EHCI/OHCI host controller present on each one.
271 config PCIE_ROCKCHIP_HOST
272 tristate "Rockchip PCIe controller (host mode)"
273 depends on ARCH_ROCKCHIP || COMPILE_TEST
279 Say Y here if you want internal PCI support on Rockchip SoC.
280 There is 1 internal PCIe port available to support GEN2 with
283 config PCIE_ROCKCHIP_EP
284 bool "Rockchip PCIe controller (endpoint mode)"
285 depends on ARCH_ROCKCHIP || COMPILE_TEST
287 depends on PCI_ENDPOINT
291 Say Y here if you want to support Rockchip PCIe controller in
292 endpoint mode on Rockchip SoC. There is 1 internal PCIe port
293 available to support GEN2 with 4 slots.
296 bool "V3 Semiconductor PCI controller"
298 depends on ARM || COMPILE_TEST
299 default ARCH_INTEGRATOR_AP
302 bool "X-Gene PCIe controller"
303 depends on ARM64 || COMPILE_TEST
304 depends on OF || (ACPI && PCI_QUIRKS)
306 Say Y here if you want internal PCI support on APM X-Gene SoC.
307 There are 5 internal PCIe ports available. Each port is GEN3 capable
308 and have varied lanes from x1 to x8.
311 bool "X-Gene v1 PCIe MSI feature"
316 Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
317 This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
320 bool "Xilinx AXI PCIe controller"
324 Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
327 config PCIE_XILINX_NWL
328 bool "Xilinx NWL PCIe controller"
329 depends on ARCH_ZYNQMP || COMPILE_TEST
332 Say 'Y' here if you want kernel support for Xilinx
333 NWL PCIe controller. The controller can act as Root Port
334 or End Point. The current option selection will only
335 support root port enabling.
337 config PCIE_XILINX_CPM
338 bool "Xilinx Versal CPM PCI controller"
339 depends on ARCH_ZYNQMP || COMPILE_TEST
340 select PCI_HOST_COMMON
342 Say 'Y' here if you want kernel support for the
343 Xilinx Versal CPM host bridge.
345 source "drivers/pci/controller/cadence/Kconfig"
346 source "drivers/pci/controller/dwc/Kconfig"
347 source "drivers/pci/controller/mobiveil/Kconfig"