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