16e0832faSShawn Lin# SPDX-License-Identifier: GPL-2.0 26e0832faSShawn Lin 36e0832faSShawn Linmenu "PCI controller drivers" 46e0832faSShawn Lin depends on PCI 56e0832faSShawn Lin 66e0832faSShawn Linconfig PCI_MVEBU 76e0832faSShawn Lin bool "Marvell EBU PCIe controller" 86e0832faSShawn Lin depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST 96e0832faSShawn Lin depends on MVEBU_MBUS 106e0832faSShawn Lin depends on ARM 116e0832faSShawn Lin depends on OF 121f08673eSThomas Petazzoni select PCI_BRIDGE_EMUL 136e0832faSShawn Lin 146e0832faSShawn Linconfig PCI_AARDVARK 15526a7699SPali Rohár tristate "Aardvark PCIe controller" 166e0832faSShawn Lin depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST 176e0832faSShawn Lin depends on OF 186e0832faSShawn Lin depends on PCI_MSI_IRQ_DOMAIN 198a3ebd8dSZachary Zhang select PCI_BRIDGE_EMUL 206e0832faSShawn Lin help 216e0832faSShawn Lin Add support for Aardvark 64bit PCIe Host Controller. This 226e0832faSShawn Lin controller is part of the South Bridge of the Marvel Armada 236e0832faSShawn Lin 3700 SoC. 246e0832faSShawn Lin 256e0832faSShawn Linconfig PCIE_XILINX_NWL 266e0832faSShawn Lin bool "NWL PCIe Core" 276e0832faSShawn Lin depends on ARCH_ZYNQMP || COMPILE_TEST 286e0832faSShawn Lin depends on PCI_MSI_IRQ_DOMAIN 296e0832faSShawn Lin help 306e0832faSShawn Lin Say 'Y' here if you want kernel support for Xilinx 316e0832faSShawn Lin NWL PCIe controller. The controller can act as Root Port 326e0832faSShawn Lin or End Point. The current option selection will only 336e0832faSShawn Lin support root port enabling. 346e0832faSShawn Lin 356e0832faSShawn Linconfig PCI_FTPCI100 366e0832faSShawn Lin bool "Faraday Technology FTPCI100 PCI controller" 376e0832faSShawn Lin depends on OF 386e0832faSShawn Lin default ARCH_GEMINI 396e0832faSShawn Lin 40f7821b49SLinus Walleijconfig PCI_IXP4XX 41f7821b49SLinus Walleij bool "Intel IXP4xx PCI controller" 42f7821b49SLinus Walleij depends on ARM && OF 439f1168cfSGeert Uytterhoeven depends on ARCH_IXP4XX || COMPILE_TEST 44f7821b49SLinus Walleij default ARCH_IXP4XX 45f7821b49SLinus Walleij help 46f7821b49SLinus Walleij Say Y here if you want support for the PCI host controller found 47f7821b49SLinus Walleij in the Intel IXP4xx XScale-based network processor SoC. 48f7821b49SLinus Walleij 496e0832faSShawn Linconfig PCI_TEGRA 506e0832faSShawn Lin bool "NVIDIA Tegra PCIe controller" 516e0832faSShawn Lin depends on ARCH_TEGRA || COMPILE_TEST 526e0832faSShawn Lin depends on PCI_MSI_IRQ_DOMAIN 536e0832faSShawn Lin help 546e0832faSShawn Lin Say Y here if you want support for the PCIe host controller found 556e0832faSShawn Lin on NVIDIA Tegra SoCs. 566e0832faSShawn Lin 576e0832faSShawn Linconfig PCI_RCAR_GEN2 586e0832faSShawn Lin bool "Renesas R-Car Gen2 Internal PCI controller" 596e0832faSShawn Lin depends on ARCH_RENESAS || COMPILE_TEST 606e0832faSShawn Lin depends on ARM 616e0832faSShawn Lin help 626e0832faSShawn Lin Say Y here if you want internal PCI support on R-Car Gen2 SoC. 636e0832faSShawn Lin There are 3 internal PCI controllers available with a single 646e0832faSShawn Lin built-in EHCI/OHCI host controller present on each one. 656e0832faSShawn Lin 66a18f4b6eSLad Prabhakarconfig PCIE_RCAR_HOST 67a18f4b6eSLad Prabhakar bool "Renesas R-Car PCIe host controller" 68a18f4b6eSLad Prabhakar depends on ARCH_RENESAS || COMPILE_TEST 69a18f4b6eSLad Prabhakar depends on PCI_MSI_IRQ_DOMAIN 70a18f4b6eSLad Prabhakar help 71a18f4b6eSLad Prabhakar Say Y here if you want PCIe controller support on R-Car SoCs in host 72a18f4b6eSLad Prabhakar mode. 736e0832faSShawn Lin 742a6d0d63SLad Prabhakarconfig PCIE_RCAR_EP 752a6d0d63SLad Prabhakar bool "Renesas R-Car PCIe endpoint controller" 762a6d0d63SLad Prabhakar depends on ARCH_RENESAS || COMPILE_TEST 772a6d0d63SLad Prabhakar depends on PCI_ENDPOINT 782a6d0d63SLad Prabhakar help 792a6d0d63SLad Prabhakar Say Y here if you want PCIe controller support on R-Car SoCs in 802a6d0d63SLad Prabhakar endpoint mode. 816e0832faSShawn Lin 826e0832faSShawn Linconfig PCI_HOST_COMMON 830c59c06aSRob Herring tristate 846e0832faSShawn Lin select PCI_ECAM 856e0832faSShawn Lin 866e0832faSShawn Linconfig PCI_HOST_GENERIC 870c59c06aSRob Herring tristate "Generic PCI host controller" 886e0832faSShawn Lin depends on OF 896e0832faSShawn Lin select PCI_HOST_COMMON 906e0832faSShawn Lin select IRQ_DOMAIN 916e0832faSShawn Lin help 926e0832faSShawn Lin Say Y here if you want to support a simple generic PCI host 936e0832faSShawn Lin controller, such as the one emulated by kvmtool. 946e0832faSShawn Lin 956e0832faSShawn Linconfig PCIE_XILINX 966e0832faSShawn Lin bool "Xilinx AXI PCIe host bridge support" 9734dbc9c6SChristoph Hellwig depends on OF || COMPILE_TEST 98313b64c3SMarc Zyngier depends on PCI_MSI_IRQ_DOMAIN 996e0832faSShawn Lin help 1006e0832faSShawn Lin Say 'Y' here if you want kernel to support the Xilinx AXI PCIe 1016e0832faSShawn Lin Host Bridge driver. 1026e0832faSShawn Lin 103508f6106SBharat Kumar Gogadaconfig PCIE_XILINX_CPM 104508f6106SBharat Kumar Gogada bool "Xilinx Versal CPM host bridge support" 105508f6106SBharat Kumar Gogada depends on ARCH_ZYNQMP || COMPILE_TEST 106508f6106SBharat Kumar Gogada select PCI_HOST_COMMON 107508f6106SBharat Kumar Gogada help 108508f6106SBharat Kumar Gogada Say 'Y' here if you want kernel support for the 109508f6106SBharat Kumar Gogada Xilinx Versal CPM host bridge. 110508f6106SBharat Kumar Gogada 1116e0832faSShawn Linconfig PCI_XGENE 1126e0832faSShawn Lin bool "X-Gene PCIe controller" 1136e0832faSShawn Lin depends on ARM64 || COMPILE_TEST 1146e0832faSShawn Lin depends on OF || (ACPI && PCI_QUIRKS) 1156e0832faSShawn Lin help 1166e0832faSShawn Lin Say Y here if you want internal PCI support on APM X-Gene SoC. 1176e0832faSShawn Lin There are 5 internal PCIe ports available. Each port is GEN3 capable 1186e0832faSShawn Lin and have varied lanes from x1 to x8. 1196e0832faSShawn Lin 1206e0832faSShawn Linconfig PCI_XGENE_MSI 1216e0832faSShawn Lin bool "X-Gene v1 PCIe MSI feature" 1226e0832faSShawn Lin depends on PCI_XGENE 1236e0832faSShawn Lin depends on PCI_MSI_IRQ_DOMAIN 1246e0832faSShawn Lin default y 1256e0832faSShawn Lin help 1266e0832faSShawn Lin Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC. 1276e0832faSShawn Lin This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC. 1286e0832faSShawn Lin 1296e0832faSShawn Linconfig PCI_V3_SEMI 1306e0832faSShawn Lin bool "V3 Semiconductor PCI controller" 1316e0832faSShawn Lin depends on OF 1326e0832faSShawn Lin depends on ARM || COMPILE_TEST 1336e0832faSShawn Lin default ARCH_INTEGRATOR_AP 1346e0832faSShawn Lin 1356e0832faSShawn Linconfig PCI_VERSATILE 1366e0832faSShawn Lin bool "ARM Versatile PB PCI controller" 137ecf8fd6dSRob Herring depends on ARCH_VERSATILE || COMPILE_TEST 1386e0832faSShawn Lin 1396e0832faSShawn Linconfig PCIE_IPROC 1406e0832faSShawn Lin tristate 1416e0832faSShawn Lin help 1426e0832faSShawn Lin This enables the iProc PCIe core controller support for Broadcom's 1436e0832faSShawn Lin iProc family of SoCs. An appropriate bus interface driver needs 1446e0832faSShawn Lin to be enabled to select this. 1456e0832faSShawn Lin 1466e0832faSShawn Linconfig PCIE_IPROC_PLATFORM 1476e0832faSShawn Lin tristate "Broadcom iProc PCIe platform bus driver" 1486e0832faSShawn Lin depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST) 1496e0832faSShawn Lin depends on OF 1506e0832faSShawn Lin select PCIE_IPROC 1516e0832faSShawn Lin default ARCH_BCM_IPROC 1526e0832faSShawn Lin help 1536e0832faSShawn Lin Say Y here if you want to use the Broadcom iProc PCIe controller 1546e0832faSShawn Lin through the generic platform bus interface 1556e0832faSShawn Lin 1566e0832faSShawn Linconfig PCIE_IPROC_BCMA 1576e0832faSShawn Lin tristate "Broadcom iProc PCIe BCMA bus driver" 1586e0832faSShawn Lin depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST) 1596e0832faSShawn Lin select PCIE_IPROC 1606e0832faSShawn Lin select BCMA 1616e0832faSShawn Lin default ARCH_BCM_5301X 1626e0832faSShawn Lin help 1636e0832faSShawn Lin Say Y here if you want to use the Broadcom iProc PCIe controller 1646e0832faSShawn Lin through the BCMA bus interface 1656e0832faSShawn Lin 1666e0832faSShawn Linconfig PCIE_IPROC_MSI 1676e0832faSShawn Lin bool "Broadcom iProc PCIe MSI support" 1686e0832faSShawn Lin depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA 1696e0832faSShawn Lin depends on PCI_MSI_IRQ_DOMAIN 1706e0832faSShawn Lin default ARCH_BCM_IPROC 1716e0832faSShawn Lin help 1726e0832faSShawn Lin Say Y here if you want to enable MSI support for Broadcom's iProc 1736e0832faSShawn Lin PCIe controller 1746e0832faSShawn Lin 1756e0832faSShawn Linconfig PCIE_ALTERA 176ec15c4d0SLey Foon Tan tristate "Altera PCIe controller" 1775fd831cdSLey Foon Tan depends on ARM || NIOS2 || ARM64 || COMPILE_TEST 1786e0832faSShawn Lin help 1796e0832faSShawn Lin Say Y here if you want to enable PCIe controller support on Altera 1806e0832faSShawn Lin FPGA. 1816e0832faSShawn Lin 1826e0832faSShawn Linconfig PCIE_ALTERA_MSI 183c7ddfd35SLey Foon Tan tristate "Altera PCIe MSI feature" 1846e0832faSShawn Lin depends on PCIE_ALTERA 1856e0832faSShawn Lin depends on PCI_MSI_IRQ_DOMAIN 1866e0832faSShawn Lin help 1876e0832faSShawn Lin Say Y here if you want PCIe MSI support for the Altera FPGA. 1886e0832faSShawn Lin This MSI driver supports Altera MSI to GIC controller IP. 1896e0832faSShawn Lin 1906e0832faSShawn Linconfig PCI_HOST_THUNDER_PEM 1916e0832faSShawn Lin bool "Cavium Thunder PCIe controller to off-chip devices" 1926e0832faSShawn Lin depends on ARM64 || COMPILE_TEST 1936e0832faSShawn Lin depends on OF || (ACPI && PCI_QUIRKS) 1946e0832faSShawn Lin select PCI_HOST_COMMON 1956e0832faSShawn Lin help 1966e0832faSShawn Lin Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs. 1976e0832faSShawn Lin 1986e0832faSShawn Linconfig PCI_HOST_THUNDER_ECAM 1996e0832faSShawn Lin bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon" 2006e0832faSShawn Lin depends on ARM64 || COMPILE_TEST 2016e0832faSShawn Lin depends on OF || (ACPI && PCI_QUIRKS) 2026e0832faSShawn Lin select PCI_HOST_COMMON 2036e0832faSShawn Lin help 2046e0832faSShawn Lin Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs. 2056e0832faSShawn Lin 2066e0832faSShawn Linconfig PCIE_ROCKCHIP 2076e0832faSShawn Lin bool 2086e0832faSShawn Lin depends on PCI 2096e0832faSShawn Lin 2106e0832faSShawn Linconfig PCIE_ROCKCHIP_HOST 2116e0832faSShawn Lin tristate "Rockchip PCIe host controller" 2126e0832faSShawn Lin depends on ARCH_ROCKCHIP || COMPILE_TEST 2136e0832faSShawn Lin depends on OF 2146e0832faSShawn Lin depends on PCI_MSI_IRQ_DOMAIN 2156e0832faSShawn Lin select MFD_SYSCON 2166e0832faSShawn Lin select PCIE_ROCKCHIP 2176e0832faSShawn Lin help 2186e0832faSShawn Lin Say Y here if you want internal PCI support on Rockchip SoC. 2196e0832faSShawn Lin There is 1 internal PCIe port available to support GEN2 with 2206e0832faSShawn Lin 4 slots. 2216e0832faSShawn Lin 2226e0832faSShawn Linconfig PCIE_ROCKCHIP_EP 2236e0832faSShawn Lin bool "Rockchip PCIe endpoint controller" 2246e0832faSShawn Lin depends on ARCH_ROCKCHIP || COMPILE_TEST 2256e0832faSShawn Lin depends on OF 2266e0832faSShawn Lin depends on PCI_ENDPOINT 2276e0832faSShawn Lin select MFD_SYSCON 2286e0832faSShawn Lin select PCIE_ROCKCHIP 2296e0832faSShawn Lin help 2306e0832faSShawn Lin Say Y here if you want to support Rockchip PCIe controller in 2316e0832faSShawn Lin endpoint mode on Rockchip SoC. There is 1 internal PCIe port 2326e0832faSShawn Lin available to support GEN2 with 4 slots. 2336e0832faSShawn Lin 2346e0832faSShawn Linconfig PCIE_MEDIATEK 235031337acSHonghui Zhang tristate "MediaTek PCIe controller" 2366e0832faSShawn Lin depends on ARCH_MEDIATEK || COMPILE_TEST 2376e0832faSShawn Lin depends on OF 2386e0832faSShawn Lin depends on PCI_MSI_IRQ_DOMAIN 2396e0832faSShawn Lin help 2406e0832faSShawn Lin Say Y here if you want to enable PCIe controller support on 2416e0832faSShawn Lin MediaTek SoCs. 2426e0832faSShawn Lin 243d3bf75b5SJianjun Wangconfig PCIE_MEDIATEK_GEN3 244d3bf75b5SJianjun Wang tristate "MediaTek Gen3 PCIe controller" 245d3bf75b5SJianjun Wang depends on ARCH_MEDIATEK || COMPILE_TEST 246d3bf75b5SJianjun Wang depends on PCI_MSI_IRQ_DOMAIN 247d3bf75b5SJianjun Wang help 248d3bf75b5SJianjun Wang Adds support for PCIe Gen3 MAC controller for MediaTek SoCs. 249d3bf75b5SJianjun Wang This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed, 250d3bf75b5SJianjun Wang and support up to 256 MSI interrupt numbers for 251d3bf75b5SJianjun Wang multi-function devices. 252d3bf75b5SJianjun Wang 253d3bf75b5SJianjun Wang Say Y here if you want to enable Gen3 PCIe controller support on 254d3bf75b5SJianjun Wang MediaTek SoCs. 255d3bf75b5SJianjun Wang 2566e0832faSShawn Linconfig VMD 2576e0832faSShawn Lin depends on PCI_MSI && X86_64 && SRCU 2586e0832faSShawn Lin tristate "Intel Volume Management Device Driver" 259a7f7f624SMasahiro Yamada help 2606e0832faSShawn Lin Adds support for the Intel Volume Management Device (VMD). VMD is a 2616e0832faSShawn Lin secondary PCI host bridge that allows PCI Express root ports, 2626e0832faSShawn Lin and devices attached to them, to be removed from the default 2636e0832faSShawn Lin PCI domain and placed within the VMD domain. This provides 2646e0832faSShawn Lin more bus resources than are otherwise possible with a 2656e0832faSShawn Lin single domain. If you know your system provides one of these and 2666e0832faSShawn Lin has devices attached to it, say Y; if you are not sure, say N. 2676e0832faSShawn Lin 2686e0832faSShawn Lin To compile this driver as a module, choose M here: the 2696e0832faSShawn Lin module will be called vmd. 2706e0832faSShawn Lin 271c0452137SJim Quinlanconfig PCIE_BRCMSTB 272c0452137SJim Quinlan tristate "Broadcom Brcmstb PCIe host controller" 2730cdfacebSRafał Miłecki depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCM4908 || COMPILE_TEST 274c0452137SJim Quinlan depends on OF 27540ca1bf5SJim Quinlan depends on PCI_MSI_IRQ_DOMAIN 276b927ad34SJim Quinlan default ARCH_BRCMSTB 277c0452137SJim Quinlan help 278c0452137SJim Quinlan Say Y here to enable PCIe host controller support for 279c0452137SJim Quinlan Broadcom STB based SoCs, like the Raspberry Pi 4. 280c0452137SJim Quinlan 281348dd93eSHaiyang Zhangconfig PCI_HYPERV_INTERFACE 282348dd93eSHaiyang Zhang tristate "Hyper-V PCI Interface" 283348dd93eSHaiyang Zhang depends on X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64 284348dd93eSHaiyang Zhang help 285348dd93eSHaiyang Zhang The Hyper-V PCI Interface is a helper driver allows other drivers to 286348dd93eSHaiyang Zhang have a common interface with the Hyper-V PCI frontend driver. 287348dd93eSHaiyang Zhang 2881f58cca5SJiaxun Yangconfig PCI_LOONGSON 2891f58cca5SJiaxun Yang bool "LOONGSON PCI Controller" 2901f58cca5SJiaxun Yang depends on MACH_LOONGSON64 || COMPILE_TEST 2911f58cca5SJiaxun Yang depends on OF 2921f58cca5SJiaxun Yang depends on PCI_QUIRKS 2931f58cca5SJiaxun Yang default MACH_LOONGSON64 2941f58cca5SJiaxun Yang help 2951f58cca5SJiaxun Yang Say Y here if you want to enable PCI controller support on 2961f58cca5SJiaxun Yang Loongson systems. 2971f58cca5SJiaxun Yang 2986f15a9c9SDaire McNamaraconfig PCIE_MICROCHIP_HOST 2996f15a9c9SDaire McNamara bool "Microchip AXI PCIe host bridge support" 3006f15a9c9SDaire McNamara depends on PCI_MSI && OF 3016f15a9c9SDaire McNamara select PCI_MSI_IRQ_DOMAIN 3026f15a9c9SDaire McNamara select GENERIC_MSI_IRQ_DOMAIN 3036f15a9c9SDaire McNamara select PCI_HOST_COMMON 3046f15a9c9SDaire McNamara help 3056f15a9c9SDaire McNamara Say Y here if you want kernel to support the Microchip AXI PCIe 3066f15a9c9SDaire McNamara Host Bridge driver. 3076f15a9c9SDaire McNamara 308acb52897SYicong Yangconfig PCIE_HISI_ERR 309acb52897SYicong Yang depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST) 310acb52897SYicong Yang bool "HiSilicon HIP PCIe controller error handling driver" 311acb52897SYicong Yang help 312acb52897SYicong Yang Say Y here if you want error handling support 313acb52897SYicong Yang for the PCIe controller's errors on HiSilicon HIP SoCs 314acb52897SYicong Yang 315*1e33888fSAlyssa Rosenzweigconfig PCIE_APPLE 316*1e33888fSAlyssa Rosenzweig tristate "Apple PCIe controller" 317*1e33888fSAlyssa Rosenzweig depends on ARCH_APPLE || COMPILE_TEST 318*1e33888fSAlyssa Rosenzweig depends on OF 319*1e33888fSAlyssa Rosenzweig depends on PCI_MSI_IRQ_DOMAIN 320*1e33888fSAlyssa Rosenzweig select PCI_HOST_COMMON 321*1e33888fSAlyssa Rosenzweig help 322*1e33888fSAlyssa Rosenzweig Say Y here if you want to enable PCIe controller support on Apple 323*1e33888fSAlyssa Rosenzweig system-on-chips, like the Apple M1. This is required for the USB 324*1e33888fSAlyssa Rosenzweig type-A ports, Ethernet, Wi-Fi, and Bluetooth. 325*1e33888fSAlyssa Rosenzweig 326*1e33888fSAlyssa Rosenzweig If unsure, say Y if you have an Apple Silicon system. 327*1e33888fSAlyssa Rosenzweig 3286e0832faSShawn Linsource "drivers/pci/controller/dwc/Kconfig" 32903bdc388SHou Zhiqiangsource "drivers/pci/controller/mobiveil/Kconfig" 330de80f95cSTom Josephsource "drivers/pci/controller/cadence/Kconfig" 3316e0832faSShawn Linendmenu 332