Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

menu "PCI host controller drivers"
	depends on CONFIG_PCI

config CONFIG_PCI_DRA7XX
	bool "TI DRA7xx PCIe controller"
	depends on CONFIG_OF && CONFIG_HAS_IOMEM && CONFIG_TI_PIPE3
	depends on CONFIG_PCI_MSI_IRQ_DOMAIN
	select CONFIG_PCIE_DW
	help
	 Enables support for the PCIe controller in the DRA7xx SoC.  There
	 are two instances of PCIe controller in DRA7xx.  This controller can
	 act both as EP and RC.  This reuses the Designware core.

config CONFIG_PCI_MVEBU
	bool "Marvell EBU PCIe controller"
	depends on CONFIG_ARCH_MVEBU || CONFIG_ARCH_DOVE
	depends on CONFIG_ARM
	depends on CONFIG_OF

config CONFIG_PCI_AARDVARK
	bool "Aardvark PCIe controller"
	depends on CONFIG_ARCH_MVEBU && CONFIG_ARM64
	depends on CONFIG_OF
	depends on CONFIG_PCI_MSI_IRQ_DOMAIN
	help
	 Add support for Aardvark 64bit PCIe Host Controller. This
	 controller is part of the South Bridge of the Marvel Armada
	 3700 SoC.

config CONFIG_PCIE_XILINX_NWL
	bool "NWL PCIe Core"
	depends on CONFIG_ARCH_ZYNQMP
	depends on CONFIG_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 CONFIG_PCIE_DW_PLAT
	bool "Platform bus based DesignWare PCIe Controller"
	depends on CONFIG_PCI_MSI_IRQ_DOMAIN
	select CONFIG_PCIE_DW
	---help---
	 This selects the DesignWare PCIe controller support. Select this if
	 you have a PCIe controller on Platform bus.

	 If you have a controller with this interface, say Y or CONFIG_M here.

	 If unsure, say N.

config CONFIG_PCIE_DW
	bool
	depends on CONFIG_PCI_MSI_IRQ_DOMAIN

config CONFIG_PCI_EXYNOS
	bool "Samsung Exynos PCIe controller"
	depends on CONFIG_SOC_EXYNOS5440
	depends on CONFIG_PCI_MSI_IRQ_DOMAIN
	select CONFIG_PCIEPORTBUS
	select CONFIG_PCIE_DW

config CONFIG_PCI_IMX6
	bool "Freescale i.MX6 PCIe controller"
	depends on CONFIG_SOC_IMX6Q
	depends on CONFIG_PCI_MSI_IRQ_DOMAIN
	select CONFIG_PCIEPORTBUS
	select CONFIG_PCIE_DW

config CONFIG_PCI_TEGRA
	bool "NVIDIA Tegra PCIe controller"
	depends on CONFIG_ARCH_TEGRA
	help
	  Say Y here if you want support for the PCIe host controller found
	  on NVIDIA Tegra SoCs.

config CONFIG_PCI_RCAR_GEN2
	bool "Renesas R-Car Gen2 Internal PCI controller"
	depends on CONFIG_ARM
	depends on CONFIG_ARCH_RENESAS || CONFIG_COMPILE_TEST
	help
	  Say Y here if you want internal CONFIG_PCI support on R-Car Gen2 SoC.
	  There are 3 internal CONFIG_PCI controllers available with a single
	  built-in EHCI/OHCI host controller present on each one.

config CONFIG_PCIE_RCAR
	bool "Renesas R-Car PCIe controller"
	depends on CONFIG_ARCH_RENESAS || (CONFIG_ARM && CONFIG_COMPILE_TEST)
	depends on CONFIG_PCI_MSI_IRQ_DOMAIN
	help
	  Say Y here if you want PCIe controller support on R-Car SoCs.

config CONFIG_PCI_HOST_COMMON
	bool
	select CONFIG_PCI_ECAM

config CONFIG_PCI_HOST_GENERIC
	bool "Generic PCI host controller"
	depends on (CONFIG_ARM || CONFIG_ARM64) && CONFIG_OF
	select CONFIG_PCI_HOST_COMMON
	select CONFIG_IRQ_DOMAIN
	help
	  Say Y here if you want to support a simple generic CONFIG_PCI host
	  controller, such as the one emulated by kvmtool.

