# SPDX-License-Identifier: GPL-2.0
menu "PCI controller drivers"
depends on [31mCONFIG_PCI[0m
config [31mCONFIG_PCI_MVEBU[0m
bool "Marvell EBU PCIe controller"
depends on [31mCONFIG_ARCH_MVEBU[0m || [31mCONFIG_ARCH_DOVE[0m || [31mCONFIG_COMPILE_TEST[0m
depends on [31mCONFIG_MVEBU_MBUS[0m
depends on [31mCONFIG_ARM[0m
depends on [31mCONFIG_OF[0m
select [31mCONFIG_PCI_BRIDGE_EMUL[0m
config [31mCONFIG_PCI_AARDVARK[0m
bool "Aardvark PCIe controller"
depends on ([31mCONFIG_ARCH_MVEBU[0m && [31mCONFIG_ARM64[0m) || [31mCONFIG_COMPILE_TEST[0m
depends on [31mCONFIG_OF[0m
depends on [31mCONFIG_PCI_MSI_IRQ_DOMAIN[0m
select [31mCONFIG_PCI_BRIDGE_EMUL[0m
help
Add support for Aardvark 64bit PCIe Host Controller. This
controller is part of the South Bridge of the Marvel Armada
3700 SoC.
menu "Cadence PCIe controllers support"
config [31mCONFIG_PCIE_CADENCE[0m
bool
config [31mCONFIG_PCIE_CADENCE_HOST[0m
bool "Cadence PCIe host controller"
depends on [31mCONFIG_OF[0m
depends on [31mCONFIG_PCI[0m
select [31mCONFIG_IRQ_DOMAIN[0m
select [31mCONFIG_PCIE_CADENCE[0m
help
Say Y here if you want to support the Cadence PCIe controller in host
mode. This PCIe controller may be embedded into many different vendors
SoCs.
config [31mCONFIG_PCIE_CADENCE_EP[0m
bool "Cadence PCIe endpoint controller"
depends on [31mCONFIG_OF[0m
depends on [31mCONFIG_PCI_ENDPOINT[0m
select [31mCONFIG_PCIE_CADENCE[0m
help
Say Y here if you want to support the Cadence PCIe controller in
endpoint mode. This PCIe controller may be embedded into many
different vendors SoCs.
endmenu
config [31mCONFIG_PCIE_XILINX_NWL[0m
bool "NWL PCIe Core"
depends on [31mCONFIG_ARCH_ZYNQMP[0m || [31mCONFIG_COMPILE_TEST[0m
depends on [31mCONFIG_PCI_MSI_IRQ_DOMAIN[0m
help
Say 'Y' here if you want kernel support for Xilinx
NWL PCIe controller. The controller can act as Root Port
or End Point. The current option selection will only
support root port enabling.
config [31mCONFIG_PCI_FTPCI100[0m
bool "Faraday Technology FTPCI100 PCI controller"
depends on [31mCONFIG_OF[0m
default [31mCONFIG_ARCH_GEMINI[0m
config [31mCONFIG_PCI_TEGRA[0m
bool "NVIDIA Tegra PCIe controller"
depends on [31mCONFIG_ARCH_TEGRA[0m || [31mCONFIG_COMPILE_TEST[0m
depends on [31mCONFIG_PCI_MSI_IRQ_DOMAIN[0m
help
Say Y here if you want support for the PCIe host controller found
on NVIDIA Tegra SoCs.
config [31mCONFIG_PCI_RCAR_GEN2[0m
bool "Renesas R-Car Gen2 Internal PCI controller"
depends on [31mCONFIG_ARCH_RENESAS[0m || [31mCONFIG_COMPILE_TEST[0m
depends on [31mCONFIG_ARM[0m
help
Say Y here if you want internal [31mCONFIG_PCI[0m support on R-Car Gen2 SoC.
There are 3 internal [31mCONFIG_PCI[0m controllers available with a single
built-in EHCI/OHCI host controller present on each one.
config [31mCONFIG_PCIE_RCAR[0m
bool "Renesas R-Car PCIe controller"
depends on [31mCONFIG_ARCH_RENESAS[0m || [31mCONFIG_COMPILE_TEST[0m
depends on [31mCONFIG_PCI_MSI_IRQ_DOMAIN[0m
help
Say Y here if you want PCIe controller support on R-Car SoCs.
config [31mCONFIG_PCI_HOST_COMMON[0m
bool
select [31mCONFIG_PCI_ECAM[0m
config [31mCONFIG_PCI_HOST_GENERIC[0m
bool "Generic PCI host controller"
depends on [31mCONFIG_OF[0m
select [31mCONFIG_PCI_HOST_COMMON[0m
select [31mCONFIG_IRQ_DOMAIN[0m
help
Say Y here if you want to support a simple generic [31mCONFIG_PCI[0m host
controller, such as the one emulated by kvmtool.
config [31mCONFIG_PCIE_XILINX[0m
bool "Xilinx AXI PCIe host bridge support"
depends on [31mCONFIG_OF[0m || [31mCONFIG_COMPILE_TEST[0m
help
Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
Host Bridge driver.
config [31mCONFIG_PCI_XGENE[0m
bool "X-Gene PCIe controller"
depends on [31mCONFIG_ARM64[0m || [31mCONFIG_COMPILE_TEST[0m
depends on [31mCONFIG_OF[0m || ([31mCONFIG_ACPI[0m && [31mCONFIG_PCI_QUIRKS[0m)
help
Say Y here if you want internal [31mCONFIG_PCI[0m support on [31mCONFIG_APM[0m X-Gene SoC.
There are 5 internal PCIe ports available. Each port is GEN3 capable
and have varied lanes from x1 to x8.
config [31mCONFIG_PCI_XGENE_MSI[0m
bool "X-Gene v1 PCIe MSI feature"
depends on [31mCONFIG_PCI_XGENE[0m
depends on [31mCONFIG_PCI_MSI_IRQ_DOMAIN[0m
default y
help
Say Y here if you want PCIe MSI support for the [31mCONFIG_APM[0m X-Gene v1 SoC.
This MSI driver supports 5 PCIe ports on the [31mCONFIG_APM[0m X-Gene v1 SoC.
config [31mCONFIG_PCI_V3_SEMI[0m
bool "V3 Semiconductor PCI controller"
depends on [31mCONFIG_OF[0m
depends on [31mCONFIG_ARM[0m || [31mCONFIG_COMPILE_TEST[0m
default [31mCONFIG_ARCH_INTEGRATOR_AP[0m
config [31mCONFIG_PCI_VERSATILE[0m
bool "ARM Versatile PB PCI controller"
depends on [31mCONFIG_ARCH_VERSATILE[0m
config [31mCONFIG_PCIE_IPROC[0m
tristate
help
This enables the iProc PCIe core controller support for Broadcom's
iProc family of SoCs. An appropriate bus interface driver needs
to be enabled to select this.
config [31mCONFIG_PCIE_IPROC_PLATFORM[0m
tristate "Broadcom iProc PCIe platform bus driver"
depends on [31mCONFIG_ARCH_BCM_IPROC[0m || ([31mCONFIG_ARM[0m && [31mCONFIG_COMPILE_TEST[0m)
depends on [31mCONFIG_OF[0m
select [31mCONFIG_PCIE_IPROC[0m
default [31mCONFIG_ARCH_BCM_IPROC[0m
help
Say Y here if you want to use the Broadcom iProc PCIe controller
through the generic platform bus interface
config [31mCONFIG_PCIE_IPROC_BCMA[0m
tristate "Broadcom iProc PCIe BCMA bus driver"
depends on [31mCONFIG_ARM[0m && ([31mCONFIG_ARCH_BCM_IPROC[0m || [31mCONFIG_COMPILE_TEST[0m)
select [31mCONFIG_PCIE_IPROC[0m
select [31mCONFIG_BCMA[0m
default [31mCONFIG_ARCH_BCM_5301X[0m
help
Say Y here if you want to use the Broadcom iProc PCIe controller
through the [31mCONFIG_BCMA[0m bus interface
config [31mCONFIG_PCIE_IPROC_MSI[0m
bool "Broadcom iProc PCIe MSI support"
depends on [31mCONFIG_PCIE_IPROC_PLATFORM[0m || [31mCONFIG_PCIE_IPROC_BCMA[0m
depends on [31mCONFIG_PCI_MSI_IRQ_DOMAIN[0m
default [31mCONFIG_ARCH_BCM_IPROC[0m
help
Say Y here if you want to enable MSI support for Broadcom's iProc
PCIe controller
config [31mCONFIG_PCIE_ALTERA[0m
tristate "Altera PCIe controller"
depends on [31mCONFIG_ARM[0m || [31mCONFIG_NIOS2[0m || [31mCONFIG_ARM64[0m || [31mCONFIG_COMPILE_TEST[0m
help
Say Y here if you want to enable PCIe controller support on Altera
[31mCONFIG_FPGA[0m.
config [31mCONFIG_PCIE_ALTERA_MSI[0m
tristate "Altera PCIe MSI feature"
depends on [31mCONFIG_PCIE_ALTERA[0m
depends on [31mCONFIG_PCI_MSI_IRQ_DOMAIN[0m
help
Say Y here if you want PCIe MSI support for the Altera [31mCONFIG_FPGA[0m.
This MSI driver supports Altera MSI to GIC controller IP.
config [31mCONFIG_PCI_HOST_THUNDER_PEM[0m
bool "Cavium Thunder PCIe controller to off-chip devices"
depends on [31mCONFIG_ARM64[0m || [31mCONFIG_COMPILE_TEST[0m
depends on [31mCONFIG_OF[0m || ([31mCONFIG_ACPI[0m && [31mCONFIG_PCI_QUIRKS[0m)
select [31mCONFIG_PCI_HOST_COMMON[0m
help
Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
config [31mCONFIG_PCI_HOST_THUNDER_ECAM[0m
bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
depends on [31mCONFIG_ARM64[0m || [31mCONFIG_COMPILE_TEST[0m
depends on [31mCONFIG_OF[0m || ([31mCONFIG_ACPI[0m && [31mCONFIG_PCI_QUIRKS[0m)
select [31mCONFIG_PCI_HOST_COMMON[0m
help
Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
config [31mCONFIG_PCIE_ROCKCHIP[0m
bool
depends on [31mCONFIG_PCI[0m
config [31mCONFIG_PCIE_ROCKCHIP_HOST[0m
tristate "Rockchip PCIe host controller"
depends on [31mCONFIG_ARCH_ROCKCHIP[0m || [31mCONFIG_COMPILE_TEST[0m
depends on [31mCONFIG_OF[0m
depends on [31mCONFIG_PCI_MSI_IRQ_DOMAIN[0m
select [31mCONFIG_MFD_SYSCON[0m
select [31mCONFIG_PCIE_ROCKCHIP[0m
help
Say Y here if you want internal [31mCONFIG_PCI[0m support on Rockchip SoC.
There is 1 internal PCIe port available to support GEN2 with
4 slots.
config [31mCONFIG_PCIE_ROCKCHIP_EP[0m
bool "Rockchip PCIe endpoint controller"
depends on [31mCONFIG_ARCH_ROCKCHIP[0m || [31mCONFIG_COMPILE_TEST[0m
depends on [31mCONFIG_OF[0m
depends on [31mCONFIG_PCI_ENDPOINT[0m
select [31mCONFIG_MFD_SYSCON[0m
select [31mCONFIG_PCIE_ROCKCHIP[0m
help
Say Y here if you want to support Rockchip PCIe controller in
endpoint mode on Rockchip SoC. There is 1 internal PCIe port
available to support GEN2 with 4 slots.
config [31mCONFIG_PCIE_MEDIATEK[0m
tristate "MediaTek PCIe controller"
depends on [31mCONFIG_ARCH_MEDIATEK[0m || [31mCONFIG_COMPILE_TEST[0m
depends on [31mCONFIG_OF[0m
depends on [31mCONFIG_PCI_MSI_IRQ_DOMAIN[0m
help
Say Y here if you want to enable PCIe controller support on
MediaTek SoCs.
config [31mCONFIG_PCIE_MOBIVEIL[0m
bool "Mobiveil AXI PCIe controller"
depends on [31mCONFIG_ARCH_ZYNQMP[0m || [31mCONFIG_COMPILE_TEST[0m
depends on [31mCONFIG_OF[0m
depends on [31mCONFIG_PCI_MSI_IRQ_DOMAIN[0m
help
Say Y here if you want to enable support for the Mobiveil AXI PCIe
Soft IP. It has up to 8 outbound and inbound windows
for address translation and it is a PCIe Gen4 IP.
config [31mCONFIG_PCIE_TANGO_SMP8759[0m
bool "Tango SMP8759 PCIe controller (DANGEROUS)"
depends on [31mCONFIG_ARCH_TANGO[0m && [31mCONFIG_PCI_MSI[0m && [31mCONFIG_OF[0m
depends on [31mCONFIG_BROKEN[0m
select [31mCONFIG_PCI_HOST_COMMON[0m
help
Say Y here to enable PCIe controller support for Sigma Designs
Tango SMP8759-based systems.
Note: The SMP8759 controller multiplexes [31mCONFIG_PCI[0m config and MMIO
accesses, and Linux doesn't provide a way to serialize them.
This can lead to data corruption if drivers perform concurrent
config and MMIO accesses.
config [31mCONFIG_VMD[0m
depends on [31mCONFIG_PCI_MSI[0m && [31mCONFIG_X86_64[0m && [31mCONFIG_SRCU[0m
select [31mCONFIG_X86_DEV_DMA_OPS[0m
tristate "Intel Volume Management Device Driver"
---help---
Adds support for the Intel Volume Management Device ([31mCONFIG_VMD[0m). [31mCONFIG_VMD[0m is a
secondary [31mCONFIG_PCI[0m host bridge that allows [31mCONFIG_PCI[0m Express root ports,
and devices attached to them, to be removed from the default
[31mCONFIG_PCI[0m domain and placed within the [31mCONFIG_VMD[0m domain. This provides
more bus resources than are otherwise possible with a
single domain. If you know your system provides one of these and
has devices attached to it, say Y; if you are not sure, say N.
To compile this driver as a module, choose [31mCONFIG_M[0m here: the
module will be called vmd.
config [31mCONFIG_PCI_HYPERV_INTERFACE[0m
tristate "Hyper-V PCI Interface"
depends on [31mCONFIG_X86[0m && [31mCONFIG_HYPERV[0m && [31mCONFIG_PCI_MSI[0m && [31mCONFIG_PCI_MSI_IRQ_DOMAIN[0m && [31mCONFIG_X86_64[0m
help
The Hyper-V [31mCONFIG_PCI[0m Interface is a helper driver allows other drivers to
have a common interface with the Hyper-V [31mCONFIG_PCI[0m frontend driver.
source "drivers/pci/controller/dwc/Kconfig"
endmenu