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 bool "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 help 45 Say Y here if you want support for the PCIe host controller found 46 on NVIDIA Tegra SoCs. 47 48config PCI_RCAR_GEN2 49 bool "Renesas R-Car Gen2 Internal PCI controller" 50 depends on ARCH_RENESAS || COMPILE_TEST 51 depends on ARM 52 help 53 Say Y here if you want internal PCI support on R-Car Gen2 SoC. 54 There are 3 internal PCI controllers available with a single 55 built-in EHCI/OHCI host controller present on each one. 56 57config PCIE_RCAR 58 bool "Renesas R-Car PCIe controller" 59 depends on ARCH_RENESAS || COMPILE_TEST 60 depends on PCI_MSI_IRQ_DOMAIN 61 help 62 Say Y here if you want PCIe controller support on R-Car SoCs. 63 64config PCI_HOST_COMMON 65 bool 66 select PCI_ECAM 67 68config PCI_HOST_GENERIC 69 bool "Generic PCI host controller" 70 depends on OF 71 select PCI_HOST_COMMON 72 select IRQ_DOMAIN 73 help 74 Say Y here if you want to support a simple generic PCI host 75 controller, such as the one emulated by kvmtool. 76 77config PCIE_XILINX 78 bool "Xilinx AXI PCIe host bridge support" 79 depends on OF || COMPILE_TEST 80 help 81 Say 'Y' here if you want kernel to support the Xilinx AXI PCIe 82 Host Bridge driver. 83 84config PCI_XGENE 85 bool "X-Gene PCIe controller" 86 depends on ARM64 || COMPILE_TEST 87 depends on OF || (ACPI && PCI_QUIRKS) 88 help 89 Say Y here if you want internal PCI support on APM X-Gene SoC. 90 There are 5 internal PCIe ports available. Each port is GEN3 capable 91 and have varied lanes from x1 to x8. 92 93config PCI_XGENE_MSI 94 bool "X-Gene v1 PCIe MSI feature" 95 depends on PCI_XGENE 96 depends on PCI_MSI_IRQ_DOMAIN 97 default y 98 help 99 Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC. 100 This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC. 101 102config PCI_V3_SEMI 103 bool "V3 Semiconductor PCI controller" 104 depends on OF 105 depends on ARM || COMPILE_TEST 106 default ARCH_INTEGRATOR_AP 107 108config PCI_VERSATILE 109 bool "ARM Versatile PB PCI controller" 110 depends on ARCH_VERSATILE || COMPILE_TEST 111 112config PCIE_IPROC 113 tristate 114 help 115 This enables the iProc PCIe core controller support for Broadcom's 116 iProc family of SoCs. An appropriate bus interface driver needs 117 to be enabled to select this. 118 119config PCIE_IPROC_PLATFORM 120 tristate "Broadcom iProc PCIe platform bus driver" 121 depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST) 122 depends on OF 123 select PCIE_IPROC 124 default ARCH_BCM_IPROC 125 help 126 Say Y here if you want to use the Broadcom iProc PCIe controller 127 through the generic platform bus interface 128 129config PCIE_IPROC_BCMA 130 tristate "Broadcom iProc PCIe BCMA bus driver" 131 depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST) 132 select PCIE_IPROC 133 select BCMA 134 default ARCH_BCM_5301X 135 help 136 Say Y here if you want to use the Broadcom iProc PCIe controller 137 through the BCMA bus interface 138 139config PCIE_IPROC_MSI 140 bool "Broadcom iProc PCIe MSI support" 141 depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA 142 depends on PCI_MSI_IRQ_DOMAIN 143 default ARCH_BCM_IPROC 144 help 145 Say Y here if you want to enable MSI support for Broadcom's iProc 146 PCIe controller 147 148config PCIE_ALTERA 149 tristate "Altera PCIe controller" 150 depends on ARM || NIOS2 || ARM64 || COMPILE_TEST 151 help 152 Say Y here if you want to enable PCIe controller support on Altera 153 FPGA. 154 155config PCIE_ALTERA_MSI 156 tristate "Altera PCIe MSI feature" 157 depends on PCIE_ALTERA 158 depends on PCI_MSI_IRQ_DOMAIN 159 help 160 Say Y here if you want PCIe MSI support for the Altera FPGA. 161 This MSI driver supports Altera MSI to GIC controller IP. 162 163config PCI_HOST_THUNDER_PEM 164 bool "Cavium Thunder PCIe controller to off-chip devices" 165 depends on ARM64 || COMPILE_TEST 166 depends on OF || (ACPI && PCI_QUIRKS) 167 select PCI_HOST_COMMON 168 help 169 Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs. 170 171config PCI_HOST_THUNDER_ECAM 172 bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon" 173 depends on ARM64 || COMPILE_TEST 174 depends on OF || (ACPI && PCI_QUIRKS) 175 select PCI_HOST_COMMON 176 help 177 Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs. 178 179config PCIE_ROCKCHIP 180 bool 181 depends on PCI 182 183config PCIE_ROCKCHIP_HOST 184 tristate "Rockchip PCIe host controller" 185 depends on ARCH_ROCKCHIP || COMPILE_TEST 186 depends on OF 187 depends on PCI_MSI_IRQ_DOMAIN 188 select MFD_SYSCON 189 select PCIE_ROCKCHIP 190 help 191 Say Y here if you want internal PCI support on Rockchip SoC. 192 There is 1 internal PCIe port available to support GEN2 with 193 4 slots. 194 195config PCIE_ROCKCHIP_EP 196 bool "Rockchip PCIe endpoint controller" 197 depends on ARCH_ROCKCHIP || COMPILE_TEST 198 depends on OF 199 depends on PCI_ENDPOINT 200 select MFD_SYSCON 201 select PCIE_ROCKCHIP 202 help 203 Say Y here if you want to support Rockchip PCIe controller in 204 endpoint mode on Rockchip SoC. There is 1 internal PCIe port 205 available to support GEN2 with 4 slots. 206 207config PCIE_MEDIATEK 208 tristate "MediaTek PCIe controller" 209 depends on ARCH_MEDIATEK || COMPILE_TEST 210 depends on OF 211 depends on PCI_MSI_IRQ_DOMAIN 212 help 213 Say Y here if you want to enable PCIe controller support on 214 MediaTek SoCs. 215 216config PCIE_TANGO_SMP8759 217 bool "Tango SMP8759 PCIe controller (DANGEROUS)" 218 depends on ARCH_TANGO && PCI_MSI && OF 219 depends on BROKEN 220 select PCI_HOST_COMMON 221 help 222 Say Y here to enable PCIe controller support for Sigma Designs 223 Tango SMP8759-based systems. 224 225 Note: The SMP8759 controller multiplexes PCI config and MMIO 226 accesses, and Linux doesn't provide a way to serialize them. 227 This can lead to data corruption if drivers perform concurrent 228 config and MMIO accesses. 229 230config VMD 231 depends on PCI_MSI && X86_64 && SRCU 232 tristate "Intel Volume Management Device Driver" 233 ---help--- 234 Adds support for the Intel Volume Management Device (VMD). VMD is a 235 secondary PCI host bridge that allows PCI Express root ports, 236 and devices attached to them, to be removed from the default 237 PCI domain and placed within the VMD domain. This provides 238 more bus resources than are otherwise possible with a 239 single domain. If you know your system provides one of these and 240 has devices attached to it, say Y; if you are not sure, say N. 241 242 To compile this driver as a module, choose M here: the 243 module will be called vmd. 244 245config PCIE_BRCMSTB 246 tristate "Broadcom Brcmstb PCIe host controller" 247 depends on ARCH_BCM2835 || COMPILE_TEST 248 depends on OF 249 depends on PCI_MSI_IRQ_DOMAIN 250 help 251 Say Y here to enable PCIe host controller support for 252 Broadcom STB based SoCs, like the Raspberry Pi 4. 253 254config PCI_HYPERV_INTERFACE 255 tristate "Hyper-V PCI Interface" 256 depends on X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64 257 help 258 The Hyper-V PCI Interface is a helper driver allows other drivers to 259 have a common interface with the Hyper-V PCI frontend driver. 260 261source "drivers/pci/controller/dwc/Kconfig" 262source "drivers/pci/controller/mobiveil/Kconfig" 263source "drivers/pci/controller/cadence/Kconfig" 264endmenu 265