1# SPDX-License-Identifier: GPL-2.0 2 3menu "PCI controller drivers" 4 depends on PCI 5 6config PCI_MVEBU 7 bool "Marvell EBU PCIe controller" 8 depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST 9 depends on MVEBU_MBUS 10 depends on ARM 11 depends on OF 12 select PCI_BRIDGE_EMUL 13 14config PCI_AARDVARK 15 tristate "Aardvark PCIe controller" 16 depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST 17 depends on OF 18 depends on PCI_MSI_IRQ_DOMAIN 19 select PCI_BRIDGE_EMUL 20 help 21 Add support for Aardvark 64bit PCIe Host Controller. This 22 controller is part of the South Bridge of the Marvel Armada 23 3700 SoC. 24 25config PCIE_XILINX_NWL 26 bool "NWL PCIe Core" 27 depends on ARCH_ZYNQMP || COMPILE_TEST 28 depends on PCI_MSI_IRQ_DOMAIN 29 help 30 Say 'Y' here if you want kernel support for Xilinx 31 NWL PCIe controller. The controller can act as Root Port 32 or End Point. The current option selection will only 33 support root port enabling. 34 35config PCI_FTPCI100 36 bool "Faraday Technology FTPCI100 PCI controller" 37 depends on OF 38 default ARCH_GEMINI 39 40config PCI_TEGRA 41 bool "NVIDIA Tegra PCIe controller" 42 depends on ARCH_TEGRA || COMPILE_TEST 43 depends on PCI_MSI_IRQ_DOMAIN 44 select PCI_MSI_ARCH_FALLBACKS 45 help 46 Say Y here if you want support for the PCIe host controller found 47 on NVIDIA Tegra SoCs. 48 49config PCI_RCAR_GEN2 50 bool "Renesas R-Car Gen2 Internal PCI controller" 51 depends on ARCH_RENESAS || COMPILE_TEST 52 depends on ARM 53 help 54 Say Y here if you want internal PCI support on R-Car Gen2 SoC. 55 There are 3 internal PCI controllers available with a single 56 built-in EHCI/OHCI host controller present on each one. 57 58config PCIE_RCAR_HOST 59 bool "Renesas R-Car PCIe host controller" 60 depends on ARCH_RENESAS || COMPILE_TEST 61 depends on PCI_MSI_IRQ_DOMAIN 62 select PCI_MSI_ARCH_FALLBACKS 63 help 64 Say Y here if you want PCIe controller support on R-Car SoCs in host 65 mode. 66 67config PCIE_RCAR_EP 68 bool "Renesas R-Car PCIe endpoint controller" 69 depends on ARCH_RENESAS || COMPILE_TEST 70 depends on PCI_ENDPOINT 71 help 72 Say Y here if you want PCIe controller support on R-Car SoCs in 73 endpoint mode. 74 75config PCI_HOST_COMMON 76 tristate 77 select PCI_ECAM 78 79config PCI_HOST_GENERIC 80 tristate "Generic PCI host controller" 81 depends on OF 82 select PCI_HOST_COMMON 83 select IRQ_DOMAIN 84 help 85 Say Y here if you want to support a simple generic PCI host 86 controller, such as the one emulated by kvmtool. 87 88config PCIE_XILINX 89 bool "Xilinx AXI PCIe host bridge support" 90 depends on OF || COMPILE_TEST 91 select PCI_MSI_ARCH_FALLBACKS 92 help 93 Say 'Y' here if you want kernel to support the Xilinx AXI PCIe 94 Host Bridge driver. 95 96config PCIE_XILINX_CPM 97 bool "Xilinx Versal CPM host bridge support" 98 depends on ARCH_ZYNQMP || COMPILE_TEST 99 select PCI_HOST_COMMON 100 help 101 Say 'Y' here if you want kernel support for the 102 Xilinx Versal CPM host bridge. 103 104config PCI_XGENE 105 bool "X-Gene PCIe controller" 106 depends on ARM64 || COMPILE_TEST 107 depends on OF || (ACPI && PCI_QUIRKS) 108 help 109 Say Y here if you want internal PCI support on APM X-Gene SoC. 110 There are 5 internal PCIe ports available. Each port is GEN3 capable 111 and have varied lanes from x1 to x8. 112 113config PCI_XGENE_MSI 114 bool "X-Gene v1 PCIe MSI feature" 115 depends on PCI_XGENE 116 depends on PCI_MSI_IRQ_DOMAIN 117 default y 118 help 119 Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC. 120 This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC. 121 122config PCI_V3_SEMI 123 bool "V3 Semiconductor PCI controller" 124 depends on OF 125 depends on ARM || COMPILE_TEST 126 default ARCH_INTEGRATOR_AP 127 128config PCI_VERSATILE 129 bool "ARM Versatile PB PCI controller" 130 depends on ARCH_VERSATILE || COMPILE_TEST 131 132config PCIE_IPROC 133 tristate 134 help 135 This enables the iProc PCIe core controller support for Broadcom's 136 iProc family of SoCs. An appropriate bus interface driver needs 137 to be enabled to select this. 138 139config PCIE_IPROC_PLATFORM 140 tristate "Broadcom iProc PCIe platform bus driver" 141 depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST) 142 depends on OF 143 select PCIE_IPROC 144 default ARCH_BCM_IPROC 145 help 146 Say Y here if you want to use the Broadcom iProc PCIe controller 147 through the generic platform bus interface 148 149config PCIE_IPROC_BCMA 150 tristate "Broadcom iProc PCIe BCMA bus driver" 151 depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST) 152 select PCIE_IPROC 153 select BCMA 154 default ARCH_BCM_5301X 155 help 156 Say Y here if you want to use the Broadcom iProc PCIe controller 157 through the BCMA bus interface 158 159config PCIE_IPROC_MSI 160 bool "Broadcom iProc PCIe MSI support" 161 depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA 162 depends on PCI_MSI_IRQ_DOMAIN 163 default ARCH_BCM_IPROC 164 help 165 Say Y here if you want to enable MSI support for Broadcom's iProc 166 PCIe controller 167 168config PCIE_ALTERA 169 tristate "Altera PCIe controller" 170 depends on ARM || NIOS2 || ARM64 || COMPILE_TEST 171 help 172 Say Y here if you want to enable PCIe controller support on Altera 173 FPGA. 174 175config PCIE_ALTERA_MSI 176 tristate "Altera PCIe MSI feature" 177 depends on PCIE_ALTERA 178 depends on PCI_MSI_IRQ_DOMAIN 179 help 180 Say Y here if you want PCIe MSI support for the Altera FPGA. 181 This MSI driver supports Altera MSI to GIC controller IP. 182 183config PCI_HOST_THUNDER_PEM 184 bool "Cavium Thunder PCIe controller to off-chip devices" 185 depends on ARM64 || COMPILE_TEST 186 depends on OF || (ACPI && PCI_QUIRKS) 187 select PCI_HOST_COMMON 188 help 189 Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs. 190 191config PCI_HOST_THUNDER_ECAM 192 bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon" 193 depends on ARM64 || COMPILE_TEST 194 depends on OF || (ACPI && PCI_QUIRKS) 195 select PCI_HOST_COMMON 196 help 197 Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs. 198 199config PCIE_ROCKCHIP 200 bool 201 depends on PCI 202 203config PCIE_ROCKCHIP_HOST 204 tristate "Rockchip PCIe host controller" 205 depends on ARCH_ROCKCHIP || COMPILE_TEST 206 depends on OF 207 depends on PCI_MSI_IRQ_DOMAIN 208 select MFD_SYSCON 209 select PCIE_ROCKCHIP 210 help 211 Say Y here if you want internal PCI support on Rockchip SoC. 212 There is 1 internal PCIe port available to support GEN2 with 213 4 slots. 214 215config PCIE_ROCKCHIP_EP 216 bool "Rockchip PCIe endpoint controller" 217 depends on ARCH_ROCKCHIP || COMPILE_TEST 218 depends on OF 219 depends on PCI_ENDPOINT 220 select MFD_SYSCON 221 select PCIE_ROCKCHIP 222 help 223 Say Y here if you want to support Rockchip PCIe controller in 224 endpoint mode on Rockchip SoC. There is 1 internal PCIe port 225 available to support GEN2 with 4 slots. 226 227config PCIE_MEDIATEK 228 tristate "MediaTek PCIe controller" 229 depends on ARCH_MEDIATEK || COMPILE_TEST 230 depends on OF 231 depends on PCI_MSI_IRQ_DOMAIN 232 help 233 Say Y here if you want to enable PCIe controller support on 234 MediaTek SoCs. 235 236config VMD 237 depends on PCI_MSI && X86_64 && SRCU 238 tristate "Intel Volume Management Device Driver" 239 help 240 Adds support for the Intel Volume Management Device (VMD). VMD is a 241 secondary PCI host bridge that allows PCI Express root ports, 242 and devices attached to them, to be removed from the default 243 PCI domain and placed within the VMD domain. This provides 244 more bus resources than are otherwise possible with a 245 single domain. If you know your system provides one of these and 246 has devices attached to it, say Y; if you are not sure, say N. 247 248 To compile this driver as a module, choose M here: the 249 module will be called vmd. 250 251config PCIE_BRCMSTB 252 tristate "Broadcom Brcmstb PCIe host controller" 253 depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCM4908 || COMPILE_TEST 254 depends on OF 255 depends on PCI_MSI_IRQ_DOMAIN 256 default ARCH_BRCMSTB 257 help 258 Say Y here to enable PCIe host controller support for 259 Broadcom STB based SoCs, like the Raspberry Pi 4. 260 261config PCI_HYPERV_INTERFACE 262 tristate "Hyper-V PCI Interface" 263 depends on X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64 264 help 265 The Hyper-V PCI Interface is a helper driver allows other drivers to 266 have a common interface with the Hyper-V PCI frontend driver. 267 268config PCI_LOONGSON 269 bool "LOONGSON PCI Controller" 270 depends on MACH_LOONGSON64 || COMPILE_TEST 271 depends on OF 272 depends on PCI_QUIRKS 273 default MACH_LOONGSON64 274 help 275 Say Y here if you want to enable PCI controller support on 276 Loongson systems. 277 278config PCIE_MICROCHIP_HOST 279 bool "Microchip AXI PCIe host bridge support" 280 depends on PCI_MSI && OF 281 select PCI_MSI_IRQ_DOMAIN 282 select GENERIC_MSI_IRQ_DOMAIN 283 select PCI_HOST_COMMON 284 help 285 Say Y here if you want kernel to support the Microchip AXI PCIe 286 Host Bridge driver. 287 288config PCIE_HISI_ERR 289 depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST) 290 bool "HiSilicon HIP PCIe controller error handling driver" 291 help 292 Say Y here if you want error handling support 293 for the PCIe controller's errors on HiSilicon HIP SoCs 294 295source "drivers/pci/controller/dwc/Kconfig" 296source "drivers/pci/controller/mobiveil/Kconfig" 297source "drivers/pci/controller/cadence/Kconfig" 298endmenu 299