| # SPDX-License-Identifier: GPL-2.0 |
| |
| menu "PCI host controller drivers" |
| depends on PCI |
| |
| config PCI_MVEBU |
| bool "Marvell EBU PCIe controller" |
| depends on ARCH_MVEBU || ARCH_DOVE |
| depends on ARM |
| depends on OF |
| |
| config PCI_AARDVARK |
| bool "Aardvark PCIe controller" |
| depends on ARCH_MVEBU && ARM64 |
| depends on OF |
| depends on PCI_MSI_IRQ_DOMAIN |
| help |
| Add support for Aardvark 64bit PCIe Host Controller. This |
| controller is part of the South Bridge of the Marvel Armada |
| 3700 SoC. |
| |
| config PCIE_XILINX_NWL |
| bool "NWL PCIe Core" |
| depends on ARCH_ZYNQMP |
| depends on PCI_MSI_IRQ_DOMAIN |
| 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 PCI_FTPCI100 |
| bool "Faraday Technology FTPCI100 PCI controller" |
| depends on OF |
| depends on ARM |
| default ARCH_GEMINI |
| |
| config PCI_TEGRA |
| bool "NVIDIA Tegra PCIe controller" |
| depends on ARCH_TEGRA |
| depends on PCI_MSI_IRQ_DOMAIN |
| help |
| Say Y here if you want support for the PCIe host controller found |
| on NVIDIA Tegra SoCs. |
| |
| config PCI_RCAR_GEN2 |
| bool "Renesas R-Car Gen2 Internal PCI controller" |
| depends on ARM |
| depends on ARCH_RENESAS || COMPILE_TEST |
| help |
| Say Y here if you want internal PCI support on R-Car Gen2 SoC. |
| There are 3 internal PCI controllers available with a single |
| built-in EHCI/OHCI host controller present on each one. |
| |
| config PCIE_RCAR |
| bool "Renesas R-Car PCIe controller" |
| depends on ARCH_RENESAS || (ARM && COMPILE_TEST) |
| depends on PCI_MSI_IRQ_DOMAIN |
| help |
| Say Y here if you want PCIe controller support on R-Car SoCs. |
| |
| config PCI_HOST_COMMON |
| bool |
| select PCI_ECAM |
| |
| config PCI_HOST_GENERIC |
| bool "Generic PCI host controller" |
| depends on (ARM || ARM64) && OF |
| select PCI_HOST_COMMON |
| select IRQ_DOMAIN |
| help |
| Say Y here if you want to support a simple generic PCI host |
| controller, such as the one emulated by kvmtool. |
| |
| config PCIE_XILINX |
| bool "Xilinx AXI PCIe host bridge support" |
| depends on ARCH_ZYNQ || MICROBLAZE || (MIPS && PCI_DRIVERS_GENERIC) |
| help |
| Say 'Y' here if you want kernel to support the Xilinx AXI PCIe |
| Host Bridge driver. |
| |
| config PCI_XGENE |
| bool "X-Gene PCIe controller" |
| depends on ARM64 |
| depends on OF || (ACPI && PCI_QUIRKS) |
| select PCIEPORTBUS |
| help |
| Say Y here if you want internal PCI support on APM X-Gene SoC. |
| There are 5 internal PCIe ports available. Each port is GEN3 capable |
| and have varied lanes from x1 to x8. |
| |
| config PCI_XGENE_MSI |
| bool "X-Gene v1 PCIe MSI feature" |
| depends on PCI_XGENE |
| depends on PCI_MSI_IRQ_DOMAIN |
| default y |
| help |
| Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC. |
| This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC. |
| |
| config PCI_V3_SEMI |
| bool "V3 Semiconductor PCI controller" |
| depends on OF |
| depends on ARM |
| default ARCH_INTEGRATOR_AP |
| |
| config PCI_VERSATILE |
| bool "ARM Versatile PB PCI controller" |
| depends on ARCH_VERSATILE |
| |
| config PCIE_IPROC |
| tristate |
| select PCI_DOMAINS |
| 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 PCIE_IPROC_PLATFORM |
| tristate "Broadcom iProc PCIe platform bus driver" |
| depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST) |
| depends on OF |
| select PCIE_IPROC |
| default ARCH_BCM_IPROC |
| help |
| Say Y here if you want to use the Broadcom iProc PCIe controller |
| through the generic platform bus interface |
| |
| config PCIE_IPROC_BCMA |
| tristate "Broadcom iProc PCIe BCMA bus driver" |
| depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST) |
| select PCIE_IPROC |
| select BCMA |
| default ARCH_BCM_5301X |
| help |
| Say Y here if you want to use the Broadcom iProc PCIe controller |
| through the BCMA bus interface |
| |
| config PCIE_IPROC_MSI |
| bool "Broadcom iProc PCIe MSI support" |
| depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA |
| depends on PCI_MSI_IRQ_DOMAIN |
| default ARCH_BCM_IPROC |
| help |
| Say Y here if you want to enable MSI support for Broadcom's iProc |
| PCIe controller |
| |
| config PCIE_ALTERA |
| bool "Altera PCIe controller" |
| depends on ARM || NIOS2 |
| depends on OF_PCI |
| select PCI_DOMAINS |
| help |
| Say Y here if you want to enable PCIe controller support on Altera |
| FPGA. |
| |
| config PCIE_ALTERA_MSI |
| bool "Altera PCIe MSI feature" |
| depends on PCIE_ALTERA |
| depends on PCI_MSI_IRQ_DOMAIN |
| help |
| Say Y here if you want PCIe MSI support for the Altera FPGA. |
| This MSI driver supports Altera MSI to GIC controller IP. |
| |
| config PCI_HOST_THUNDER_PEM |
| bool "Cavium Thunder PCIe controller to off-chip devices" |
| depends on ARM64 |
| depends on OF || (ACPI && PCI_QUIRKS) |
| select PCI_HOST_COMMON |
| help |
| Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs. |
| |
| config PCI_HOST_THUNDER_ECAM |
| bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon" |
| depends on ARM64 |
| depends on OF || (ACPI && PCI_QUIRKS) |
| select PCI_HOST_COMMON |
| help |
| Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs. |
| |
| config PCIE_ROCKCHIP |
| tristate "Rockchip PCIe controller" |
| depends on ARCH_ROCKCHIP || COMPILE_TEST |
| depends on OF |
| depends on PCI_MSI_IRQ_DOMAIN |
| select MFD_SYSCON |
| help |
| Say Y here if you want internal PCI support on Rockchip SoC. |
| There is 1 internal PCIe port available to support GEN2 with |
| 4 slots. |
| |
| config PCIE_MEDIATEK |
| bool "MediaTek PCIe controller" |
| depends on (ARM || ARM64) && (ARCH_MEDIATEK || COMPILE_TEST) |
| depends on OF |
| depends on PCI |
| select PCIEPORTBUS |
| help |
| Say Y here if you want to enable PCIe controller support on |
| MediaTek SoCs. |
| |
| config PCIE_TANGO_SMP8759 |
| bool "Tango SMP8759 PCIe controller (DANGEROUS)" |
| depends on ARCH_TANGO && PCI_MSI && OF |
| depends on BROKEN |
| select PCI_HOST_COMMON |
| help |
| Say Y here to enable PCIe controller support for Sigma Designs |
| Tango SMP8759-based systems. |
| |
| Note: The SMP8759 controller multiplexes PCI 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 VMD |
| depends on PCI_MSI && X86_64 && SRCU |
| tristate "Intel Volume Management Device Driver" |
| ---help--- |
| Adds support for the Intel Volume Management Device (VMD). VMD is a |
| secondary PCI host bridge that allows PCI Express root ports, |
| and devices attached to them, to be removed from the default |
| PCI domain and placed within the VMD 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 M here: the |
| module will be called vmd. |
| |
| endmenu |