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
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 menu "Cadence PCIe controllers support"
28 config PCIE_CADENCE_HOST
29 bool "Cadence PCIe host controller"
35 Say Y here if you want to support the Cadence PCIe controller in host
36 mode. This PCIe controller may be embedded into many different vendors
39 config PCIE_CADENCE_EP
40 bool "Cadence PCIe endpoint controller"
42 depends on PCI_ENDPOINT
45 Say Y here if you want to support the Cadence PCIe controller in
46 endpoint mode. This PCIe controller may be embedded into many
47 different vendors SoCs.
51 config PCIE_XILINX_NWL
53 depends on ARCH_ZYNQMP || COMPILE_TEST
54 depends on PCI_MSI_IRQ_DOMAIN
56 Say 'Y' here if you want kernel support for Xilinx
57 NWL PCIe controller. The controller can act as Root Port
58 or End Point. The current option selection will only
59 support root port enabling.
62 bool "Faraday Technology FTPCI100 PCI controller"
67 bool "NVIDIA Tegra PCIe controller"
68 depends on ARCH_TEGRA || COMPILE_TEST
69 depends on PCI_MSI_IRQ_DOMAIN
71 Say Y here if you want support for the PCIe host controller found
75 bool "Renesas R-Car Gen2 Internal PCI controller"
76 depends on ARCH_RENESAS || COMPILE_TEST
79 Say Y here if you want internal PCI support on R-Car Gen2 SoC.
80 There are 3 internal PCI controllers available with a single
81 built-in EHCI/OHCI host controller present on each one.
84 bool "Renesas R-Car PCIe controller"
85 depends on ARCH_RENESAS || COMPILE_TEST
86 depends on PCI_MSI_IRQ_DOMAIN
88 Say Y here if you want PCIe controller support on R-Car SoCs.
90 config PCI_HOST_COMMON
94 config PCI_HOST_GENERIC
95 bool "Generic PCI host controller"
97 select PCI_HOST_COMMON
101 Say Y here if you want to support a simple generic PCI host
102 controller, such as the one emulated by kvmtool.
105 bool "Xilinx AXI PCIe host bridge support"
106 depends on ARCH_ZYNQ || MICROBLAZE || (MIPS && PCI_DRIVERS_GENERIC) || COMPILE_TEST
108 Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
112 bool "X-Gene PCIe controller"
113 depends on ARM64 || COMPILE_TEST
114 depends on OF || (ACPI && PCI_QUIRKS)
116 Say Y here if you want internal PCI support on APM X-Gene SoC.
117 There are 5 internal PCIe ports available. Each port is GEN3 capable
118 and have varied lanes from x1 to x8.
121 bool "X-Gene v1 PCIe MSI feature"
123 depends on PCI_MSI_IRQ_DOMAIN
126 Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
127 This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
130 bool "V3 Semiconductor PCI controller"
132 depends on ARM || COMPILE_TEST
133 default ARCH_INTEGRATOR_AP
136 bool "ARM Versatile PB PCI controller"
137 depends on ARCH_VERSATILE
143 This enables the iProc PCIe core controller support for Broadcom's
144 iProc family of SoCs. An appropriate bus interface driver needs
145 to be enabled to select this.
147 config PCIE_IPROC_PLATFORM
148 tristate "Broadcom iProc PCIe platform bus driver"
149 depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
152 default ARCH_BCM_IPROC
154 Say Y here if you want to use the Broadcom iProc PCIe controller
155 through the generic platform bus interface
157 config PCIE_IPROC_BCMA
158 tristate "Broadcom iProc PCIe BCMA bus driver"
159 depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
162 default ARCH_BCM_5301X
164 Say Y here if you want to use the Broadcom iProc PCIe controller
165 through the BCMA bus interface
167 config PCIE_IPROC_MSI
168 bool "Broadcom iProc PCIe MSI support"
169 depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
170 depends on PCI_MSI_IRQ_DOMAIN
171 default ARCH_BCM_IPROC
173 Say Y here if you want to enable MSI support for Broadcom's iProc
177 bool "Altera PCIe controller"
178 depends on ARM || NIOS2 || COMPILE_TEST
181 Say Y here if you want to enable PCIe controller support on Altera
184 config PCIE_ALTERA_MSI
185 bool "Altera PCIe MSI feature"
186 depends on PCIE_ALTERA
187 depends on PCI_MSI_IRQ_DOMAIN
189 Say Y here if you want PCIe MSI support for the Altera FPGA.
190 This MSI driver supports Altera MSI to GIC controller IP.
192 config PCI_HOST_THUNDER_PEM
193 bool "Cavium Thunder PCIe controller to off-chip devices"
194 depends on ARM64 || COMPILE_TEST
195 depends on OF || (ACPI && PCI_QUIRKS)
196 select PCI_HOST_COMMON
198 Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
200 config PCI_HOST_THUNDER_ECAM
201 bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
202 depends on ARM64 || COMPILE_TEST
203 depends on OF || (ACPI && PCI_QUIRKS)
204 select PCI_HOST_COMMON
206 Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
212 config PCIE_ROCKCHIP_HOST
213 tristate "Rockchip PCIe host controller"
214 depends on ARCH_ROCKCHIP || COMPILE_TEST
216 depends on PCI_MSI_IRQ_DOMAIN
220 Say Y here if you want internal PCI support on Rockchip SoC.
221 There is 1 internal PCIe port available to support GEN2 with
224 config PCIE_ROCKCHIP_EP
225 bool "Rockchip PCIe endpoint controller"
226 depends on ARCH_ROCKCHIP || COMPILE_TEST
228 depends on PCI_ENDPOINT
232 Say Y here if you want to support Rockchip PCIe controller in
233 endpoint mode on Rockchip SoC. There is 1 internal PCIe port
234 available to support GEN2 with 4 slots.
237 bool "MediaTek PCIe controller"
238 depends on ARCH_MEDIATEK || COMPILE_TEST
240 depends on PCI_MSI_IRQ_DOMAIN
242 Say Y here if you want to enable PCIe controller support on
245 config PCIE_TANGO_SMP8759
246 bool "Tango SMP8759 PCIe controller (DANGEROUS)"
247 depends on ARCH_TANGO && PCI_MSI && OF
249 select PCI_HOST_COMMON
251 Say Y here to enable PCIe controller support for Sigma Designs
252 Tango SMP8759-based systems.
254 Note: The SMP8759 controller multiplexes PCI config and MMIO
255 accesses, and Linux doesn't provide a way to serialize them.
256 This can lead to data corruption if drivers perform concurrent
257 config and MMIO accesses.
260 depends on PCI_MSI && X86_64 && SRCU
261 tristate "Intel Volume Management Device Driver"
263 Adds support for the Intel Volume Management Device (VMD). VMD is a
264 secondary PCI host bridge that allows PCI Express root ports,
265 and devices attached to them, to be removed from the default
266 PCI domain and placed within the VMD domain. This provides
267 more bus resources than are otherwise possible with a
268 single domain. If you know your system provides one of these and
269 has devices attached to it, say Y; if you are not sure, say N.
271 To compile this driver as a module, choose M here: the
272 module will be called vmd.
274 source "drivers/pci/controller/dwc/Kconfig"