config CONFIG_PCIE_SPEAR13XX
	bool "STMicroelectronics SPEAr PCIe controller"
	depends on CONFIG_ARCH_SPEAR13XX
	depends on CONFIG_PCI_MSI_IRQ_DOMAIN
	select CONFIG_PCIEPORTBUS
	select CONFIG_PCIE_DW
	help
	  Say Y here if you want PCIe support on SPEAr13XX SoCs.

config CONFIG_PCI_KEYSTONE
	bool "TI Keystone PCIe controller"
	depends on CONFIG_ARCH_KEYSTONE
	depends on CONFIG_PCI_MSI_IRQ_DOMAIN
	select CONFIG_PCIE_DW
	select CONFIG_PCIEPORTBUS
	help
	  Say Y here if you want to enable CONFIG_PCI controller support on Keystone
	  SoCs. The CONFIG_PCI controller on Keystone is based on Designware hardware
	  and therefore the driver re-uses the Designware core functions to
	  implement the driver.

config CONFIG_PCIE_XILINX
	bool "Xilinx AXI PCIe host bridge support"
	depends on CONFIG_ARCH_ZYNQ || CONFIG_MICROBLAZE
	help
	  Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
	  Host Bridge driver.

config CONFIG_PCI_XGENE
	bool "X-Gene PCIe controller"
	depends on CONFIG_ARM64
	depends on CONFIG_OF || (CONFIG_ACPI && CONFIG_PCI_QUIRKS)
	select CONFIG_PCIEPORTBUS
	help
	  Say Y here if you want internal CONFIG_PCI support on CONFIG_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 CONFIG_PCI_XGENE_MSI
	bool "X-Gene v1 PCIe MSI feature"
	depends on CONFIG_PCI_XGENE
	depends on CONFIG_PCI_MSI_IRQ_DOMAIN
	default y
	help
	  Say Y here if you want PCIe MSI support for the CONFIG_APM X-Gene v1 SoC.
	  This MSI driver supports 5 PCIe ports on the CONFIG_APM X-Gene v1 SoC.

config CONFIG_PCI_LAYERSCAPE
	bool "Freescale Layerscape PCIe controller"
	depends on CONFIG_OF && (CONFIG_ARM || CONFIG_ARCH_LAYERSCAPE)
	depends on CONFIG_PCI_MSI_IRQ_DOMAIN
	select CONFIG_PCIE_DW
	select CONFIG_MFD_SYSCON
	help
	  Say Y here if you want PCIe controller support on Layerscape SoCs.

config CONFIG_PCI_VERSATILE
	bool "ARM Versatile PB PCI controller"
	depends on CONFIG_ARCH_VERSATILE

config 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 CONFIG_PCIE_IPROC_PLATFORM
	tristate "Broadcom iProc PCIe platform bus driver"
	depends on CONFIG_ARCH_BCM_IPROC || (CONFIG_ARM && CONFIG_COMPILE_TEST)
	depends on CONFIG_OF
	select CONFIG_PCIE_IPROC
	default CONFIG_ARCH_BCM_IPROC
	help
	  Say Y here if you want to use the Broadcom iProc PCIe controller
	  through the generic platform bus interface

config CONFIG_PCIE_IPROC_BCMA
	tristate "Broadcom iProc PCIe BCMA bus driver"
	depends on CONFIG_ARM && (CONFIG_ARCH_BCM_IPROC || CONFIG_COMPILE_TEST)
	select CONFIG_PCIE_IPROC
	select CONFIG_BCMA
	select CONFIG_PCI_DOMAINS
	default CONFIG_ARCH_BCM_5301X
	help
	  Say Y here if you want to use the Broadcom iProc PCIe controller
	  through the CONFIG_BCMA bus interface

config CONFIG_PCIE_IPROC_MSI
	bool "Broadcom iProc PCIe MSI support"
	depends on CONFIG_PCIE_IPROC_PLATFORM || CONFIG_PCIE_IPROC_BCMA
	depends on CONFIG_PCI_MSI_IRQ_DOMAIN
	default CONFIG_ARCH_BCM_IPROC
	help
	  Say Y here if you want to enable MSI support for Broadcom's iProc
	  PCIe controller

