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 bool "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 menu "Cadence PCIe controllers support"
30 config PCIE_CADENCE_HOST
31 bool "Cadence PCIe host controller"
37 Say Y here if you want to support the Cadence PCIe controller in host
38 mode. This PCIe controller may be embedded into many different vendors
41 config PCIE_CADENCE_EP
42 bool "Cadence PCIe endpoint controller"
44 depends on PCI_ENDPOINT
47 Say Y here if you want to support the Cadence PCIe controller in
48 endpoint mode. This PCIe controller may be embedded into many
49 different vendors SoCs.
53 config PCIE_XILINX_NWL
55 depends on ARCH_ZYNQMP || COMPILE_TEST
56 depends on PCI_MSI_IRQ_DOMAIN
58 Say 'Y' here if you want kernel support for Xilinx
59 NWL PCIe controller. The controller can act as Root Port
60 or End Point. The current option selection will only
61 support root port enabling.
64 bool "Faraday Technology FTPCI100 PCI controller"
69 bool "NVIDIA Tegra PCIe controller"
70 depends on ARCH_TEGRA || COMPILE_TEST
71 depends on PCI_MSI_IRQ_DOMAIN
73 Say Y here if you want support for the PCIe host controller found
77 bool "Renesas R-Car Gen2 Internal PCI controller"
78 depends on ARCH_RENESAS || COMPILE_TEST
81 Say Y here if you want internal PCI support on R-Car Gen2 SoC.
82 There are 3 internal PCI controllers available with a single
83 built-in EHCI/OHCI host controller present on each one.
86 bool "Renesas R-Car PCIe controller"
87 depends on ARCH_RENESAS || COMPILE_TEST
88 depends on PCI_MSI_IRQ_DOMAIN
90 Say Y here if you want PCIe controller support on R-Car SoCs.
92 config PCI_HOST_COMMON
96 config PCI_HOST_GENERIC
97 bool "Generic PCI host controller"
99 select PCI_HOST_COMMON
102 Say Y here if you want to support a simple generic PCI host
103 controller, such as the one emulated by kvmtool.
106 bool "Xilinx AXI PCIe host bridge support"
107 depends on OF || COMPILE_TEST
109 Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
113 bool "X-Gene PCIe controller"
114 depends on ARM64 || COMPILE_TEST
115 depends on OF || (ACPI && PCI_QUIRKS)
117 Say Y here if you want internal PCI support on APM X-Gene SoC.
118 There are 5 internal PCIe ports available. Each port is GEN3 capable
119 and have varied lanes from x1 to x8.
122 bool "X-Gene v1 PCIe MSI feature"
124 depends on PCI_MSI_IRQ_DOMAIN
127 Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
128 This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
131 bool "V3 Semiconductor PCI controller"
133 depends on ARM || COMPILE_TEST
134 default ARCH_INTEGRATOR_AP
137 bool "ARM Versatile PB PCI controller"
138 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 || ARM64 || COMPILE_TEST
180 Say Y here if you want to enable PCIe controller support on Altera
183 config PCIE_ALTERA_MSI
184 bool "Altera PCIe MSI feature"
185 depends on PCIE_ALTERA
186 depends on PCI_MSI_IRQ_DOMAIN
188 Say Y here if you want PCIe MSI support for the Altera FPGA.
189 This MSI driver supports Altera MSI to GIC controller IP.
191 config PCI_HOST_THUNDER_PEM
192 bool "Cavium Thunder PCIe controller to off-chip devices"
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 PCIe support for CN88XX Cavium Thunder SoCs.
199 config PCI_HOST_THUNDER_ECAM
200 bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
201 depends on ARM64 || COMPILE_TEST
202 depends on OF || (ACPI && PCI_QUIRKS)
203 select PCI_HOST_COMMON
205 Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
211 config PCIE_ROCKCHIP_HOST
212 tristate "Rockchip PCIe host controller"
213 depends on ARCH_ROCKCHIP || COMPILE_TEST
215 depends on PCI_MSI_IRQ_DOMAIN
219 Say Y here if you want internal PCI support on Rockchip SoC.
220 There is 1 internal PCIe port available to support GEN2 with
223 config PCIE_ROCKCHIP_EP
224 bool "Rockchip PCIe endpoint controller"
225 depends on ARCH_ROCKCHIP || COMPILE_TEST
227 depends on PCI_ENDPOINT
231 Say Y here if you want to support Rockchip PCIe controller in
232 endpoint mode on Rockchip SoC. There is 1 internal PCIe port
233 available to support GEN2 with 4 slots.
236 tristate "MediaTek PCIe controller"
237 depends on ARCH_MEDIATEK || COMPILE_TEST
239 depends on PCI_MSI_IRQ_DOMAIN
241 Say Y here if you want to enable PCIe controller support on
245 bool "Mobiveil AXI PCIe controller"
246 depends on ARCH_ZYNQMP || COMPILE_TEST
248 depends on PCI_MSI_IRQ_DOMAIN
250 Say Y here if you want to enable support for the Mobiveil AXI PCIe
251 Soft IP. It has up to 8 outbound and inbound windows
252 for address translation and it is a PCIe Gen4 IP.
254 config PCIE_TANGO_SMP8759
255 bool "Tango SMP8759 PCIe controller (DANGEROUS)"
256 depends on ARCH_TANGO && PCI_MSI && OF
258 select PCI_HOST_COMMON
260 Say Y here to enable PCIe controller support for Sigma Designs
261 Tango SMP8759-based systems.
263 Note: The SMP8759 controller multiplexes PCI config and MMIO
264 accesses, and Linux doesn't provide a way to serialize them.
265 This can lead to data corruption if drivers perform concurrent
266 config and MMIO accesses.
269 depends on PCI_MSI && X86_64 && SRCU
270 tristate "Intel Volume Management Device Driver"
272 Adds support for the Intel Volume Management Device (VMD). VMD is a
273 secondary PCI host bridge that allows PCI Express root ports,
274 and devices attached to them, to be removed from the default
275 PCI domain and placed within the VMD domain. This provides
276 more bus resources than are otherwise possible with a
277 single domain. If you know your system provides one of these and
278 has devices attached to it, say Y; if you are not sure, say N.
280 To compile this driver as a module, choose M here: the
281 module will be called vmd.
283 source "drivers/pci/controller/dwc/Kconfig"