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