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
14 bool "Aardvark PCIe controller"
15 depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
17 depends on PCI_MSI_IRQ_DOMAIN
19 Add support for Aardvark 64bit PCIe Host Controller. This
20 controller is part of the South Bridge of the Marvel Armada
23 config PCIE_XILINX_NWL
25 depends on ARCH_ZYNQMP || COMPILE_TEST
26 depends on PCI_MSI_IRQ_DOMAIN
28 Say 'Y' here if you want kernel support for Xilinx
29 NWL PCIe controller. The controller can act as Root Port
30 or End Point. The current option selection will only
31 support root port enabling.
34 bool "Faraday Technology FTPCI100 PCI controller"
39 bool "NVIDIA Tegra PCIe controller"
40 depends on ARCH_TEGRA || COMPILE_TEST
41 depends on PCI_MSI_IRQ_DOMAIN
43 Say Y here if you want support for the PCIe host controller found
47 bool "Renesas R-Car Gen2 Internal PCI controller"
48 depends on ARCH_RENESAS || COMPILE_TEST
51 Say Y here if you want internal PCI support on R-Car Gen2 SoC.
52 There are 3 internal PCI controllers available with a single
53 built-in EHCI/OHCI host controller present on each one.
56 bool "Renesas R-Car PCIe controller"
57 depends on ARCH_RENESAS || COMPILE_TEST
58 depends on PCI_MSI_IRQ_DOMAIN
60 Say Y here if you want PCIe controller support on R-Car SoCs.
62 config PCI_HOST_COMMON
66 config PCI_HOST_GENERIC
67 bool "Generic PCI host controller"
69 select PCI_HOST_COMMON
73 Say Y here if you want to support a simple generic PCI host
74 controller, such as the one emulated by kvmtool.
77 bool "Xilinx AXI PCIe host bridge support"
78 depends on ARCH_ZYNQ || MICROBLAZE || (MIPS && PCI_DRIVERS_GENERIC) || COMPILE_TEST
80 Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
84 bool "X-Gene PCIe controller"
85 depends on ARM64 || COMPILE_TEST
86 depends on OF || (ACPI && PCI_QUIRKS)
89 Say Y here if you want internal PCI support on APM X-Gene SoC.
90 There are 5 internal PCIe ports available. Each port is GEN3 capable
91 and have varied lanes from x1 to x8.
94 bool "X-Gene v1 PCIe MSI feature"
96 depends on PCI_MSI_IRQ_DOMAIN
99 Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
100 This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
103 bool "V3 Semiconductor PCI controller"
105 depends on ARM || COMPILE_TEST
106 default ARCH_INTEGRATOR_AP
109 bool "ARM Versatile PB PCI controller"
110 depends on ARCH_VERSATILE
116 This enables the iProc PCIe core controller support for Broadcom's
117 iProc family of SoCs. An appropriate bus interface driver needs
118 to be enabled to select this.
120 config PCIE_IPROC_PLATFORM
121 tristate "Broadcom iProc PCIe platform bus driver"
122 depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
125 default ARCH_BCM_IPROC
127 Say Y here if you want to use the Broadcom iProc PCIe controller
128 through the generic platform bus interface
130 config PCIE_IPROC_BCMA
131 tristate "Broadcom iProc PCIe BCMA bus driver"
132 depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
135 default ARCH_BCM_5301X
137 Say Y here if you want to use the Broadcom iProc PCIe controller
138 through the BCMA bus interface
140 config PCIE_IPROC_MSI
141 bool "Broadcom iProc PCIe MSI support"
142 depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
143 depends on PCI_MSI_IRQ_DOMAIN
144 default ARCH_BCM_IPROC
146 Say Y here if you want to enable MSI support for Broadcom's iProc
150 bool "Altera PCIe controller"
151 depends on ARM || NIOS2 || COMPILE_TEST
154 Say Y here if you want to enable PCIe controller support on Altera
157 config PCIE_ALTERA_MSI
158 bool "Altera PCIe MSI feature"
159 depends on PCIE_ALTERA
160 depends on PCI_MSI_IRQ_DOMAIN
162 Say Y here if you want PCIe MSI support for the Altera FPGA.
163 This MSI driver supports Altera MSI to GIC controller IP.
165 config PCI_HOST_THUNDER_PEM
166 bool "Cavium Thunder PCIe controller to off-chip devices"
167 depends on ARM64 || COMPILE_TEST
168 depends on OF || (ACPI && PCI_QUIRKS)
169 select PCI_HOST_COMMON
171 Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
173 config PCI_HOST_THUNDER_ECAM
174 bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
175 depends on ARM64 || COMPILE_TEST
176 depends on OF || (ACPI && PCI_QUIRKS)
177 select PCI_HOST_COMMON
179 Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
185 config PCIE_ROCKCHIP_HOST
186 tristate "Rockchip PCIe host controller"
187 depends on ARCH_ROCKCHIP || COMPILE_TEST
189 depends on PCI_MSI_IRQ_DOMAIN
193 Say Y here if you want internal PCI support on Rockchip SoC.
194 There is 1 internal PCIe port available to support GEN2 with
197 config PCIE_ROCKCHIP_EP
198 bool "Rockchip PCIe endpoint controller"
199 depends on ARCH_ROCKCHIP || COMPILE_TEST
201 depends on PCI_ENDPOINT
205 Say Y here if you want to support Rockchip PCIe controller in
206 endpoint mode on Rockchip SoC. There is 1 internal PCIe port
207 available to support GEN2 with 4 slots.
210 bool "MediaTek PCIe controller"
211 depends on ARCH_MEDIATEK || COMPILE_TEST
213 depends on PCI_MSI_IRQ_DOMAIN
216 Say Y here if you want to enable PCIe controller support on
219 config PCIE_TANGO_SMP8759
220 bool "Tango SMP8759 PCIe controller (DANGEROUS)"
221 depends on ARCH_TANGO && PCI_MSI && OF
223 select PCI_HOST_COMMON
225 Say Y here to enable PCIe controller support for Sigma Designs
226 Tango SMP8759-based systems.
228 Note: The SMP8759 controller multiplexes PCI config and MMIO
229 accesses, and Linux doesn't provide a way to serialize them.
230 This can lead to data corruption if drivers perform concurrent
231 config and MMIO accesses.
234 depends on PCI_MSI && X86_64 && SRCU
235 tristate "Intel Volume Management Device Driver"
237 Adds support for the Intel Volume Management Device (VMD). VMD is a
238 secondary PCI host bridge that allows PCI Express root ports,
239 and devices attached to them, to be removed from the default
240 PCI domain and placed within the VMD domain. This provides
241 more bus resources than are otherwise possible with a
242 single domain. If you know your system provides one of these and
243 has devices attached to it, say Y; if you are not sure, say N.
245 To compile this driver as a module, choose M here: the
246 module will be called vmd.