8d786149d7
Add support for Xilinx XDMA Soft IP core as Root Port. The Zynq UltraScale+ MPSoCs devices support XDMA soft IP module in programmable logic. The integrated XDMA Soft IP block has integrated bridge function that can act as PCIe Root Port. [kwilczynski: correct indentation and whitespaces, Kconfig help update] Link: https://lore.kernel.org/linux-pci/20231003173453.938190-4-thippeswamy.havalige@amd.com Signed-off-by: Thippeswamy Havalige <thippeswamy.havalige@amd.com> Signed-off-by: Bharat Kumar Gogada <bharat.kumar.gogada@amd.com> Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
360 lines
10 KiB
Plaintext
360 lines
10 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
menu "PCI controller drivers"
|
|
depends on PCI
|
|
|
|
config PCI_AARDVARK
|
|
tristate "Aardvark PCIe controller"
|
|
depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
|
|
depends on OF
|
|
depends on PCI_MSI
|
|
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_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
|
|
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 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
|
|
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 PCI_VERSATILE
|
|
bool "ARM Versatile PB PCI controller"
|
|
depends on ARCH_VERSATILE || COMPILE_TEST
|
|
|
|
config PCIE_BRCMSTB
|
|
tristate "Broadcom Brcmstb PCIe controller"
|
|
depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCMBCA || \
|
|
BMIPS_GENERIC || COMPILE_TEST
|
|
depends on OF
|
|
depends on PCI_MSI
|
|
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 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 BCMA PCIe controller"
|
|
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
|
|
default ARCH_BCM_IPROC
|
|
help
|
|
Say Y here if you want to enable MSI support for Broadcom's iProc
|
|
PCIe controller
|
|
|
|
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 PCI_FTPCI100
|
|
bool "Faraday Technology FTPCI100 PCI controller"
|
|
depends on OF
|
|
default ARCH_GEMINI
|
|
|
|
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_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 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 VMD
|
|
depends on PCI_MSI && X86_64 && !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 PCI_LOONGSON
|
|
bool "LOONGSON PCIe 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 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 PCIE_MEDIATEK
|
|
tristate "MediaTek PCIe controller"
|
|
depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST
|
|
depends on OF
|
|
depends on PCI_MSI
|
|
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
|
|
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 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 PCIE_MICROCHIP_HOST
|
|
tristate "Microchip AXI PCIe controller"
|
|
depends on PCI_MSI && OF
|
|
select PCI_HOST_COMMON
|
|
help
|
|
Say Y here if you want kernel to support the Microchip AXI PCIe
|
|
Host Bridge driver.
|
|
|
|
config PCI_HYPERV_INTERFACE
|
|
tristate "Microsoft Hyper-V PCI Interface"
|
|
depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI
|
|
help
|
|
The Hyper-V PCI Interface is a helper driver that allows other
|
|
drivers to have a common interface with the Hyper-V PCI frontend
|
|
driver.
|
|
|
|
config PCI_TEGRA
|
|
bool "NVIDIA Tegra PCIe controller"
|
|
depends on ARCH_TEGRA || COMPILE_TEST
|
|
depends on PCI_MSI
|
|
help
|
|
Say Y here if you want support for the PCIe host controller found
|
|
on NVIDIA Tegra SoCs.
|
|
|
|
config PCIE_RCAR_HOST
|
|
bool "Renesas R-Car PCIe controller (host mode)"
|
|
depends on ARCH_RENESAS || COMPILE_TEST
|
|
depends on PCI_MSI
|
|
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 controller (endpoint mode)"
|
|
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_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_ROCKCHIP
|
|
bool
|
|
depends on PCI
|
|
|
|
config PCIE_ROCKCHIP_HOST
|
|
tristate "Rockchip PCIe controller (host mode)"
|
|
depends on ARCH_ROCKCHIP || COMPILE_TEST
|
|
depends on OF
|
|
depends on PCI_MSI
|
|
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 controller (endpoint mode)"
|
|
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 PCI_V3_SEMI
|
|
bool "V3 Semiconductor PCI controller"
|
|
depends on OF
|
|
depends on ARM || COMPILE_TEST
|
|
default ARCH_INTEGRATOR_AP
|
|
|
|
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
|
|
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 PCIE_XILINX
|
|
bool "Xilinx AXI PCIe controller"
|
|
depends on OF
|
|
depends on PCI_MSI
|
|
help
|
|
Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
|
|
Host Bridge driver.
|
|
|
|
config PCIE_XILINX_DMA_PL
|
|
bool "Xilinx DMA PL PCIe host bridge support"
|
|
depends on ARCH_ZYNQMP || COMPILE_TEST
|
|
depends on PCI_MSI
|
|
select PCI_HOST_COMMON
|
|
help
|
|
Say 'Y' here if you want kernel support for the Xilinx PL DMA
|
|
PCIe host bridge. The controller is a Soft IP which can act as
|
|
Root Port. If your system provides Xilinx PCIe host controller
|
|
bridge DMA as Soft IP say 'Y'; if you are not sure, say 'N'.
|
|
|
|
config PCIE_XILINX_NWL
|
|
bool "Xilinx NWL PCIe controller"
|
|
depends on ARCH_ZYNQMP || COMPILE_TEST
|
|
depends on PCI_MSI
|
|
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 PCIE_XILINX_CPM
|
|
bool "Xilinx Versal CPM PCI controller"
|
|
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.
|
|
|
|
source "drivers/pci/controller/cadence/Kconfig"
|
|
source "drivers/pci/controller/dwc/Kconfig"
|
|
source "drivers/pci/controller/mobiveil/Kconfig"
|
|
endmenu
|