353 lines · plain
1# SPDX-License-Identifier: GPL-2.02 3menu "PCI controller drivers"4 depends on PCI5 6config PCI_AARDVARK7 tristate "Aardvark PCIe controller"8 depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST9 depends on OF10 depends on PCI_MSI11 select PCI_BRIDGE_EMUL12 help13 Add support for Aardvark 64bit PCIe Host Controller. This14 controller is part of the South Bridge of the Marvel Armada15 3700 SoC.16 17config PCIE_ALTERA18 tristate "Altera PCIe controller"19 depends on ARM || NIOS2 || ARM64 || COMPILE_TEST20 help21 Say Y here if you want to enable PCIe controller support on Altera22 FPGA.23 24config PCIE_ALTERA_MSI25 tristate "Altera PCIe MSI feature"26 depends on PCIE_ALTERA27 depends on PCI_MSI28 help29 Say Y here if you want PCIe MSI support for the Altera FPGA.30 This MSI driver supports Altera MSI to GIC controller IP.31 32config PCIE_APPLE_MSI_DOORBELL_ADDR33 hex34 default 0xfffff00035 depends on PCIE_APPLE36 37config PCIE_APPLE38 tristate "Apple PCIe controller"39 depends on ARCH_APPLE || COMPILE_TEST40 depends on OF41 depends on PCI_MSI42 select PCI_HOST_COMMON43 help44 Say Y here if you want to enable PCIe controller support on Apple45 system-on-chips, like the Apple M1. This is required for the USB46 type-A ports, Ethernet, Wi-Fi, and Bluetooth.47 48 If unsure, say Y if you have an Apple Silicon system.49 50config PCI_VERSATILE51 bool "ARM Versatile PB PCI controller"52 depends on ARCH_VERSATILE || COMPILE_TEST53 54config PCIE_BRCMSTB55 tristate "Broadcom Brcmstb PCIe controller"56 depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCMBCA || \57 BMIPS_GENERIC || COMPILE_TEST58 depends on OF59 depends on PCI_MSI60 default ARCH_BRCMSTB || BMIPS_GENERIC61 help62 Say Y here to enable PCIe host controller support for63 Broadcom STB based SoCs, like the Raspberry Pi 4.64 65config PCIE_IPROC66 tristate67 help68 This enables the iProc PCIe core controller support for Broadcom's69 iProc family of SoCs. An appropriate bus interface driver needs70 to be enabled to select this.71 72config PCIE_IPROC_PLATFORM73 tristate "Broadcom iProc PCIe platform bus driver"74 depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)75 depends on OF76 select PCIE_IPROC77 default ARCH_BCM_IPROC78 help79 Say Y here if you want to use the Broadcom iProc PCIe controller80 through the generic platform bus interface81 82config PCIE_IPROC_BCMA83 tristate "Broadcom iProc BCMA PCIe controller"84 depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)85 select PCIE_IPROC86 select BCMA87 default ARCH_BCM_5301X88 help89 Say Y here if you want to use the Broadcom iProc PCIe controller90 through the BCMA bus interface91 92config PCIE_IPROC_MSI93 bool "Broadcom iProc PCIe MSI support"94 depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA95 depends on PCI_MSI96 default ARCH_BCM_IPROC97 help98 Say Y here if you want to enable MSI support for Broadcom's iProc99 PCIe controller100 101config PCI_HOST_THUNDER_PEM102 bool "Cavium Thunder PCIe controller to off-chip devices"103 depends on ARM64 || COMPILE_TEST104 depends on OF || (ACPI && PCI_QUIRKS)105 select PCI_HOST_COMMON106 help107 Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.108 109config PCI_HOST_THUNDER_ECAM110 bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"111 depends on ARM64 || COMPILE_TEST112 depends on OF || (ACPI && PCI_QUIRKS)113 select PCI_HOST_COMMON114 help115 Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.116 117config PCI_FTPCI100118 bool "Faraday Technology FTPCI100 PCI controller"119 depends on OF120 default ARCH_GEMINI121 122config PCI_HOST_COMMON123 tristate124 select PCI_ECAM125 126config PCI_HOST_GENERIC127 tristate "Generic PCI host controller"128 depends on OF129 select PCI_HOST_COMMON130 select IRQ_DOMAIN131 help132 Say Y here if you want to support a simple generic PCI host133 controller, such as the one emulated by kvmtool.134 135config PCIE_HISI_ERR136 depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST)137 bool "HiSilicon HIP PCIe controller error handling driver"138 help139 Say Y here if you want error handling support140 for the PCIe controller's errors on HiSilicon HIP SoCs141 142config PCI_IXP4XX143 bool "Intel IXP4xx PCI controller"144 depends on ARM && OF145 depends on ARCH_IXP4XX || COMPILE_TEST146 default ARCH_IXP4XX147 help148 Say Y here if you want support for the PCI host controller found149 in the Intel IXP4xx XScale-based network processor SoC.150 151config VMD152 depends on PCI_MSI && X86_64 && !UML153 tristate "Intel Volume Management Device Driver"154 help155 Adds support for the Intel Volume Management Device (VMD). VMD is a156 secondary PCI host bridge that allows PCI Express root ports,157 and devices attached to them, to be removed from the default158 PCI domain and placed within the VMD domain. This provides159 more bus resources than are otherwise possible with a160 single domain. If you know your system provides one of these and161 has devices attached to it, say Y; if you are not sure, say N.162 163 To compile this driver as a module, choose M here: the164 module will be called vmd.165 166config PCI_LOONGSON167 bool "LOONGSON PCIe controller"168 depends on MACH_LOONGSON64 || COMPILE_TEST169 depends on OF || ACPI170 depends on PCI_QUIRKS171 default MACH_LOONGSON64172 help173 Say Y here if you want to enable PCI controller support on174 Loongson systems.175 176config PCI_MVEBU177 tristate "Marvell EBU PCIe controller"178 depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST179 depends on MVEBU_MBUS180 depends on ARM181 depends on OF182 select PCI_BRIDGE_EMUL183 help184 Add support for Marvell EBU PCIe controller. This PCIe controller185 is used on 32-bit Marvell ARM SoCs: Dove, Kirkwood, Armada 370,186 Armada XP, Armada 375, Armada 38x and Armada 39x.187 188config PCIE_MEDIATEK189 tristate "MediaTek PCIe controller"190 depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST191 depends on OF192 depends on PCI_MSI193 help194 Say Y here if you want to enable PCIe controller support on195 MediaTek SoCs.196 197config PCIE_MEDIATEK_GEN3198 tristate "MediaTek Gen3 PCIe controller"199 depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST200 depends on PCI_MSI201 help202 Adds support for PCIe Gen3 MAC controller for MediaTek SoCs.203 This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed,204 and support up to 256 MSI interrupt numbers for205 multi-function devices.206 207 Say Y here if you want to enable Gen3 PCIe controller support on208 MediaTek SoCs.209 210config PCIE_MT7621211 tristate "MediaTek MT7621 PCIe controller"212 depends on SOC_MT7621 || COMPILE_TEST213 select PHY_MT7621_PCI214 default SOC_MT7621215 help216 This selects a driver for the MediaTek MT7621 PCIe Controller.217 218config PCI_HYPERV_INTERFACE219 tristate "Microsoft Hyper-V PCI Interface"220 depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI221 help222 The Hyper-V PCI Interface is a helper driver that allows other223 drivers to have a common interface with the Hyper-V PCI frontend224 driver.225 226config PCI_TEGRA227 bool "NVIDIA Tegra PCIe controller"228 depends on ARCH_TEGRA || COMPILE_TEST229 depends on PCI_MSI230 help231 Say Y here if you want support for the PCIe host controller found232 on NVIDIA Tegra SoCs.233 234config PCIE_RCAR_HOST235 bool "Renesas R-Car PCIe controller (host mode)"236 depends on ARCH_RENESAS || COMPILE_TEST237 depends on PCI_MSI238 help239 Say Y here if you want PCIe controller support on R-Car SoCs in host240 mode.241 242config PCIE_RCAR_EP243 bool "Renesas R-Car PCIe controller (endpoint mode)"244 depends on ARCH_RENESAS || COMPILE_TEST245 depends on PCI_ENDPOINT246 help247 Say Y here if you want PCIe controller support on R-Car SoCs in248 endpoint mode.249 250config PCI_RCAR_GEN2251 bool "Renesas R-Car Gen2 Internal PCI controller"252 depends on ARCH_RENESAS || COMPILE_TEST253 depends on ARM254 help255 Say Y here if you want internal PCI support on R-Car Gen2 SoC.256 There are 3 internal PCI controllers available with a single257 built-in EHCI/OHCI host controller present on each one.258 259config PCIE_ROCKCHIP260 bool261 depends on PCI262 263config PCIE_ROCKCHIP_HOST264 tristate "Rockchip PCIe controller (host mode)"265 depends on ARCH_ROCKCHIP || COMPILE_TEST266 depends on OF267 depends on PCI_MSI268 select MFD_SYSCON269 select PCIE_ROCKCHIP270 help271 Say Y here if you want internal PCI support on Rockchip SoC.272 There is 1 internal PCIe port available to support GEN2 with273 4 slots.274 275config PCIE_ROCKCHIP_EP276 bool "Rockchip PCIe controller (endpoint mode)"277 depends on ARCH_ROCKCHIP || COMPILE_TEST278 depends on OF279 depends on PCI_ENDPOINT280 select MFD_SYSCON281 select PCIE_ROCKCHIP282 help283 Say Y here if you want to support Rockchip PCIe controller in284 endpoint mode on Rockchip SoC. There is 1 internal PCIe port285 available to support GEN2 with 4 slots.286 287config PCI_V3_SEMI288 bool "V3 Semiconductor PCI controller"289 depends on OF290 depends on ARM || COMPILE_TEST291 default ARCH_INTEGRATOR_AP292 293config PCI_XGENE294 bool "X-Gene PCIe controller"295 depends on ARM64 || COMPILE_TEST296 depends on OF || (ACPI && PCI_QUIRKS)297 help298 Say Y here if you want internal PCI support on APM X-Gene SoC.299 There are 5 internal PCIe ports available. Each port is GEN3 capable300 and have varied lanes from x1 to x8.301 302config PCI_XGENE_MSI303 bool "X-Gene v1 PCIe MSI feature"304 depends on PCI_XGENE305 depends on PCI_MSI306 default y307 help308 Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.309 This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.310 311config PCIE_XILINX312 bool "Xilinx AXI PCIe controller"313 depends on OF314 depends on PCI_MSI315 help316 Say 'Y' here if you want kernel to support the Xilinx AXI PCIe317 Host Bridge driver.318 319config PCIE_XILINX_DMA_PL320 bool "Xilinx DMA PL PCIe host bridge support"321 depends on ARCH_ZYNQMP || COMPILE_TEST322 depends on PCI_MSI323 select PCI_HOST_COMMON324 help325 Say 'Y' here if you want kernel support for the Xilinx PL DMA326 PCIe host bridge. The controller is a Soft IP which can act as327 Root Port. If your system provides Xilinx PCIe host controller328 bridge DMA as Soft IP say 'Y'; if you are not sure, say 'N'.329 330config PCIE_XILINX_NWL331 bool "Xilinx NWL PCIe controller"332 depends on ARCH_ZYNQMP || COMPILE_TEST333 depends on PCI_MSI334 help335 Say 'Y' here if you want kernel support for Xilinx336 NWL PCIe controller. The controller can act as Root Port337 or End Point. The current option selection will only338 support root port enabling.339 340config PCIE_XILINX_CPM341 bool "Xilinx Versal CPM PCI controller"342 depends on ARCH_ZYNQMP || COMPILE_TEST343 select PCI_HOST_COMMON344 help345 Say 'Y' here if you want kernel support for the346 Xilinx Versal CPM host bridge.347 348source "drivers/pci/controller/cadence/Kconfig"349source "drivers/pci/controller/dwc/Kconfig"350source "drivers/pci/controller/mobiveil/Kconfig"351source "drivers/pci/controller/plda/Kconfig"352endmenu353