config CONFIG_PCIE_ALTERA
	bool "Altera PCIe controller"
	depends on CONFIG_ARM || CONFIG_NIOS2
	depends on CONFIG_OF_PCI
	select CONFIG_PCI_DOMAINS
	help
	  Say Y here if you want to enable PCIe controller support on Altera
	  CONFIG_FPGA.

config CONFIG_PCIE_ALTERA_MSI
	bool "Altera PCIe MSI feature"
	depends on CONFIG_PCIE_ALTERA
	depends on CONFIG_PCI_MSI_IRQ_DOMAIN
	help
	  Say Y here if you want PCIe MSI support for the Altera CONFIG_FPGA.
	  This MSI driver supports Altera MSI to GIC controller IP.

config CONFIG_PCI_HISI
	depends on CONFIG_OF && CONFIG_ARM64
	bool "HiSilicon Hip05 and Hip06 SoCs PCIe controllers"
	depends on CONFIG_PCI_MSI_IRQ_DOMAIN
	select CONFIG_PCIEPORTBUS
	select CONFIG_PCIE_DW
	help
	  Say Y here if you want PCIe controller support on HiSilicon
	  Hip05 and Hip06 SoCs

config CONFIG_PCIE_QCOM
	bool "Qualcomm PCIe controller"
	depends on CONFIG_ARCH_QCOM && CONFIG_OF
	depends on CONFIG_PCI_MSI_IRQ_DOMAIN
	select CONFIG_PCIE_DW
	select CONFIG_PCIEPORTBUS
	help
	  Say Y here to enable PCIe controller support on Qualcomm SoCs. The
	  PCIe controller uses the Designware core plus Qualcomm-specific
	  hardware wrappers.

config CONFIG_PCI_HOST_THUNDER_PEM
	bool "Cavium Thunder PCIe controller to off-chip devices"
	depends on CONFIG_ARM64
	depends on CONFIG_OF || (CONFIG_ACPI && CONFIG_PCI_QUIRKS)
	select CONFIG_PCI_HOST_COMMON
	help
	  Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.

config CONFIG_PCI_HOST_THUNDER_ECAM
	bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
	depends on CONFIG_ARM64
	depends on CONFIG_OF || (CONFIG_ACPI && CONFIG_PCI_QUIRKS)
	select CONFIG_PCI_HOST_COMMON
	help
	  Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.

config CONFIG_PCIE_ARMADA_8K
	bool "Marvell Armada-8K PCIe controller"
	depends on CONFIG_ARCH_MVEBU
	depends on CONFIG_PCI_MSI_IRQ_DOMAIN
	select CONFIG_PCIE_DW
	select CONFIG_PCIEPORTBUS
	help
	  Say Y here if you want to enable PCIe controller support on
	  Armada-8K SoCs. The PCIe controller on Armada-8K is based on
	  Designware hardware and therefore the driver re-uses the
	  Designware core functions to implement the driver.

config CONFIG_PCIE_ARTPEC6
	bool "Axis ARTPEC-6 PCIe controller"
	depends on CONFIG_MACH_ARTPEC6
	depends on CONFIG_PCI_MSI_IRQ_DOMAIN
	select CONFIG_PCIE_DW
	select CONFIG_PCIEPORTBUS
	help
	  Say Y here to enable PCIe controller support on Axis ARTPEC-6
	  SoCs.  This PCIe controller uses the DesignWare core.

config CONFIG_PCIE_ROCKCHIP
	bool "Rockchip PCIe controller"
	depends on CONFIG_ARCH_ROCKCHIP || CONFIG_COMPILE_TEST
	depends on CONFIG_OF
	depends on CONFIG_PCI_MSI_IRQ_DOMAIN
	select CONFIG_MFD_SYSCON
	help
	  Say Y here if you want internal CONFIG_PCI support on Rockchip SoC.
	  There is 1 internal PCIe port available to support GEN2 with
	  4 slots.

config CONFIG_VMD
	depends on CONFIG_PCI_MSI && CONFIG_X86_64 && CONFIG_SRCU
	tristate "Intel Volume Management Device Driver"
	default N
	---help---
	  Adds support for the Intel Volume Management Device (CONFIG_VMD). CONFIG_VMD is a
	  secondary CONFIG_PCI host bridge that allows CONFIG_PCI Express root ports,
	  and devices attached to them, to be removed from the default
	  CONFIG_PCI domain and placed within the CONFIG_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 CONFIG_M here: the
	  module will be called vmd.

endmenu