linux/drivers/pci/controller/Kconfig
<<
>>
Prefs
   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        select PCIE_RCAR_HOST
  62        help
  63          Say Y here if you want PCIe controller support on R-Car SoCs.
  64          This option will be removed after arm64 defconfig is updated.
  65
  66config PCIE_RCAR_HOST
  67        bool "Renesas R-Car PCIe host controller"
  68        depends on ARCH_RENESAS || COMPILE_TEST
  69        depends on PCI_MSI_IRQ_DOMAIN
  70        help
  71          Say Y here if you want PCIe controller support on R-Car SoCs in host
  72          mode.
  73
  74config PCIE_RCAR_EP
  75        bool "Renesas R-Car PCIe endpoint controller"
  76        depends on ARCH_RENESAS || COMPILE_TEST
  77        depends on PCI_ENDPOINT
  78        help
  79          Say Y here if you want PCIe controller support on R-Car SoCs in
  80          endpoint mode.
  81
  82config PCI_HOST_COMMON
  83        tristate
  84        select PCI_ECAM
  85
  86config PCI_HOST_GENERIC
  87        tristate "Generic PCI host controller"
  88        depends on OF
  89        select PCI_HOST_COMMON
  90        select IRQ_DOMAIN
  91        help
  92          Say Y here if you want to support a simple generic PCI host
  93          controller, such as the one emulated by kvmtool.
  94
  95config PCIE_XILINX
  96        bool "Xilinx AXI PCIe host bridge support"
  97        depends on OF || COMPILE_TEST
  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_TANGO_SMP8759
 243        bool "Tango SMP8759 PCIe controller (DANGEROUS)"
 244        depends on ARCH_TANGO && PCI_MSI && OF
 245        depends on BROKEN
 246        select PCI_HOST_COMMON
 247        help
 248          Say Y here to enable PCIe controller support for Sigma Designs
 249          Tango SMP8759-based systems.
 250
 251          Note: The SMP8759 controller multiplexes PCI config and MMIO
 252          accesses, and Linux doesn't provide a way to serialize them.
 253          This can lead to data corruption if drivers perform concurrent
 254          config and MMIO accesses.
 255
 256config VMD
 257        depends on PCI_MSI && X86_64 && SRCU
 258        tristate "Intel Volume Management Device Driver"
 259        help
 260          Adds support for the Intel Volume Management Device (VMD). VMD is a
 261          secondary PCI host bridge that allows PCI Express root ports,
 262          and devices attached to them, to be removed from the default
 263          PCI domain and placed within the VMD domain. This provides
 264          more bus resources than are otherwise possible with a
 265          single domain. If you know your system provides one of these and
 266          has devices attached to it, say Y; if you are not sure, say N.
 267
 268          To compile this driver as a module, choose M here: the
 269          module will be called vmd.
 270
 271config PCIE_BRCMSTB
 272        tristate "Broadcom Brcmstb PCIe host controller"
 273        depends on ARCH_BCM2835 || COMPILE_TEST
 274        depends on OF
 275        depends on PCI_MSI_IRQ_DOMAIN
 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
 297source "drivers/pci/controller/dwc/Kconfig"
 298source "drivers/pci/controller/mobiveil/Kconfig"
 299source "drivers/pci/controller/cadence/Kconfig"
 300endmenu
 301