123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364 |
- # SPDX-License-Identifier: GPL-2.0
- menu "PCI controller drivers"
- depends on PCI
- config PCI_MVEBU
- tristate "Marvell EBU PCIe controller"
- depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST
- depends on MVEBU_MBUS
- depends on ARM
- depends on OF
- select PCI_BRIDGE_EMUL
- help
- Add support for Marvell EBU PCIe controller. This PCIe controller
- is used on 32-bit Marvell ARM SoCs: Dove, Kirkwood, Armada 370,
- Armada XP, Armada 375, Armada 38x and Armada 39x.
- config PCI_AARDVARK
- tristate "Aardvark PCIe controller"
- depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
- depends on OF
- depends on PCI_MSI_IRQ_DOMAIN
- select PCI_BRIDGE_EMUL
- help
- Add support for Aardvark 64bit PCIe Host Controller. This
- controller is part of the South Bridge of the Marvel Armada
- 3700 SoC.
- config PCIE_XILINX_NWL
- bool "NWL PCIe Core"
- depends on ARCH_ZYNQMP || COMPILE_TEST
- depends on PCI_MSI_IRQ_DOMAIN
- help
- Say 'Y' here if you want kernel support for Xilinx
- NWL PCIe controller. The controller can act as Root Port
- or End Point. The current option selection will only
- support root port enabling.
- config PCI_FTPCI100
- bool "Faraday Technology FTPCI100 PCI controller"
- depends on OF
- default ARCH_GEMINI
- config PCI_IXP4XX
- bool "Intel IXP4xx PCI controller"
- depends on ARM && OF
- depends on ARCH_IXP4XX || COMPILE_TEST
- default ARCH_IXP4XX
- help
- Say Y here if you want support for the PCI host controller found
- in the Intel IXP4xx XScale-based network processor SoC.
- config PCI_TEGRA
- bool "NVIDIA Tegra PCIe controller"
- depends on ARCH_TEGRA || COMPILE_TEST
- depends on PCI_MSI_IRQ_DOMAIN
- help
- Say Y here if you want support for the PCIe host controller found
- on NVIDIA Tegra SoCs.
- config PCI_RCAR_GEN2
- bool "Renesas R-Car Gen2 Internal PCI controller"
- depends on ARCH_RENESAS || COMPILE_TEST
- depends on ARM
- help
- Say Y here if you want internal PCI support on R-Car Gen2 SoC.
- There are 3 internal PCI controllers available with a single
- built-in EHCI/OHCI host controller present on each one.
- config PCIE_RCAR_HOST
- bool "Renesas R-Car PCIe host controller"
- depends on ARCH_RENESAS || COMPILE_TEST
- depends on PCI_MSI_IRQ_DOMAIN
- help
- Say Y here if you want PCIe controller support on R-Car SoCs in host
- mode.
- config PCIE_RCAR_EP
- bool "Renesas R-Car PCIe endpoint controller"
- depends on ARCH_RENESAS || COMPILE_TEST
- depends on PCI_ENDPOINT
- help
- Say Y here if you want PCIe controller support on R-Car SoCs in
- endpoint mode.
- config PCI_HOST_COMMON
- tristate
- select PCI_ECAM
- config PCI_HOST_GENERIC
- tristate "Generic PCI host controller"
- depends on OF
- select PCI_HOST_COMMON
- select IRQ_DOMAIN
- help
- Say Y here if you want to support a simple generic PCI host
- controller, such as the one emulated by kvmtool.
- config PCIE_XILINX
- bool "Xilinx AXI PCIe host bridge support"
- depends on OF || COMPILE_TEST
- depends on PCI_MSI_IRQ_DOMAIN
- help
- Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
- Host Bridge driver.
- config PCIE_XILINX_CPM
- bool "Xilinx Versal CPM host bridge support"
- depends on ARCH_ZYNQMP || COMPILE_TEST
- select PCI_HOST_COMMON
- help
- Say 'Y' here if you want kernel support for the
- Xilinx Versal CPM host bridge.
- config PCI_XGENE
- bool "X-Gene PCIe controller"
- depends on ARM64 || COMPILE_TEST
- depends on OF || (ACPI && PCI_QUIRKS)
- help
- Say Y here if you want internal PCI support on APM X-Gene SoC.
- There are 5 internal PCIe ports available. Each port is GEN3 capable
- and have varied lanes from x1 to x8.
- config PCI_XGENE_MSI
- bool "X-Gene v1 PCIe MSI feature"
- depends on PCI_XGENE
- depends on PCI_MSI_IRQ_DOMAIN
- default y
- help
- Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
- This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
- config PCI_V3_SEMI
- bool "V3 Semiconductor PCI controller"
- depends on OF
- depends on ARM || COMPILE_TEST
- default ARCH_INTEGRATOR_AP
- config PCI_VERSATILE
- bool "ARM Versatile PB PCI controller"
- depends on ARCH_VERSATILE || COMPILE_TEST
- config PCIE_IPROC
- tristate
- help
- This enables the iProc PCIe core controller support for Broadcom's
- iProc family of SoCs. An appropriate bus interface driver needs
- to be enabled to select this.
- config PCIE_IPROC_PLATFORM
- tristate "Broadcom iProc PCIe platform bus driver"
- depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
- depends on OF
- select PCIE_IPROC
- default ARCH_BCM_IPROC
- help
- Say Y here if you want to use the Broadcom iProc PCIe controller
- through the generic platform bus interface
- config PCIE_IPROC_BCMA
- tristate "Broadcom iProc PCIe BCMA bus driver"
- depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
- select PCIE_IPROC
- select BCMA
- default ARCH_BCM_5301X
- help
- Say Y here if you want to use the Broadcom iProc PCIe controller
- through the BCMA bus interface
- config PCIE_IPROC_MSI
- bool "Broadcom iProc PCIe MSI support"
- depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
- depends on PCI_MSI_IRQ_DOMAIN
- default ARCH_BCM_IPROC
- help
- Say Y here if you want to enable MSI support for Broadcom's iProc
- PCIe controller
- config PCIE_ALTERA
- tristate "Altera PCIe controller"
- depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
- help
- Say Y here if you want to enable PCIe controller support on Altera
- FPGA.
- config PCIE_ALTERA_MSI
- tristate "Altera PCIe MSI feature"
- depends on PCIE_ALTERA
- depends on PCI_MSI_IRQ_DOMAIN
- help
- Say Y here if you want PCIe MSI support for the Altera FPGA.
- This MSI driver supports Altera MSI to GIC controller IP.
- config PCI_HOST_THUNDER_PEM
- bool "Cavium Thunder PCIe controller to off-chip devices"
- depends on ARM64 || COMPILE_TEST
- depends on OF || (ACPI && PCI_QUIRKS)
- select PCI_HOST_COMMON
- help
- Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
- config PCI_HOST_THUNDER_ECAM
- bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
- depends on ARM64 || COMPILE_TEST
- depends on OF || (ACPI && PCI_QUIRKS)
- select PCI_HOST_COMMON
- help
- Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
- config PCIE_ROCKCHIP
- bool
- depends on PCI
- config PCIE_ROCKCHIP_HOST
- tristate "Rockchip PCIe host controller"
- depends on ARCH_ROCKCHIP || COMPILE_TEST
- depends on OF
- depends on PCI_MSI_IRQ_DOMAIN
- select MFD_SYSCON
- select PCIE_ROCKCHIP
- help
- Say Y here if you want internal PCI support on Rockchip SoC.
- There is 1 internal PCIe port available to support GEN2 with
- 4 slots.
- config PCIE_ROCKCHIP_EP
- bool "Rockchip PCIe endpoint controller"
- depends on ARCH_ROCKCHIP || COMPILE_TEST
- depends on OF
- depends on PCI_ENDPOINT
- select MFD_SYSCON
- select PCIE_ROCKCHIP
- help
- Say Y here if you want to support Rockchip PCIe controller in
- endpoint mode on Rockchip SoC. There is 1 internal PCIe port
- available to support GEN2 with 4 slots.
- config PCIE_MEDIATEK
- tristate "MediaTek PCIe controller"
- depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST
- depends on OF
- depends on PCI_MSI_IRQ_DOMAIN
- help
- Say Y here if you want to enable PCIe controller support on
- MediaTek SoCs.
- config PCIE_MEDIATEK_GEN3
- tristate "MediaTek Gen3 PCIe controller"
- depends on ARCH_MEDIATEK || COMPILE_TEST
- depends on PCI_MSI_IRQ_DOMAIN
- help
- Adds support for PCIe Gen3 MAC controller for MediaTek SoCs.
- This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed,
- and support up to 256 MSI interrupt numbers for
- multi-function devices.
- Say Y here if you want to enable Gen3 PCIe controller support on
- MediaTek SoCs.
- config VMD
- depends on PCI_MSI && X86_64 && SRCU && !UML
- tristate "Intel Volume Management Device Driver"
- help
- Adds support for the Intel Volume Management Device (VMD). VMD is a
- secondary PCI host bridge that allows PCI Express root ports,
- and devices attached to them, to be removed from the default
- PCI domain and placed within the VMD domain. This provides
- more bus resources than are otherwise possible with a
- single domain. If you know your system provides one of these and
- has devices attached to it, say Y; if you are not sure, say N.
- To compile this driver as a module, choose M here: the
- module will be called vmd.
- config PCIE_BRCMSTB
- tristate "Broadcom Brcmstb PCIe host controller"
- depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCMBCA || \
- BMIPS_GENERIC || COMPILE_TEST
- depends on OF
- depends on PCI_MSI_IRQ_DOMAIN
- default ARCH_BRCMSTB || BMIPS_GENERIC
- help
- Say Y here to enable PCIe host controller support for
- Broadcom STB based SoCs, like the Raspberry Pi 4.
- config PCI_HYPERV_INTERFACE
- tristate "Hyper-V PCI Interface"
- depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN
- help
- The Hyper-V PCI Interface is a helper driver allows other drivers to
- have a common interface with the Hyper-V PCI frontend driver.
- config PCI_LOONGSON
- bool "LOONGSON PCI Controller"
- depends on MACH_LOONGSON64 || COMPILE_TEST
- depends on OF || ACPI
- depends on PCI_QUIRKS
- default MACH_LOONGSON64
- help
- Say Y here if you want to enable PCI controller support on
- Loongson systems.
- config PCIE_MICROCHIP_HOST
- bool "Microchip AXI PCIe host bridge support"
- depends on PCI_MSI && OF
- select PCI_MSI_IRQ_DOMAIN
- select GENERIC_MSI_IRQ_DOMAIN
- select PCI_HOST_COMMON
- help
- Say Y here if you want kernel to support the Microchip AXI PCIe
- Host Bridge driver.
- config PCIE_HISI_ERR
- depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST)
- bool "HiSilicon HIP PCIe controller error handling driver"
- help
- Say Y here if you want error handling support
- for the PCIe controller's errors on HiSilicon HIP SoCs
- config PCIE_APPLE_MSI_DOORBELL_ADDR
- hex
- default 0xfffff000
- depends on PCIE_APPLE
- config PCIE_APPLE
- tristate "Apple PCIe controller"
- depends on ARCH_APPLE || COMPILE_TEST
- depends on OF
- depends on PCI_MSI_IRQ_DOMAIN
- select PCI_HOST_COMMON
- help
- Say Y here if you want to enable PCIe controller support on Apple
- system-on-chips, like the Apple M1. This is required for the USB
- type-A ports, Ethernet, Wi-Fi, and Bluetooth.
- If unsure, say Y if you have an Apple Silicon system.
- config PCIE_MT7621
- tristate "MediaTek MT7621 PCIe Controller"
- depends on SOC_MT7621 || COMPILE_TEST
- select PHY_MT7621_PCI
- default SOC_MT7621
- help
- This selects a driver for the MediaTek MT7621 PCIe Controller.
- config PCI_MSM
- tristate "MSM PCIe Controller driver"
- depends on ARCH_QCOM && PCI
- select PCI_DOMAINS
- select PCI_DOMAINS_GENERIC
- select PCI_MSI
- select CRC8
- help
- Enables the PCIe functionality by configuring PCIe core on
- MSM chipset and by enabling the ARM PCI framework extension.
- The PCIe core is essential for communication between the host
- and an endpoint.
- If unsure, say N.
- source "drivers/pci/controller/dwc/Kconfig"
- source "drivers/pci/controller/mobiveil/Kconfig"
- source "drivers/pci/controller/cadence/Kconfig"
- endmenu
|