162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci 362306a36Sopenharmony_cimenu "PCI controller drivers" 462306a36Sopenharmony_ci depends on PCI 562306a36Sopenharmony_ci 662306a36Sopenharmony_ciconfig PCI_AARDVARK 762306a36Sopenharmony_ci tristate "Aardvark PCIe controller" 862306a36Sopenharmony_ci depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST 962306a36Sopenharmony_ci depends on OF 1062306a36Sopenharmony_ci depends on PCI_MSI 1162306a36Sopenharmony_ci select PCI_BRIDGE_EMUL 1262306a36Sopenharmony_ci help 1362306a36Sopenharmony_ci Add support for Aardvark 64bit PCIe Host Controller. This 1462306a36Sopenharmony_ci controller is part of the South Bridge of the Marvel Armada 1562306a36Sopenharmony_ci 3700 SoC. 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ciconfig PCIE_ALTERA 1862306a36Sopenharmony_ci tristate "Altera PCIe controller" 1962306a36Sopenharmony_ci depends on ARM || NIOS2 || ARM64 || COMPILE_TEST 2062306a36Sopenharmony_ci help 2162306a36Sopenharmony_ci Say Y here if you want to enable PCIe controller support on Altera 2262306a36Sopenharmony_ci FPGA. 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciconfig PCIE_ALTERA_MSI 2562306a36Sopenharmony_ci tristate "Altera PCIe MSI feature" 2662306a36Sopenharmony_ci depends on PCIE_ALTERA 2762306a36Sopenharmony_ci depends on PCI_MSI 2862306a36Sopenharmony_ci help 2962306a36Sopenharmony_ci Say Y here if you want PCIe MSI support for the Altera FPGA. 3062306a36Sopenharmony_ci This MSI driver supports Altera MSI to GIC controller IP. 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ciconfig PCIE_APPLE_MSI_DOORBELL_ADDR 3362306a36Sopenharmony_ci hex 3462306a36Sopenharmony_ci default 0xfffff000 3562306a36Sopenharmony_ci depends on PCIE_APPLE 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ciconfig PCIE_APPLE 3862306a36Sopenharmony_ci tristate "Apple PCIe controller" 3962306a36Sopenharmony_ci depends on ARCH_APPLE || COMPILE_TEST 4062306a36Sopenharmony_ci depends on OF 4162306a36Sopenharmony_ci depends on PCI_MSI 4262306a36Sopenharmony_ci select PCI_HOST_COMMON 4362306a36Sopenharmony_ci help 4462306a36Sopenharmony_ci Say Y here if you want to enable PCIe controller support on Apple 4562306a36Sopenharmony_ci system-on-chips, like the Apple M1. This is required for the USB 4662306a36Sopenharmony_ci type-A ports, Ethernet, Wi-Fi, and Bluetooth. 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci If unsure, say Y if you have an Apple Silicon system. 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ciconfig PCI_VERSATILE 5162306a36Sopenharmony_ci bool "ARM Versatile PB PCI controller" 5262306a36Sopenharmony_ci depends on ARCH_VERSATILE || COMPILE_TEST 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ciconfig PCIE_BRCMSTB 5562306a36Sopenharmony_ci tristate "Broadcom Brcmstb PCIe controller" 5662306a36Sopenharmony_ci depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCMBCA || \ 5762306a36Sopenharmony_ci BMIPS_GENERIC || COMPILE_TEST 5862306a36Sopenharmony_ci depends on OF 5962306a36Sopenharmony_ci depends on PCI_MSI 6062306a36Sopenharmony_ci default ARCH_BRCMSTB || BMIPS_GENERIC 6162306a36Sopenharmony_ci help 6262306a36Sopenharmony_ci Say Y here to enable PCIe host controller support for 6362306a36Sopenharmony_ci Broadcom STB based SoCs, like the Raspberry Pi 4. 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ciconfig PCIE_IPROC 6662306a36Sopenharmony_ci tristate 6762306a36Sopenharmony_ci help 6862306a36Sopenharmony_ci This enables the iProc PCIe core controller support for Broadcom's 6962306a36Sopenharmony_ci iProc family of SoCs. An appropriate bus interface driver needs 7062306a36Sopenharmony_ci to be enabled to select this. 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ciconfig PCIE_IPROC_PLATFORM 7362306a36Sopenharmony_ci tristate "Broadcom iProc PCIe platform bus driver" 7462306a36Sopenharmony_ci depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST) 7562306a36Sopenharmony_ci depends on OF 7662306a36Sopenharmony_ci select PCIE_IPROC 7762306a36Sopenharmony_ci default ARCH_BCM_IPROC 7862306a36Sopenharmony_ci help 7962306a36Sopenharmony_ci Say Y here if you want to use the Broadcom iProc PCIe controller 8062306a36Sopenharmony_ci through the generic platform bus interface 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ciconfig PCIE_IPROC_BCMA 8362306a36Sopenharmony_ci tristate "Broadcom iProc BCMA PCIe controller" 8462306a36Sopenharmony_ci depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST) 8562306a36Sopenharmony_ci select PCIE_IPROC 8662306a36Sopenharmony_ci select BCMA 8762306a36Sopenharmony_ci default ARCH_BCM_5301X 8862306a36Sopenharmony_ci help 8962306a36Sopenharmony_ci Say Y here if you want to use the Broadcom iProc PCIe controller 9062306a36Sopenharmony_ci through the BCMA bus interface 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ciconfig PCIE_IPROC_MSI 9362306a36Sopenharmony_ci bool "Broadcom iProc PCIe MSI support" 9462306a36Sopenharmony_ci depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA 9562306a36Sopenharmony_ci depends on PCI_MSI 9662306a36Sopenharmony_ci default ARCH_BCM_IPROC 9762306a36Sopenharmony_ci help 9862306a36Sopenharmony_ci Say Y here if you want to enable MSI support for Broadcom's iProc 9962306a36Sopenharmony_ci PCIe controller 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ciconfig PCI_HOST_THUNDER_PEM 10262306a36Sopenharmony_ci bool "Cavium Thunder PCIe controller to off-chip devices" 10362306a36Sopenharmony_ci depends on ARM64 || COMPILE_TEST 10462306a36Sopenharmony_ci depends on OF || (ACPI && PCI_QUIRKS) 10562306a36Sopenharmony_ci select PCI_HOST_COMMON 10662306a36Sopenharmony_ci help 10762306a36Sopenharmony_ci Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs. 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ciconfig PCI_HOST_THUNDER_ECAM 11062306a36Sopenharmony_ci bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon" 11162306a36Sopenharmony_ci depends on ARM64 || COMPILE_TEST 11262306a36Sopenharmony_ci depends on OF || (ACPI && PCI_QUIRKS) 11362306a36Sopenharmony_ci select PCI_HOST_COMMON 11462306a36Sopenharmony_ci help 11562306a36Sopenharmony_ci Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs. 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_ciconfig PCI_FTPCI100 11862306a36Sopenharmony_ci bool "Faraday Technology FTPCI100 PCI controller" 11962306a36Sopenharmony_ci depends on OF 12062306a36Sopenharmony_ci default ARCH_GEMINI 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ciconfig PCI_HOST_COMMON 12362306a36Sopenharmony_ci tristate 12462306a36Sopenharmony_ci select PCI_ECAM 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_ciconfig PCI_HOST_GENERIC 12762306a36Sopenharmony_ci tristate "Generic PCI host controller" 12862306a36Sopenharmony_ci depends on OF 12962306a36Sopenharmony_ci select PCI_HOST_COMMON 13062306a36Sopenharmony_ci select IRQ_DOMAIN 13162306a36Sopenharmony_ci help 13262306a36Sopenharmony_ci Say Y here if you want to support a simple generic PCI host 13362306a36Sopenharmony_ci controller, such as the one emulated by kvmtool. 13462306a36Sopenharmony_ci 13562306a36Sopenharmony_ciconfig PCIE_HISI_ERR 13662306a36Sopenharmony_ci depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST) 13762306a36Sopenharmony_ci bool "HiSilicon HIP PCIe controller error handling driver" 13862306a36Sopenharmony_ci help 13962306a36Sopenharmony_ci Say Y here if you want error handling support 14062306a36Sopenharmony_ci for the PCIe controller's errors on HiSilicon HIP SoCs 14162306a36Sopenharmony_ci 14262306a36Sopenharmony_ciconfig PCI_IXP4XX 14362306a36Sopenharmony_ci bool "Intel IXP4xx PCI controller" 14462306a36Sopenharmony_ci depends on ARM && OF 14562306a36Sopenharmony_ci depends on ARCH_IXP4XX || COMPILE_TEST 14662306a36Sopenharmony_ci default ARCH_IXP4XX 14762306a36Sopenharmony_ci help 14862306a36Sopenharmony_ci Say Y here if you want support for the PCI host controller found 14962306a36Sopenharmony_ci in the Intel IXP4xx XScale-based network processor SoC. 15062306a36Sopenharmony_ci 15162306a36Sopenharmony_ciconfig VMD 15262306a36Sopenharmony_ci depends on PCI_MSI && X86_64 && !UML 15362306a36Sopenharmony_ci tristate "Intel Volume Management Device Driver" 15462306a36Sopenharmony_ci help 15562306a36Sopenharmony_ci Adds support for the Intel Volume Management Device (VMD). VMD is a 15662306a36Sopenharmony_ci secondary PCI host bridge that allows PCI Express root ports, 15762306a36Sopenharmony_ci and devices attached to them, to be removed from the default 15862306a36Sopenharmony_ci PCI domain and placed within the VMD domain. This provides 15962306a36Sopenharmony_ci more bus resources than are otherwise possible with a 16062306a36Sopenharmony_ci single domain. If you know your system provides one of these and 16162306a36Sopenharmony_ci has devices attached to it, say Y; if you are not sure, say N. 16262306a36Sopenharmony_ci 16362306a36Sopenharmony_ci To compile this driver as a module, choose M here: the 16462306a36Sopenharmony_ci module will be called vmd. 16562306a36Sopenharmony_ci 16662306a36Sopenharmony_ciconfig PCI_LOONGSON 16762306a36Sopenharmony_ci bool "LOONGSON PCIe controller" 16862306a36Sopenharmony_ci depends on MACH_LOONGSON64 || COMPILE_TEST 16962306a36Sopenharmony_ci depends on OF || ACPI 17062306a36Sopenharmony_ci depends on PCI_QUIRKS 17162306a36Sopenharmony_ci default MACH_LOONGSON64 17262306a36Sopenharmony_ci help 17362306a36Sopenharmony_ci Say Y here if you want to enable PCI controller support on 17462306a36Sopenharmony_ci Loongson systems. 17562306a36Sopenharmony_ci 17662306a36Sopenharmony_ciconfig PCI_MVEBU 17762306a36Sopenharmony_ci tristate "Marvell EBU PCIe controller" 17862306a36Sopenharmony_ci depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST 17962306a36Sopenharmony_ci depends on MVEBU_MBUS 18062306a36Sopenharmony_ci depends on ARM 18162306a36Sopenharmony_ci depends on OF 18262306a36Sopenharmony_ci select PCI_BRIDGE_EMUL 18362306a36Sopenharmony_ci help 18462306a36Sopenharmony_ci Add support for Marvell EBU PCIe controller. This PCIe controller 18562306a36Sopenharmony_ci is used on 32-bit Marvell ARM SoCs: Dove, Kirkwood, Armada 370, 18662306a36Sopenharmony_ci Armada XP, Armada 375, Armada 38x and Armada 39x. 18762306a36Sopenharmony_ci 18862306a36Sopenharmony_ciconfig PCIE_MEDIATEK 18962306a36Sopenharmony_ci tristate "MediaTek PCIe controller" 19062306a36Sopenharmony_ci depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST 19162306a36Sopenharmony_ci depends on OF 19262306a36Sopenharmony_ci depends on PCI_MSI 19362306a36Sopenharmony_ci help 19462306a36Sopenharmony_ci Say Y here if you want to enable PCIe controller support on 19562306a36Sopenharmony_ci MediaTek SoCs. 19662306a36Sopenharmony_ci 19762306a36Sopenharmony_ciconfig PCIE_MEDIATEK_GEN3 19862306a36Sopenharmony_ci tristate "MediaTek Gen3 PCIe controller" 19962306a36Sopenharmony_ci depends on ARCH_MEDIATEK || COMPILE_TEST 20062306a36Sopenharmony_ci depends on PCI_MSI 20162306a36Sopenharmony_ci help 20262306a36Sopenharmony_ci Adds support for PCIe Gen3 MAC controller for MediaTek SoCs. 20362306a36Sopenharmony_ci This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed, 20462306a36Sopenharmony_ci and support up to 256 MSI interrupt numbers for 20562306a36Sopenharmony_ci multi-function devices. 20662306a36Sopenharmony_ci 20762306a36Sopenharmony_ci Say Y here if you want to enable Gen3 PCIe controller support on 20862306a36Sopenharmony_ci MediaTek SoCs. 20962306a36Sopenharmony_ci 21062306a36Sopenharmony_ciconfig PCIE_MT7621 21162306a36Sopenharmony_ci tristate "MediaTek MT7621 PCIe controller" 21262306a36Sopenharmony_ci depends on SOC_MT7621 || COMPILE_TEST 21362306a36Sopenharmony_ci select PHY_MT7621_PCI 21462306a36Sopenharmony_ci default SOC_MT7621 21562306a36Sopenharmony_ci help 21662306a36Sopenharmony_ci This selects a driver for the MediaTek MT7621 PCIe Controller. 21762306a36Sopenharmony_ci 21862306a36Sopenharmony_ciconfig PCIE_MICROCHIP_HOST 21962306a36Sopenharmony_ci tristate "Microchip AXI PCIe controller" 22062306a36Sopenharmony_ci depends on PCI_MSI && OF 22162306a36Sopenharmony_ci select PCI_HOST_COMMON 22262306a36Sopenharmony_ci help 22362306a36Sopenharmony_ci Say Y here if you want kernel to support the Microchip AXI PCIe 22462306a36Sopenharmony_ci Host Bridge driver. 22562306a36Sopenharmony_ci 22662306a36Sopenharmony_ciconfig PCI_HYPERV_INTERFACE 22762306a36Sopenharmony_ci tristate "Microsoft Hyper-V PCI Interface" 22862306a36Sopenharmony_ci depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI 22962306a36Sopenharmony_ci help 23062306a36Sopenharmony_ci The Hyper-V PCI Interface is a helper driver that allows other 23162306a36Sopenharmony_ci drivers to have a common interface with the Hyper-V PCI frontend 23262306a36Sopenharmony_ci driver. 23362306a36Sopenharmony_ci 23462306a36Sopenharmony_ciconfig PCI_TEGRA 23562306a36Sopenharmony_ci bool "NVIDIA Tegra PCIe controller" 23662306a36Sopenharmony_ci depends on ARCH_TEGRA || COMPILE_TEST 23762306a36Sopenharmony_ci depends on PCI_MSI 23862306a36Sopenharmony_ci help 23962306a36Sopenharmony_ci Say Y here if you want support for the PCIe host controller found 24062306a36Sopenharmony_ci on NVIDIA Tegra SoCs. 24162306a36Sopenharmony_ci 24262306a36Sopenharmony_ciconfig PCIE_RCAR_HOST 24362306a36Sopenharmony_ci bool "Renesas R-Car PCIe controller (host mode)" 24462306a36Sopenharmony_ci depends on ARCH_RENESAS || COMPILE_TEST 24562306a36Sopenharmony_ci depends on PCI_MSI 24662306a36Sopenharmony_ci help 24762306a36Sopenharmony_ci Say Y here if you want PCIe controller support on R-Car SoCs in host 24862306a36Sopenharmony_ci mode. 24962306a36Sopenharmony_ci 25062306a36Sopenharmony_ciconfig PCIE_RCAR_EP 25162306a36Sopenharmony_ci bool "Renesas R-Car PCIe controller (endpoint mode)" 25262306a36Sopenharmony_ci depends on ARCH_RENESAS || COMPILE_TEST 25362306a36Sopenharmony_ci depends on PCI_ENDPOINT 25462306a36Sopenharmony_ci help 25562306a36Sopenharmony_ci Say Y here if you want PCIe controller support on R-Car SoCs in 25662306a36Sopenharmony_ci endpoint mode. 25762306a36Sopenharmony_ci 25862306a36Sopenharmony_ciconfig PCI_RCAR_GEN2 25962306a36Sopenharmony_ci bool "Renesas R-Car Gen2 Internal PCI controller" 26062306a36Sopenharmony_ci depends on ARCH_RENESAS || COMPILE_TEST 26162306a36Sopenharmony_ci depends on ARM 26262306a36Sopenharmony_ci help 26362306a36Sopenharmony_ci Say Y here if you want internal PCI support on R-Car Gen2 SoC. 26462306a36Sopenharmony_ci There are 3 internal PCI controllers available with a single 26562306a36Sopenharmony_ci built-in EHCI/OHCI host controller present on each one. 26662306a36Sopenharmony_ci 26762306a36Sopenharmony_ciconfig PCIE_ROCKCHIP 26862306a36Sopenharmony_ci bool 26962306a36Sopenharmony_ci depends on PCI 27062306a36Sopenharmony_ci 27162306a36Sopenharmony_ciconfig PCIE_ROCKCHIP_HOST 27262306a36Sopenharmony_ci tristate "Rockchip PCIe controller (host mode)" 27362306a36Sopenharmony_ci depends on ARCH_ROCKCHIP || COMPILE_TEST 27462306a36Sopenharmony_ci depends on OF 27562306a36Sopenharmony_ci depends on PCI_MSI 27662306a36Sopenharmony_ci select MFD_SYSCON 27762306a36Sopenharmony_ci select PCIE_ROCKCHIP 27862306a36Sopenharmony_ci help 27962306a36Sopenharmony_ci Say Y here if you want internal PCI support on Rockchip SoC. 28062306a36Sopenharmony_ci There is 1 internal PCIe port available to support GEN2 with 28162306a36Sopenharmony_ci 4 slots. 28262306a36Sopenharmony_ci 28362306a36Sopenharmony_ciconfig PCIE_ROCKCHIP_EP 28462306a36Sopenharmony_ci bool "Rockchip PCIe controller (endpoint mode)" 28562306a36Sopenharmony_ci depends on ARCH_ROCKCHIP || COMPILE_TEST 28662306a36Sopenharmony_ci depends on OF 28762306a36Sopenharmony_ci depends on PCI_ENDPOINT 28862306a36Sopenharmony_ci select MFD_SYSCON 28962306a36Sopenharmony_ci select PCIE_ROCKCHIP 29062306a36Sopenharmony_ci help 29162306a36Sopenharmony_ci Say Y here if you want to support Rockchip PCIe controller in 29262306a36Sopenharmony_ci endpoint mode on Rockchip SoC. There is 1 internal PCIe port 29362306a36Sopenharmony_ci available to support GEN2 with 4 slots. 29462306a36Sopenharmony_ci 29562306a36Sopenharmony_ciconfig PCI_V3_SEMI 29662306a36Sopenharmony_ci bool "V3 Semiconductor PCI controller" 29762306a36Sopenharmony_ci depends on OF 29862306a36Sopenharmony_ci depends on ARM || COMPILE_TEST 29962306a36Sopenharmony_ci default ARCH_INTEGRATOR_AP 30062306a36Sopenharmony_ci 30162306a36Sopenharmony_ciconfig PCI_XGENE 30262306a36Sopenharmony_ci bool "X-Gene PCIe controller" 30362306a36Sopenharmony_ci depends on ARM64 || COMPILE_TEST 30462306a36Sopenharmony_ci depends on OF || (ACPI && PCI_QUIRKS) 30562306a36Sopenharmony_ci help 30662306a36Sopenharmony_ci Say Y here if you want internal PCI support on APM X-Gene SoC. 30762306a36Sopenharmony_ci There are 5 internal PCIe ports available. Each port is GEN3 capable 30862306a36Sopenharmony_ci and have varied lanes from x1 to x8. 30962306a36Sopenharmony_ci 31062306a36Sopenharmony_ciconfig PCI_XGENE_MSI 31162306a36Sopenharmony_ci bool "X-Gene v1 PCIe MSI feature" 31262306a36Sopenharmony_ci depends on PCI_XGENE 31362306a36Sopenharmony_ci depends on PCI_MSI 31462306a36Sopenharmony_ci default y 31562306a36Sopenharmony_ci help 31662306a36Sopenharmony_ci Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC. 31762306a36Sopenharmony_ci This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC. 31862306a36Sopenharmony_ci 31962306a36Sopenharmony_ciconfig PCIE_XILINX 32062306a36Sopenharmony_ci bool "Xilinx AXI PCIe controller" 32162306a36Sopenharmony_ci depends on OF 32262306a36Sopenharmony_ci depends on PCI_MSI 32362306a36Sopenharmony_ci help 32462306a36Sopenharmony_ci Say 'Y' here if you want kernel to support the Xilinx AXI PCIe 32562306a36Sopenharmony_ci Host Bridge driver. 32662306a36Sopenharmony_ci 32762306a36Sopenharmony_ciconfig PCIE_XILINX_NWL 32862306a36Sopenharmony_ci bool "Xilinx NWL PCIe controller" 32962306a36Sopenharmony_ci depends on ARCH_ZYNQMP || COMPILE_TEST 33062306a36Sopenharmony_ci depends on PCI_MSI 33162306a36Sopenharmony_ci help 33262306a36Sopenharmony_ci Say 'Y' here if you want kernel support for Xilinx 33362306a36Sopenharmony_ci NWL PCIe controller. The controller can act as Root Port 33462306a36Sopenharmony_ci or End Point. The current option selection will only 33562306a36Sopenharmony_ci support root port enabling. 33662306a36Sopenharmony_ci 33762306a36Sopenharmony_ciconfig PCIE_XILINX_CPM 33862306a36Sopenharmony_ci bool "Xilinx Versal CPM PCI controller" 33962306a36Sopenharmony_ci depends on ARCH_ZYNQMP || COMPILE_TEST 34062306a36Sopenharmony_ci select PCI_HOST_COMMON 34162306a36Sopenharmony_ci help 34262306a36Sopenharmony_ci Say 'Y' here if you want kernel support for the 34362306a36Sopenharmony_ci Xilinx Versal CPM host bridge. 34462306a36Sopenharmony_ci 34562306a36Sopenharmony_cisource "drivers/pci/controller/cadence/Kconfig" 34662306a36Sopenharmony_cisource "drivers/pci/controller/dwc/Kconfig" 34762306a36Sopenharmony_cisource "drivers/pci/controller/mobiveil/Kconfig" 34862306a36Sopenharmony_ciendmenu 349