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