1 # SPDX-License-Identifier: GPL-2.0
3 menu "PCI host controller drivers"
7 bool "Marvell EBU PCIe controller"
8 depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST
13 bool "Aardvark PCIe controller"
14 depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
16 depends on PCI_MSI_IRQ_DOMAIN
18 Add support for Aardvark 64bit PCIe Host Controller. This
19 controller is part of the South Bridge of the Marvel Armada
22 config PCIE_XILINX_NWL
24 depends on ARCH_ZYNQMP || COMPILE_TEST
25 depends on PCI_MSI_IRQ_DOMAIN
27 Say 'Y' here if you want kernel support for Xilinx
28 NWL PCIe controller. The controller can act as Root Port
29 or End Point. The current option selection will only
30 support root port enabling.
33 bool "Faraday Technology FTPCI100 PCI controller"
38 bool "NVIDIA Tegra PCIe controller"
39 depends on ARCH_TEGRA || COMPILE_TEST
40 depends on PCI_MSI_IRQ_DOMAIN
42 Say Y here if you want support for the PCIe host controller found
46 bool "Renesas R-Car Gen2 Internal PCI controller"
47 depends on ARCH_RENESAS || COMPILE_TEST
50 Say Y here if you want internal PCI support on R-Car Gen2 SoC.
51 There are 3 internal PCI controllers available with a single
52 built-in EHCI/OHCI host controller present on each one.
55 bool "Renesas R-Car PCIe controller"
56 depends on ARCH_RENESAS || COMPILE_TEST
57 depends on PCI_MSI_IRQ_DOMAIN
59 Say Y here if you want PCIe controller support on R-Car SoCs.
61 config PCI_HOST_COMMON
65 config PCI_HOST_GENERIC
66 bool "Generic PCI host controller"
68 select PCI_HOST_COMMON
71 Say Y here if you want to support a simple generic PCI host
72 controller, such as the one emulated by kvmtool.
75 bool "Xilinx AXI PCIe host bridge support"
76 depends on ARCH_ZYNQ || MICROBLAZE || (MIPS && PCI_DRIVERS_GENERIC) || COMPILE_TEST
78 Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
82 bool "X-Gene PCIe controller"
83 depends on ARM64 || COMPILE_TEST
84 depends on OF || (ACPI && PCI_QUIRKS)
87 Say Y here if you want internal PCI support on APM X-Gene SoC.
88 There are 5 internal PCIe ports available. Each port is GEN3 capable
89 and have varied lanes from x1 to x8.
92 bool "X-Gene v1 PCIe MSI feature"
94 depends on PCI_MSI_IRQ_DOMAIN
97 Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
98 This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
101 bool "V3 Semiconductor PCI controller"
103 depends on ARM || COMPILE_TEST
104 default ARCH_INTEGRATOR_AP
107 bool "ARM Versatile PB PCI controller"
108 depends on ARCH_VERSATILE
114 This enables the iProc PCIe core controller support for Broadcom's
115 iProc family of SoCs. An appropriate bus interface driver needs
116 to be enabled to select this.
118 config PCIE_IPROC_PLATFORM
119 tristate "Broadcom iProc PCIe platform bus driver"
120 depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
123 default ARCH_BCM_IPROC
125 Say Y here if you want to use the Broadcom iProc PCIe controller
126 through the generic platform bus interface
128 config PCIE_IPROC_BCMA
129 tristate "Broadcom iProc PCIe BCMA bus driver"
130 depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
133 default ARCH_BCM_5301X
135 Say Y here if you want to use the Broadcom iProc PCIe controller
136 through the BCMA bus interface
138 config PCIE_IPROC_MSI
139 bool "Broadcom iProc PCIe MSI support"
140 depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
141 depends on PCI_MSI_IRQ_DOMAIN
142 default ARCH_BCM_IPROC
144 Say Y here if you want to enable MSI support for Broadcom's iProc
148 bool "Altera PCIe controller"
149 depends on ARM || NIOS2 || COMPILE_TEST
152 Say Y here if you want to enable PCIe controller support on Altera
155 config PCIE_ALTERA_MSI
156 bool "Altera PCIe MSI feature"
157 depends on PCIE_ALTERA
158 depends on PCI_MSI_IRQ_DOMAIN
160 Say Y here if you want PCIe MSI support for the Altera FPGA.
161 This MSI driver supports Altera MSI to GIC controller IP.
163 config PCI_HOST_THUNDER_PEM
164 bool "Cavium Thunder PCIe controller to off-chip devices"
165 depends on ARM64 || COMPILE_TEST
166 depends on OF || (ACPI && PCI_QUIRKS)
167 select PCI_HOST_COMMON
169 Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
171 config PCI_HOST_THUNDER_ECAM
172 bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
173 depends on ARM64 || COMPILE_TEST
174 depends on OF || (ACPI && PCI_QUIRKS)
175 select PCI_HOST_COMMON
177 Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
180 tristate "Rockchip PCIe controller"
181 depends on ARCH_ROCKCHIP || COMPILE_TEST
183 depends on PCI_MSI_IRQ_DOMAIN
186 Say Y here if you want internal PCI support on Rockchip SoC.
187 There is 1 internal PCIe port available to support GEN2 with
191 bool "MediaTek PCIe controller"
192 depends on ARCH_MEDIATEK || COMPILE_TEST
196 Say Y here if you want to enable PCIe controller support on
199 config PCIE_TANGO_SMP8759
200 bool "Tango SMP8759 PCIe controller (DANGEROUS)"
201 depends on ARCH_TANGO && PCI_MSI && OF
203 select PCI_HOST_COMMON
205 Say Y here to enable PCIe controller support for Sigma Designs
206 Tango SMP8759-based systems.
208 Note: The SMP8759 controller multiplexes PCI config and MMIO
209 accesses, and Linux doesn't provide a way to serialize them.
210 This can lead to data corruption if drivers perform concurrent
211 config and MMIO accesses.
214 depends on PCI_MSI && X86_64 && SRCU
215 tristate "Intel Volume Management Device Driver"
217 Adds support for the Intel Volume Management Device (VMD). VMD is a
218 secondary PCI host bridge that allows PCI Express root ports,
219 and devices attached to them, to be removed from the default
220 PCI domain and placed within the VMD domain. This provides
221 more bus resources than are otherwise possible with a
222 single domain. If you know your system provides one of these and
223 has devices attached to it, say Y; if you are not sure, say N.
225 To compile this driver as a module, choose M here: the
226 module will be called vmd.