18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_cimenu "PCI controller drivers" 48c2ecf20Sopenharmony_ci depends on PCI 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ciconfig PCI_MVEBU 78c2ecf20Sopenharmony_ci bool "Marvell EBU PCIe controller" 88c2ecf20Sopenharmony_ci depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST 98c2ecf20Sopenharmony_ci depends on MVEBU_MBUS 108c2ecf20Sopenharmony_ci depends on ARM 118c2ecf20Sopenharmony_ci depends on OF 128c2ecf20Sopenharmony_ci select PCI_BRIDGE_EMUL 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ciconfig PCI_AARDVARK 158c2ecf20Sopenharmony_ci tristate "Aardvark PCIe controller" 168c2ecf20Sopenharmony_ci depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST 178c2ecf20Sopenharmony_ci depends on OF 188c2ecf20Sopenharmony_ci depends on PCI_MSI_IRQ_DOMAIN 198c2ecf20Sopenharmony_ci select PCI_BRIDGE_EMUL 208c2ecf20Sopenharmony_ci help 218c2ecf20Sopenharmony_ci Add support for Aardvark 64bit PCIe Host Controller. This 228c2ecf20Sopenharmony_ci controller is part of the South Bridge of the Marvel Armada 238c2ecf20Sopenharmony_ci 3700 SoC. 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ciconfig PCIE_XILINX_NWL 268c2ecf20Sopenharmony_ci bool "NWL PCIe Core" 278c2ecf20Sopenharmony_ci depends on ARCH_ZYNQMP || COMPILE_TEST 288c2ecf20Sopenharmony_ci depends on PCI_MSI_IRQ_DOMAIN 298c2ecf20Sopenharmony_ci help 308c2ecf20Sopenharmony_ci Say 'Y' here if you want kernel support for Xilinx 318c2ecf20Sopenharmony_ci NWL PCIe controller. The controller can act as Root Port 328c2ecf20Sopenharmony_ci or End Point. The current option selection will only 338c2ecf20Sopenharmony_ci support root port enabling. 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ciconfig PCI_FTPCI100 368c2ecf20Sopenharmony_ci bool "Faraday Technology FTPCI100 PCI controller" 378c2ecf20Sopenharmony_ci depends on OF 388c2ecf20Sopenharmony_ci default ARCH_GEMINI 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ciconfig PCI_TEGRA 418c2ecf20Sopenharmony_ci bool "NVIDIA Tegra PCIe controller" 428c2ecf20Sopenharmony_ci depends on ARCH_TEGRA || COMPILE_TEST 438c2ecf20Sopenharmony_ci depends on PCI_MSI_IRQ_DOMAIN 448c2ecf20Sopenharmony_ci select PCI_MSI_ARCH_FALLBACKS 458c2ecf20Sopenharmony_ci help 468c2ecf20Sopenharmony_ci Say Y here if you want support for the PCIe host controller found 478c2ecf20Sopenharmony_ci on NVIDIA Tegra SoCs. 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_ciconfig PCI_RCAR_GEN2 508c2ecf20Sopenharmony_ci bool "Renesas R-Car Gen2 Internal PCI controller" 518c2ecf20Sopenharmony_ci depends on ARCH_RENESAS || COMPILE_TEST 528c2ecf20Sopenharmony_ci depends on ARM 538c2ecf20Sopenharmony_ci help 548c2ecf20Sopenharmony_ci Say Y here if you want internal PCI support on R-Car Gen2 SoC. 558c2ecf20Sopenharmony_ci There are 3 internal PCI controllers available with a single 568c2ecf20Sopenharmony_ci built-in EHCI/OHCI host controller present on each one. 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ciconfig PCIE_RCAR 598c2ecf20Sopenharmony_ci bool "Renesas R-Car PCIe controller" 608c2ecf20Sopenharmony_ci depends on ARCH_RENESAS || COMPILE_TEST 618c2ecf20Sopenharmony_ci depends on PCI_MSI_IRQ_DOMAIN 628c2ecf20Sopenharmony_ci select PCIE_RCAR_HOST 638c2ecf20Sopenharmony_ci help 648c2ecf20Sopenharmony_ci Say Y here if you want PCIe controller support on R-Car SoCs. 658c2ecf20Sopenharmony_ci This option will be removed after arm64 defconfig is updated. 668c2ecf20Sopenharmony_ci 678c2ecf20Sopenharmony_ciconfig PCIE_RCAR_HOST 688c2ecf20Sopenharmony_ci bool "Renesas R-Car PCIe host controller" 698c2ecf20Sopenharmony_ci depends on ARCH_RENESAS || COMPILE_TEST 708c2ecf20Sopenharmony_ci depends on PCI_MSI_IRQ_DOMAIN 718c2ecf20Sopenharmony_ci select PCI_MSI_ARCH_FALLBACKS 728c2ecf20Sopenharmony_ci help 738c2ecf20Sopenharmony_ci Say Y here if you want PCIe controller support on R-Car SoCs in host 748c2ecf20Sopenharmony_ci mode. 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ciconfig PCIE_RCAR_EP 778c2ecf20Sopenharmony_ci bool "Renesas R-Car PCIe endpoint controller" 788c2ecf20Sopenharmony_ci depends on ARCH_RENESAS || COMPILE_TEST 798c2ecf20Sopenharmony_ci depends on PCI_ENDPOINT 808c2ecf20Sopenharmony_ci help 818c2ecf20Sopenharmony_ci Say Y here if you want PCIe controller support on R-Car SoCs in 828c2ecf20Sopenharmony_ci endpoint mode. 838c2ecf20Sopenharmony_ci 848c2ecf20Sopenharmony_ciconfig PCI_HOST_COMMON 858c2ecf20Sopenharmony_ci tristate 868c2ecf20Sopenharmony_ci select PCI_ECAM 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ciconfig PCI_HOST_GENERIC 898c2ecf20Sopenharmony_ci tristate "Generic PCI host controller" 908c2ecf20Sopenharmony_ci depends on OF 918c2ecf20Sopenharmony_ci select PCI_HOST_COMMON 928c2ecf20Sopenharmony_ci select IRQ_DOMAIN 938c2ecf20Sopenharmony_ci help 948c2ecf20Sopenharmony_ci Say Y here if you want to support a simple generic PCI host 958c2ecf20Sopenharmony_ci controller, such as the one emulated by kvmtool. 968c2ecf20Sopenharmony_ci 978c2ecf20Sopenharmony_ciconfig PCIE_XILINX 988c2ecf20Sopenharmony_ci bool "Xilinx AXI PCIe host bridge support" 998c2ecf20Sopenharmony_ci depends on OF || COMPILE_TEST 1008c2ecf20Sopenharmony_ci select PCI_MSI_ARCH_FALLBACKS 1018c2ecf20Sopenharmony_ci help 1028c2ecf20Sopenharmony_ci Say 'Y' here if you want kernel to support the Xilinx AXI PCIe 1038c2ecf20Sopenharmony_ci Host Bridge driver. 1048c2ecf20Sopenharmony_ci 1058c2ecf20Sopenharmony_ciconfig PCIE_XILINX_CPM 1068c2ecf20Sopenharmony_ci bool "Xilinx Versal CPM host bridge support" 1078c2ecf20Sopenharmony_ci depends on ARCH_ZYNQMP || COMPILE_TEST 1088c2ecf20Sopenharmony_ci select PCI_HOST_COMMON 1098c2ecf20Sopenharmony_ci help 1108c2ecf20Sopenharmony_ci Say 'Y' here if you want kernel support for the 1118c2ecf20Sopenharmony_ci Xilinx Versal CPM host bridge. 1128c2ecf20Sopenharmony_ci 1138c2ecf20Sopenharmony_ciconfig PCI_XGENE 1148c2ecf20Sopenharmony_ci bool "X-Gene PCIe controller" 1158c2ecf20Sopenharmony_ci depends on ARM64 || COMPILE_TEST 1168c2ecf20Sopenharmony_ci depends on OF || (ACPI && PCI_QUIRKS) 1178c2ecf20Sopenharmony_ci help 1188c2ecf20Sopenharmony_ci Say Y here if you want internal PCI support on APM X-Gene SoC. 1198c2ecf20Sopenharmony_ci There are 5 internal PCIe ports available. Each port is GEN3 capable 1208c2ecf20Sopenharmony_ci and have varied lanes from x1 to x8. 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ciconfig PCI_XGENE_MSI 1238c2ecf20Sopenharmony_ci bool "X-Gene v1 PCIe MSI feature" 1248c2ecf20Sopenharmony_ci depends on PCI_XGENE 1258c2ecf20Sopenharmony_ci depends on PCI_MSI_IRQ_DOMAIN 1268c2ecf20Sopenharmony_ci default y 1278c2ecf20Sopenharmony_ci help 1288c2ecf20Sopenharmony_ci Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC. 1298c2ecf20Sopenharmony_ci This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC. 1308c2ecf20Sopenharmony_ci 1318c2ecf20Sopenharmony_ciconfig PCI_V3_SEMI 1328c2ecf20Sopenharmony_ci bool "V3 Semiconductor PCI controller" 1338c2ecf20Sopenharmony_ci depends on OF 1348c2ecf20Sopenharmony_ci depends on ARM || COMPILE_TEST 1358c2ecf20Sopenharmony_ci default ARCH_INTEGRATOR_AP 1368c2ecf20Sopenharmony_ci 1378c2ecf20Sopenharmony_ciconfig PCI_VERSATILE 1388c2ecf20Sopenharmony_ci bool "ARM Versatile PB PCI controller" 1398c2ecf20Sopenharmony_ci depends on ARCH_VERSATILE || COMPILE_TEST 1408c2ecf20Sopenharmony_ci 1418c2ecf20Sopenharmony_ciconfig PCIE_IPROC 1428c2ecf20Sopenharmony_ci tristate 1438c2ecf20Sopenharmony_ci help 1448c2ecf20Sopenharmony_ci This enables the iProc PCIe core controller support for Broadcom's 1458c2ecf20Sopenharmony_ci iProc family of SoCs. An appropriate bus interface driver needs 1468c2ecf20Sopenharmony_ci to be enabled to select this. 1478c2ecf20Sopenharmony_ci 1488c2ecf20Sopenharmony_ciconfig PCIE_IPROC_PLATFORM 1498c2ecf20Sopenharmony_ci tristate "Broadcom iProc PCIe platform bus driver" 1508c2ecf20Sopenharmony_ci depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST) 1518c2ecf20Sopenharmony_ci depends on OF 1528c2ecf20Sopenharmony_ci select PCIE_IPROC 1538c2ecf20Sopenharmony_ci default ARCH_BCM_IPROC 1548c2ecf20Sopenharmony_ci help 1558c2ecf20Sopenharmony_ci Say Y here if you want to use the Broadcom iProc PCIe controller 1568c2ecf20Sopenharmony_ci through the generic platform bus interface 1578c2ecf20Sopenharmony_ci 1588c2ecf20Sopenharmony_ciconfig PCIE_IPROC_BCMA 1598c2ecf20Sopenharmony_ci tristate "Broadcom iProc PCIe BCMA bus driver" 1608c2ecf20Sopenharmony_ci depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST) 1618c2ecf20Sopenharmony_ci select PCIE_IPROC 1628c2ecf20Sopenharmony_ci select BCMA 1638c2ecf20Sopenharmony_ci default ARCH_BCM_5301X 1648c2ecf20Sopenharmony_ci help 1658c2ecf20Sopenharmony_ci Say Y here if you want to use the Broadcom iProc PCIe controller 1668c2ecf20Sopenharmony_ci through the BCMA bus interface 1678c2ecf20Sopenharmony_ci 1688c2ecf20Sopenharmony_ciconfig PCIE_IPROC_MSI 1698c2ecf20Sopenharmony_ci bool "Broadcom iProc PCIe MSI support" 1708c2ecf20Sopenharmony_ci depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA 1718c2ecf20Sopenharmony_ci depends on PCI_MSI_IRQ_DOMAIN 1728c2ecf20Sopenharmony_ci default ARCH_BCM_IPROC 1738c2ecf20Sopenharmony_ci help 1748c2ecf20Sopenharmony_ci Say Y here if you want to enable MSI support for Broadcom's iProc 1758c2ecf20Sopenharmony_ci PCIe controller 1768c2ecf20Sopenharmony_ci 1778c2ecf20Sopenharmony_ciconfig PCIE_ALTERA 1788c2ecf20Sopenharmony_ci tristate "Altera PCIe controller" 1798c2ecf20Sopenharmony_ci depends on ARM || NIOS2 || ARM64 || COMPILE_TEST 1808c2ecf20Sopenharmony_ci help 1818c2ecf20Sopenharmony_ci Say Y here if you want to enable PCIe controller support on Altera 1828c2ecf20Sopenharmony_ci FPGA. 1838c2ecf20Sopenharmony_ci 1848c2ecf20Sopenharmony_ciconfig PCIE_ALTERA_MSI 1858c2ecf20Sopenharmony_ci tristate "Altera PCIe MSI feature" 1868c2ecf20Sopenharmony_ci depends on PCIE_ALTERA 1878c2ecf20Sopenharmony_ci depends on PCI_MSI_IRQ_DOMAIN 1888c2ecf20Sopenharmony_ci help 1898c2ecf20Sopenharmony_ci Say Y here if you want PCIe MSI support for the Altera FPGA. 1908c2ecf20Sopenharmony_ci This MSI driver supports Altera MSI to GIC controller IP. 1918c2ecf20Sopenharmony_ci 1928c2ecf20Sopenharmony_ciconfig PCI_HOST_THUNDER_PEM 1938c2ecf20Sopenharmony_ci bool "Cavium Thunder PCIe controller to off-chip devices" 1948c2ecf20Sopenharmony_ci depends on ARM64 || COMPILE_TEST 1958c2ecf20Sopenharmony_ci depends on OF || (ACPI && PCI_QUIRKS) 1968c2ecf20Sopenharmony_ci select PCI_HOST_COMMON 1978c2ecf20Sopenharmony_ci help 1988c2ecf20Sopenharmony_ci Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs. 1998c2ecf20Sopenharmony_ci 2008c2ecf20Sopenharmony_ciconfig PCI_HOST_THUNDER_ECAM 2018c2ecf20Sopenharmony_ci bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon" 2028c2ecf20Sopenharmony_ci depends on ARM64 || COMPILE_TEST 2038c2ecf20Sopenharmony_ci depends on OF || (ACPI && PCI_QUIRKS) 2048c2ecf20Sopenharmony_ci select PCI_HOST_COMMON 2058c2ecf20Sopenharmony_ci help 2068c2ecf20Sopenharmony_ci Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs. 2078c2ecf20Sopenharmony_ci 2088c2ecf20Sopenharmony_ciconfig PCIE_ROCKCHIP 2098c2ecf20Sopenharmony_ci bool 2108c2ecf20Sopenharmony_ci depends on PCI 2118c2ecf20Sopenharmony_ci 2128c2ecf20Sopenharmony_ciconfig PCIE_ROCKCHIP_HOST 2138c2ecf20Sopenharmony_ci tristate "Rockchip PCIe host controller" 2148c2ecf20Sopenharmony_ci depends on ARCH_ROCKCHIP || COMPILE_TEST 2158c2ecf20Sopenharmony_ci depends on OF 2168c2ecf20Sopenharmony_ci depends on PCI_MSI_IRQ_DOMAIN 2178c2ecf20Sopenharmony_ci select MFD_SYSCON 2188c2ecf20Sopenharmony_ci select PCIE_ROCKCHIP 2198c2ecf20Sopenharmony_ci help 2208c2ecf20Sopenharmony_ci Say Y here if you want internal PCI support on Rockchip SoC. 2218c2ecf20Sopenharmony_ci There is 1 internal PCIe port available to support GEN2 with 2228c2ecf20Sopenharmony_ci 4 slots. 2238c2ecf20Sopenharmony_ci 2248c2ecf20Sopenharmony_ciconfig PCIE_ROCKCHIP_EP 2258c2ecf20Sopenharmony_ci bool "Rockchip PCIe endpoint controller" 2268c2ecf20Sopenharmony_ci depends on ARCH_ROCKCHIP || COMPILE_TEST 2278c2ecf20Sopenharmony_ci depends on OF 2288c2ecf20Sopenharmony_ci depends on PCI_ENDPOINT 2298c2ecf20Sopenharmony_ci select MFD_SYSCON 2308c2ecf20Sopenharmony_ci select PCIE_ROCKCHIP 2318c2ecf20Sopenharmony_ci help 2328c2ecf20Sopenharmony_ci Say Y here if you want to support Rockchip PCIe controller in 2338c2ecf20Sopenharmony_ci endpoint mode on Rockchip SoC. There is 1 internal PCIe port 2348c2ecf20Sopenharmony_ci available to support GEN2 with 4 slots. 2358c2ecf20Sopenharmony_ci 2368c2ecf20Sopenharmony_ciconfig PCIE_MEDIATEK 2378c2ecf20Sopenharmony_ci tristate "MediaTek PCIe controller" 2388c2ecf20Sopenharmony_ci depends on ARCH_MEDIATEK || COMPILE_TEST 2398c2ecf20Sopenharmony_ci depends on OF 2408c2ecf20Sopenharmony_ci depends on PCI_MSI_IRQ_DOMAIN 2418c2ecf20Sopenharmony_ci help 2428c2ecf20Sopenharmony_ci Say Y here if you want to enable PCIe controller support on 2438c2ecf20Sopenharmony_ci MediaTek SoCs. 2448c2ecf20Sopenharmony_ci 2458c2ecf20Sopenharmony_ciconfig PCIE_TANGO_SMP8759 2468c2ecf20Sopenharmony_ci bool "Tango SMP8759 PCIe controller (DANGEROUS)" 2478c2ecf20Sopenharmony_ci depends on ARCH_TANGO && PCI_MSI && OF 2488c2ecf20Sopenharmony_ci depends on BROKEN 2498c2ecf20Sopenharmony_ci select PCI_HOST_COMMON 2508c2ecf20Sopenharmony_ci help 2518c2ecf20Sopenharmony_ci Say Y here to enable PCIe controller support for Sigma Designs 2528c2ecf20Sopenharmony_ci Tango SMP8759-based systems. 2538c2ecf20Sopenharmony_ci 2548c2ecf20Sopenharmony_ci Note: The SMP8759 controller multiplexes PCI config and MMIO 2558c2ecf20Sopenharmony_ci accesses, and Linux doesn't provide a way to serialize them. 2568c2ecf20Sopenharmony_ci This can lead to data corruption if drivers perform concurrent 2578c2ecf20Sopenharmony_ci config and MMIO accesses. 2588c2ecf20Sopenharmony_ci 2598c2ecf20Sopenharmony_ciconfig VMD 2608c2ecf20Sopenharmony_ci depends on PCI_MSI && X86_64 && SRCU 2618c2ecf20Sopenharmony_ci tristate "Intel Volume Management Device Driver" 2628c2ecf20Sopenharmony_ci help 2638c2ecf20Sopenharmony_ci Adds support for the Intel Volume Management Device (VMD). VMD is a 2648c2ecf20Sopenharmony_ci secondary PCI host bridge that allows PCI Express root ports, 2658c2ecf20Sopenharmony_ci and devices attached to them, to be removed from the default 2668c2ecf20Sopenharmony_ci PCI domain and placed within the VMD domain. This provides 2678c2ecf20Sopenharmony_ci more bus resources than are otherwise possible with a 2688c2ecf20Sopenharmony_ci single domain. If you know your system provides one of these and 2698c2ecf20Sopenharmony_ci has devices attached to it, say Y; if you are not sure, say N. 2708c2ecf20Sopenharmony_ci 2718c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the 2728c2ecf20Sopenharmony_ci module will be called vmd. 2738c2ecf20Sopenharmony_ci 2748c2ecf20Sopenharmony_ciconfig PCIE_BRCMSTB 2758c2ecf20Sopenharmony_ci tristate "Broadcom Brcmstb PCIe host controller" 2768c2ecf20Sopenharmony_ci depends on ARCH_BRCMSTB || ARCH_BCM2835 || COMPILE_TEST 2778c2ecf20Sopenharmony_ci depends on OF 2788c2ecf20Sopenharmony_ci depends on PCI_MSI_IRQ_DOMAIN 2798c2ecf20Sopenharmony_ci default ARCH_BRCMSTB 2808c2ecf20Sopenharmony_ci help 2818c2ecf20Sopenharmony_ci Say Y here to enable PCIe host controller support for 2828c2ecf20Sopenharmony_ci Broadcom STB based SoCs, like the Raspberry Pi 4. 2838c2ecf20Sopenharmony_ci 2848c2ecf20Sopenharmony_ciconfig PCI_HYPERV_INTERFACE 2858c2ecf20Sopenharmony_ci tristate "Hyper-V PCI Interface" 2868c2ecf20Sopenharmony_ci depends on X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64 2878c2ecf20Sopenharmony_ci help 2888c2ecf20Sopenharmony_ci The Hyper-V PCI Interface is a helper driver allows other drivers to 2898c2ecf20Sopenharmony_ci have a common interface with the Hyper-V PCI frontend driver. 2908c2ecf20Sopenharmony_ci 2918c2ecf20Sopenharmony_ciconfig PCI_LOONGSON 2928c2ecf20Sopenharmony_ci bool "LOONGSON PCI Controller" 2938c2ecf20Sopenharmony_ci depends on MACH_LOONGSON64 || COMPILE_TEST 2948c2ecf20Sopenharmony_ci depends on OF || ACPI 2958c2ecf20Sopenharmony_ci depends on PCI_QUIRKS 2968c2ecf20Sopenharmony_ci default MACH_LOONGSON64 2978c2ecf20Sopenharmony_ci help 2988c2ecf20Sopenharmony_ci Say Y here if you want to enable PCI controller support on 2998c2ecf20Sopenharmony_ci Loongson systems. 3008c2ecf20Sopenharmony_ci 3018c2ecf20Sopenharmony_ciconfig PCIE_HISI_ERR 3028c2ecf20Sopenharmony_ci depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST) 3038c2ecf20Sopenharmony_ci bool "HiSilicon HIP PCIe controller error handling driver" 3048c2ecf20Sopenharmony_ci help 3058c2ecf20Sopenharmony_ci Say Y here if you want error handling support 3068c2ecf20Sopenharmony_ci for the PCIe controller's errors on HiSilicon HIP SoCs 3078c2ecf20Sopenharmony_ci 3088c2ecf20Sopenharmony_cisource "drivers/pci/controller/dwc/Kconfig" 3098c2ecf20Sopenharmony_cisource "drivers/pci/controller/mobiveil/Kconfig" 3108c2ecf20Sopenharmony_cisource "drivers/pci/controller/cadence/Kconfig" 3118c2ecf20Sopenharmony_ciendmenu 312