| # SPDX-License-Identifier: GPL-2.0 | |
| menu "PCI controller drivers" | |
| depends on PCI | |
| config PCI_HOST_COMMON | |
| tristate | |
| select PCI_ECAM | |
| config PCI_AARDVARK | |
| tristate "Aardvark PCIe controller" | |
| depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST | |
| depends on OF | |
| depends on PCI_MSI | |
| select PCI_BRIDGE_EMUL | |
| select IRQ_MSI_LIB | |
| 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_ALTERA | |
| tristate "Altera PCIe controller" | |
| depends on ARM || NIOS2 || ARM64 || COMPILE_TEST | |
| help | |
| Say Y here if you want to enable PCIe controller support on Altera | |
| FPGA. | |
| config PCIE_ALTERA_MSI | |
| tristate "Altera PCIe MSI feature" | |
| depends on PCIE_ALTERA | |
| depends on PCI_MSI | |
| select IRQ_MSI_LIB | |
| 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 PCIE_APPLE_MSI_DOORBELL_ADDR | |
| hex | |
| default 0xfffff000 | |
| depends on PCIE_APPLE | |
| config PCIE_APPLE | |
| tristate "Apple PCIe controller" | |
| depends on ARCH_APPLE || COMPILE_TEST | |
| depends on OF | |
| depends on PCI_MSI | |
| select PCI_HOST_COMMON | |
| select IRQ_MSI_LIB | |
| help | |
| Say Y here if you want to enable PCIe controller support on Apple | |
| system-on-chips, like the Apple M1. This is required for the USB | |
| type-A ports, Ethernet, Wi-Fi, and Bluetooth. | |
| If unsure, say Y if you have an Apple Silicon system. | |
| config PCI_VERSATILE | |
| bool "ARM Versatile PB PCI controller" | |
| depends on ARCH_VERSATILE || COMPILE_TEST | |
| config PCIE_ASPEED | |
| bool "ASPEED PCIe controller" | |
| depends on ARCH_ASPEED || COMPILE_TEST | |
| depends on OF | |
| depends on PCI_MSI | |
| select IRQ_MSI_LIB | |
| help | |
| Enable this option to support the PCIe controller found on ASPEED | |
| SoCs. | |
| This driver provides initialization and management for PCIe | |
| Root Complex functionality, including INTx and MSI support. | |
| Select Y if your platform uses an ASPEED SoC and requires PCIe | |
| connectivity. | |
| config PCIE_BRCMSTB | |
| tristate "Broadcom Brcmstb PCIe controller" | |
| depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCMBCA || \ | |
| BMIPS_GENERIC || COMPILE_TEST | |
| depends on OF | |
| depends on PCI_MSI | |
| select IRQ_MSI_LIB | |
| default ARCH_BRCMSTB || BMIPS_GENERIC | |
| help | |
| Say Y here to enable PCIe host controller support for | |
| Broadcom STB based SoCs, like the Raspberry Pi 4. | |
| config PCIE_IPROC | |
| 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 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 BCMA PCIe controller" | |
| 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 | |
| select IRQ_MSI_LIB | |
| default ARCH_BCM_IPROC | |
| help | |
| Say Y here if you want to enable MSI support for Broadcom's iProc | |
| PCIe controller | |
| config PCI_HOST_THUNDER_PEM | |
| bool "Cavium Thunder PCIe controller to off-chip devices" | |
| depends on ARM64 || COMPILE_TEST | |
| 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 || COMPILE_TEST | |
| 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 PCI_FTPCI100 | |
| bool "Faraday Technology FTPCI100 PCI controller" | |
| depends on OF | |
| default ARCH_GEMINI | |
| config PCI_HOST_GENERIC | |
| tristate "Generic PCI host controller" | |
| depends on 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_HISI_ERR | |
| depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST) | |
| bool "HiSilicon HIP PCIe controller error handling driver" | |
| help | |
| Say Y here if you want error handling support | |
| for the PCIe controller's errors on HiSilicon HIP SoCs | |
| config PCI_IXP4XX | |
| bool "Intel IXP4xx PCI controller" | |
| depends on OF | |
| depends on ARCH_IXP4XX || COMPILE_TEST | |
| default ARCH_IXP4XX | |
| help | |
| Say Y here if you want support for the PCI host controller found | |
| in the Intel IXP4xx XScale-based network processor SoC. | |
| config VMD | |
| depends on PCI_MSI && X86_64 && !UML | |
| tristate "Intel Volume Management Device Driver" | |
| select IRQ_MSI_LIB | |
| 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. | |
| config PCI_LOONGSON | |
| bool "LOONGSON PCIe controller" | |
| depends on MACH_LOONGSON32 || MACH_LOONGSON64 || COMPILE_TEST | |
| depends on OF || ACPI | |
| depends on PCI_QUIRKS | |
| default MACH_LOONGSON64 | |
| help | |
| Say Y here if you want to enable PCI controller support on | |
| Loongson systems. | |
| config PCI_MVEBU | |
| tristate "Marvell EBU PCIe controller" | |
| depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST | |
| depends on MVEBU_MBUS | |
| depends on ARM | |
| depends on OF | |
| select PCI_BRIDGE_EMUL | |
| help | |
| Add support for Marvell EBU PCIe controller. This PCIe controller | |
| is used on 32-bit Marvell ARM SoCs: Dove, Kirkwood, Armada 370, | |
| Armada XP, Armada 375, Armada 38x and Armada 39x. | |
| config PCIE_MEDIATEK | |
| tristate "MediaTek PCIe controller" | |
| depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST | |
| depends on OF | |
| depends on PCI_MSI | |
| select IRQ_MSI_LIB | |
| help | |
| Say Y here if you want to enable PCIe controller support on | |
| MediaTek SoCs. | |
| config PCIE_MEDIATEK_GEN3 | |
| tristate "MediaTek Gen3 PCIe controller" | |
| depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST | |
| depends on PCI_MSI | |
| select IRQ_MSI_LIB | |
| select PCI_PWRCTRL_GENERIC | |
| help | |
| Adds support for PCIe Gen3 MAC controller for MediaTek SoCs. | |
| This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed, | |
| and support up to 256 MSI interrupt numbers for | |
| multi-function devices. | |
| Say Y here if you want to enable Gen3 PCIe controller support on | |
| MediaTek SoCs. | |
| config PCIE_MT7621 | |
| tristate "MediaTek MT7621 PCIe controller" | |
| depends on SOC_MT7621 || COMPILE_TEST | |
| select PHY_MT7621_PCI | |
| default SOC_MT7621 | |
| help | |
| This selects a driver for the MediaTek MT7621 PCIe Controller. | |
| config PCI_HYPERV_INTERFACE | |
| tristate "Microsoft Hyper-V PCI Interface" | |
| depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI | |
| help | |
| The Hyper-V PCI Interface is a helper driver that allows other | |
| drivers to have a common interface with the Hyper-V PCI frontend | |
| driver. | |
| config PCI_TEGRA | |
| tristate "NVIDIA Tegra PCIe controller" | |
| depends on ARCH_TEGRA || COMPILE_TEST | |
| depends on PCI_MSI | |
| select IRQ_MSI_LIB | |
| help | |
| Say Y here if you want support for the PCIe host controller found | |
| on NVIDIA Tegra SoCs. | |
| config PCIE_RCAR_HOST | |
| bool "Renesas R-Car PCIe controller (host mode)" | |
| depends on ARCH_RENESAS || COMPILE_TEST | |
| depends on OF | |
| depends on PCI_MSI | |
| select IRQ_MSI_LIB | |
| help | |
| Say Y here if you want PCIe controller support on R-Car SoCs in host | |
| mode. | |
| config PCIE_RCAR_EP | |
| bool "Renesas R-Car PCIe controller (endpoint mode)" | |
| depends on ARCH_RENESAS || COMPILE_TEST | |
| depends on PCI_ENDPOINT | |
| help | |
| Say Y here if you want PCIe controller support on R-Car SoCs in | |
| endpoint mode. | |
| config PCI_RCAR_GEN2 | |
| bool "Renesas R-Car Gen2 Internal PCI controller" | |
| depends on (ARCH_RENESAS && ARM) || COMPILE_TEST | |
| help | |
| Say Y here if you want internal PCI support on R-Car Gen2 SoC. | |
| Each internal PCI controller contains a single built-in EHCI/OHCI | |
| host controller. | |
| config PCIE_RENESAS_RZG3S_HOST | |
| bool "Renesas RZ/G3S PCIe host controller" | |
| depends on ARCH_RENESAS || COMPILE_TEST | |
| select MFD_SYSCON | |
| select IRQ_MSI_LIB | |
| help | |
| Say Y here if you want PCIe host controller support on Renesas RZ/G3S | |
| SoC. | |
| config PCIE_ROCKCHIP | |
| bool | |
| depends on PCI | |
| config PCIE_ROCKCHIP_HOST | |
| tristate "Rockchip PCIe controller (host mode)" | |
| depends on ARCH_ROCKCHIP || COMPILE_TEST | |
| depends on OF | |
| depends on PCI_MSI | |
| select MFD_SYSCON | |
| select PCIE_ROCKCHIP | |
| 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_ROCKCHIP_EP | |
| bool "Rockchip PCIe controller (endpoint mode)" | |
| depends on ARCH_ROCKCHIP || COMPILE_TEST | |
| depends on OF | |
| depends on PCI_ENDPOINT | |
| select MFD_SYSCON | |
| select PCIE_ROCKCHIP | |
| 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 PCI_V3_SEMI | |
| bool "V3 Semiconductor PCI controller" | |
| depends on OF | |
| depends on ARM || COMPILE_TEST | |
| default ARCH_INTEGRATOR_AP | |
| config PCI_XGENE | |
| bool "X-Gene PCIe controller" | |
| depends on ARM64 || COMPILE_TEST | |
| depends on OF || (ACPI && PCI_QUIRKS) | |
| 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 | |
| select IRQ_MSI_LIB | |
| 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 PCIE_XILINX | |
| bool "Xilinx AXI PCIe controller" | |
| depends on OF | |
| depends on PCI_MSI | |
| select IRQ_MSI_LIB | |
| help | |
| Say 'Y' here if you want kernel to support the Xilinx AXI PCIe | |
| Host Bridge driver. | |
| config PCIE_XILINX_DMA_PL | |
| bool "Xilinx DMA PL PCIe host bridge support" | |
| depends on ARCH_ZYNQMP || COMPILE_TEST | |
| depends on PCI_MSI | |
| select PCI_HOST_COMMON | |
| select IRQ_MSI_LIB | |
| help | |
| Say 'Y' here if you want kernel support for the Xilinx PL DMA | |
| PCIe host bridge. The controller is a Soft IP which can act as | |
| Root Port. If your system provides Xilinx PCIe host controller | |
| bridge DMA as Soft IP say 'Y'; if you are not sure, say 'N'. | |
| config PCIE_XILINX_NWL | |
| bool "Xilinx NWL PCIe controller" | |
| depends on ARCH_ZYNQMP || COMPILE_TEST | |
| depends on PCI_MSI | |
| select IRQ_MSI_LIB | |
| 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 PCIE_XILINX_CPM | |
| bool "Xilinx Versal CPM PCI controller" | |
| depends on ARCH_ZYNQMP || COMPILE_TEST | |
| select PCI_HOST_COMMON | |
| help | |
| Say 'Y' here if you want kernel support for the | |
| Xilinx Versal CPM host bridge. | |
| source "drivers/pci/controller/cadence/Kconfig" | |
| source "drivers/pci/controller/dwc/Kconfig" | |
| source "drivers/pci/controller/mobiveil/Kconfig" | |
| source "drivers/pci/controller/plda/Kconfig" | |
| endmenu |