357 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			357 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # 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 ROCKCHIP_PCIE_DMA_OBJ
 | |
| 	bool "Rockchip PCIe uDMA transfer support"
 | |
| 	depends on PCIE_ROCKCHIP_HOST || PCIE_DW_ROCKCHIP
 | |
| 	default n
 | |
| 	help
 | |
| 	  Say y to enable p2p DMA transfer between PCIe components.
 | |
| 
 | |
| 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.
 | |
| 
 | |
| source "drivers/pci/controller/dwc/Kconfig"
 | |
| source "drivers/pci/controller/mobiveil/Kconfig"
 | |
| source "drivers/pci/controller/cadence/Kconfig"
 | |
| endmenu
 |