pci: PCIe driver for Marvell Armada 370/XP systems
This driver implements the support for the PCIe interfaces on the
Marvell Armada 370/XP ARM SoCs. In the future, it might be extended to
cover earlier families of Marvell SoCs, such as Dove, Orion and
Kirkwood.
The driver implements the hw_pci operations needed by the core ARM PCI
code to setup PCI devices and get their corresponding IRQs, and the
pci_ops operations that are used by the PCI core to read/write the
configuration space of PCI devices.
Since the PCIe interfaces of Marvell SoCs are completely separate and
not linked together in a bus, this driver sets up an emulated PCI host
bridge, with one PCI-to-PCI bridge as child for each hardware PCIe
interface.
In addition, this driver enumerates the different PCIe slots, and for
those having a device plugged in, it sets up the necessary address
decoding windows, using the mvebu-mbus driver.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2013-05-16 15:55:22 +00:00
|
|
|
menu "PCI host controller drivers"
|
|
|
|
depends on PCI
|
|
|
|
|
2014-07-22 21:23:45 +00:00
|
|
|
config PCI_DRA7XX
|
|
|
|
bool "TI DRA7xx PCIe controller"
|
|
|
|
depends on OF && HAS_IOMEM && TI_PIPE3
|
2016-06-15 20:47:33 +00:00
|
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
|
|
|
select PCIE_DW
|
2014-07-22 21:23:45 +00:00
|
|
|
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.
|
|
|
|
|
pci: PCIe driver for Marvell Armada 370/XP systems
This driver implements the support for the PCIe interfaces on the
Marvell Armada 370/XP ARM SoCs. In the future, it might be extended to
cover earlier families of Marvell SoCs, such as Dove, Orion and
Kirkwood.
The driver implements the hw_pci operations needed by the core ARM PCI
code to setup PCI devices and get their corresponding IRQs, and the
pci_ops operations that are used by the PCI core to read/write the
configuration space of PCI devices.
Since the PCIe interfaces of Marvell SoCs are completely separate and
not linked together in a bus, this driver sets up an emulated PCI host
bridge, with one PCI-to-PCI bridge as child for each hardware PCIe
interface.
In addition, this driver enumerates the different PCIe slots, and for
those having a device plugged in, it sets up the necessary address
decoding windows, using the mvebu-mbus driver.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2013-05-16 15:55:22 +00:00
|
|
|
config PCI_MVEBU
|
|
|
|
bool "Marvell EBU PCIe controller"
|
2014-07-10 21:36:29 +00:00
|
|
|
depends on ARCH_MVEBU || ARCH_DOVE
|
2016-02-18 13:32:10 +00:00
|
|
|
depends on ARM
|
2013-08-09 10:35:50 +00:00
|
|
|
depends on OF
|
pci: PCIe driver for Marvell Armada 370/XP systems
This driver implements the support for the PCIe interfaces on the
Marvell Armada 370/XP ARM SoCs. In the future, it might be extended to
cover earlier families of Marvell SoCs, such as Dove, Orion and
Kirkwood.
The driver implements the hw_pci operations needed by the core ARM PCI
code to setup PCI devices and get their corresponding IRQs, and the
pci_ops operations that are used by the PCI core to read/write the
configuration space of PCI devices.
Since the PCIe interfaces of Marvell SoCs are completely separate and
not linked together in a bus, this driver sets up an emulated PCI host
bridge, with one PCI-to-PCI bridge as child for each hardware PCIe
interface.
In addition, this driver enumerates the different PCIe slots, and for
those having a device plugged in, it sets up the necessary address
decoding windows, using the mvebu-mbus driver.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2013-05-16 15:55:22 +00:00
|
|
|
|
2016-06-30 09:32:31 +00:00
|
|
|
config PCI_AARDVARK
|
|
|
|
bool "Aardvark PCIe controller"
|
|
|
|
depends on ARCH_MVEBU && ARM64
|
|
|
|
depends on OF
|
|
|
|
depends on 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.
|
2016-03-15 13:55:52 +00:00
|
|
|
|
2016-03-06 16:32:14 +00:00
|
|
|
config PCIE_XILINX_NWL
|
|
|
|
bool "NWL PCIe Core"
|
|
|
|
depends on ARCH_ZYNQMP
|
2016-06-15 20:47:33 +00:00
|
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
2016-03-06 16:32:14 +00:00
|
|
|
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.
|
|
|
|
|
2016-03-10 20:44:52 +00:00
|
|
|
config PCIE_DW_PLAT
|
|
|
|
bool "Platform bus based DesignWare PCIe Controller"
|
2016-06-15 20:47:33 +00:00
|
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
2016-03-10 20:44:52 +00:00
|
|
|
select 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 M here.
|
|
|
|
|
|
|
|
If unsure, say N.
|
|
|
|
|
2013-06-21 07:24:54 +00:00
|
|
|
config PCIE_DW
|
|
|
|
bool
|
2016-06-15 20:47:33 +00:00
|
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
2013-06-21 07:24:54 +00:00
|
|
|
|
|
|
|
config PCI_EXYNOS
|
|
|
|
bool "Samsung Exynos PCIe controller"
|
|
|
|
depends on SOC_EXYNOS5440
|
2016-06-15 20:47:33 +00:00
|
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
2013-06-21 07:24:54 +00:00
|
|
|
select PCIEPORTBUS
|
|
|
|
select PCIE_DW
|
|
|
|
|
2013-09-26 03:24:47 +00:00
|
|
|
config PCI_IMX6
|
|
|
|
bool "Freescale i.MX6 PCIe controller"
|
|
|
|
depends on SOC_IMX6Q
|
2016-06-15 20:47:33 +00:00
|
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
2013-09-26 03:24:47 +00:00
|
|
|
select PCIEPORTBUS
|
|
|
|
select PCIE_DW
|
|
|
|
|
2013-08-09 14:49:19 +00:00
|
|
|
config PCI_TEGRA
|
|
|
|
bool "NVIDIA Tegra PCIe controller"
|
2014-11-12 13:53:37 +00:00
|
|
|
depends on ARCH_TEGRA && !ARM64
|
2014-11-12 13:53:38 +00:00
|
|
|
help
|
|
|
|
Say Y here if you want support for the PCIe host controller found
|
|
|
|
on NVIDIA Tegra SoCs.
|
2013-08-09 14:49:19 +00:00
|
|
|
|
2013-10-29 16:12:51 +00:00
|
|
|
config PCI_RCAR_GEN2
|
|
|
|
bool "Renesas R-Car Gen2 Internal PCI controller"
|
2015-10-30 13:08:17 +00:00
|
|
|
depends on ARM
|
2016-02-25 00:45:56 +00:00
|
|
|
depends on ARCH_RENESAS || COMPILE_TEST
|
2013-10-29 16:12:51 +00:00
|
|
|
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.
|
|
|
|
|
2016-04-21 03:51:55 +00:00
|
|
|
config PCIE_RCAR
|
2014-05-12 10:57:48 +00:00
|
|
|
bool "Renesas R-Car PCIe controller"
|
2016-02-25 00:45:56 +00:00
|
|
|
depends on ARCH_RENESAS || (ARM && COMPILE_TEST)
|
2016-06-15 20:47:33 +00:00
|
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
2014-05-12 10:57:48 +00:00
|
|
|
help
|
2016-04-21 03:51:55 +00:00
|
|
|
Say Y here if you want PCIe controller support on R-Car SoCs.
|
2014-05-12 10:57:48 +00:00
|
|
|
|
2016-03-11 21:35:55 +00:00
|
|
|
config PCI_HOST_COMMON
|
|
|
|
bool
|
2016-05-11 22:34:46 +00:00
|
|
|
select PCI_ECAM
|
2016-03-11 21:35:55 +00:00
|
|
|
|
2013-11-22 16:14:41 +00:00
|
|
|
config PCI_HOST_GENERIC
|
|
|
|
bool "Generic PCI host controller"
|
2015-08-04 20:53:40 +00:00
|
|
|
depends on (ARM || ARM64) && OF
|
2016-03-11 21:35:55 +00:00
|
|
|
select PCI_HOST_COMMON
|
2016-05-18 14:15:53 +00:00
|
|
|
select IRQ_DOMAIN
|
2013-11-22 16:14:41 +00:00
|
|
|
help
|
|
|
|
Say Y here if you want to support a simple generic PCI host
|
|
|
|
controller, such as the one emulated by kvmtool.
|
|
|
|
|
2014-02-11 06:09:26 +00:00
|
|
|
config PCIE_SPEAR13XX
|
2014-08-18 04:09:16 +00:00
|
|
|
bool "STMicroelectronics SPEAr PCIe controller"
|
2014-02-11 06:09:26 +00:00
|
|
|
depends on ARCH_SPEAR13XX
|
2016-06-15 20:47:33 +00:00
|
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
2014-02-11 06:09:26 +00:00
|
|
|
select PCIEPORTBUS
|
|
|
|
select PCIE_DW
|
|
|
|
help
|
|
|
|
Say Y here if you want PCIe support on SPEAr13XX SoCs.
|
|
|
|
|
2014-09-02 23:26:19 +00:00
|
|
|
config PCI_KEYSTONE
|
|
|
|
bool "TI Keystone PCIe controller"
|
|
|
|
depends on ARCH_KEYSTONE
|
2016-06-15 20:47:33 +00:00
|
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
2014-09-02 23:26:19 +00:00
|
|
|
select PCIE_DW
|
|
|
|
select PCIEPORTBUS
|
|
|
|
help
|
|
|
|
Say Y here if you want to enable PCI controller support on Keystone
|
|
|
|
SoCs. The PCI controller on Keystone is based on Designware hardware
|
|
|
|
and therefore the driver re-uses the Designware core functions to
|
|
|
|
implement the driver.
|
2014-09-05 16:57:20 +00:00
|
|
|
|
2014-08-20 16:26:02 +00:00
|
|
|
config PCIE_XILINX
|
|
|
|
bool "Xilinx AXI PCIe host bridge support"
|
2016-02-11 16:28:11 +00:00
|
|
|
depends on ARCH_ZYNQ || MICROBLAZE
|
2014-08-20 16:26:02 +00:00
|
|
|
help
|
|
|
|
Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
|
|
|
|
Host Bridge driver.
|
|
|
|
|
2014-10-01 19:01:35 +00:00
|
|
|
config PCI_XGENE
|
|
|
|
bool "X-Gene PCIe controller"
|
|
|
|
depends on ARCH_XGENE
|
|
|
|
depends on OF
|
|
|
|
select PCIEPORTBUS
|
|
|
|
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.
|
|
|
|
|
2015-06-05 20:56:34 +00:00
|
|
|
config PCI_XGENE_MSI
|
|
|
|
bool "X-Gene v1 PCIe MSI feature"
|
2016-06-15 20:47:33 +00:00
|
|
|
depends on PCI_XGENE
|
|
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
2015-06-05 20:56:34 +00:00
|
|
|
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.
|
|
|
|
|
2014-11-05 08:45:11 +00:00
|
|
|
config PCI_LAYERSCAPE
|
|
|
|
bool "Freescale Layerscape PCIe controller"
|
2015-10-16 07:19:19 +00:00
|
|
|
depends on OF && (ARM || ARCH_LAYERSCAPE)
|
2016-06-15 20:47:33 +00:00
|
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
2014-11-05 08:45:11 +00:00
|
|
|
select PCIE_DW
|
|
|
|
select MFD_SYSCON
|
|
|
|
help
|
|
|
|
Say Y here if you want PCIe controller support on Layerscape SoCs.
|
|
|
|
|
2015-01-28 16:16:18 +00:00
|
|
|
config PCI_VERSATILE
|
|
|
|
bool "ARM Versatile PB PCI controller"
|
|
|
|
depends on ARCH_VERSATILE
|
|
|
|
|
2015-04-08 18:21:35 +00:00
|
|
|
config PCIE_IPROC
|
2015-11-24 21:28:48 +00:00
|
|
|
tristate
|
2015-04-08 18:21:35 +00:00
|
|
|
help
|
|
|
|
This enables the iProc PCIe core controller support for Broadcom's
|
2015-11-24 21:28:48 +00:00
|
|
|
iProc family of SoCs. An appropriate bus interface driver needs
|
|
|
|
to be enabled to select this.
|
2015-04-08 18:21:35 +00:00
|
|
|
|
|
|
|
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
|
|
|
|
|
2015-05-12 21:23:01 +00:00
|
|
|
config PCIE_IPROC_BCMA
|
2015-07-25 19:15:24 +00:00
|
|
|
tristate "Broadcom iProc PCIe BCMA bus driver"
|
2015-07-29 17:12:53 +00:00
|
|
|
depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
|
2015-05-12 21:23:01 +00:00
|
|
|
select PCIE_IPROC
|
|
|
|
select BCMA
|
|
|
|
select PCI_DOMAINS
|
|
|
|
default ARCH_BCM_5301X
|
|
|
|
help
|
|
|
|
Say Y here if you want to use the Broadcom iProc PCIe controller
|
|
|
|
through the BCMA bus interface
|
|
|
|
|
2016-01-07 00:04:35 +00:00
|
|
|
config PCIE_IPROC_MSI
|
|
|
|
bool "Broadcom iProc PCIe MSI support"
|
|
|
|
depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
|
2016-06-15 20:47:33 +00:00
|
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
2016-01-07 00:04:35 +00:00
|
|
|
default ARCH_BCM_IPROC
|
|
|
|
help
|
|
|
|
Say Y here if you want to enable MSI support for Broadcom's iProc
|
|
|
|
PCIe controller
|
|
|
|
|
2015-10-23 10:27:12 +00:00
|
|
|
config PCIE_ALTERA
|
|
|
|
bool "Altera PCIe controller"
|
|
|
|
depends on ARM || NIOS2
|
|
|
|
depends on OF_PCI
|
|
|
|
select PCI_DOMAINS
|
|
|
|
help
|
|
|
|
Say Y here if you want to enable PCIe controller support on Altera
|
|
|
|
FPGA.
|
|
|
|
|
2015-10-23 10:27:13 +00:00
|
|
|
config PCIE_ALTERA_MSI
|
|
|
|
bool "Altera PCIe MSI feature"
|
2016-06-15 20:47:33 +00:00
|
|
|
depends on PCIE_ALTERA
|
|
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
2015-10-23 10:27:13 +00:00
|
|
|
help
|
|
|
|
Say Y here if you want PCIe MSI support for the Altera FPGA.
|
|
|
|
This MSI driver supports Altera MSI to GIC controller IP.
|
|
|
|
|
2015-10-30 01:02:51 +00:00
|
|
|
config PCI_HISI
|
|
|
|
depends on OF && ARM64
|
2015-11-26 17:17:05 +00:00
|
|
|
bool "HiSilicon Hip05 and Hip06 SoCs PCIe controllers"
|
2016-06-15 20:47:33 +00:00
|
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
2015-10-30 01:02:51 +00:00
|
|
|
select PCIEPORTBUS
|
|
|
|
select PCIE_DW
|
|
|
|
help
|
2015-11-26 17:17:05 +00:00
|
|
|
Say Y here if you want PCIe controller support on HiSilicon
|
|
|
|
Hip05 and Hip06 SoCs
|
2015-10-30 01:02:51 +00:00
|
|
|
|
2015-12-18 12:38:57 +00:00
|
|
|
config PCIE_QCOM
|
|
|
|
bool "Qualcomm PCIe controller"
|
|
|
|
depends on ARCH_QCOM && OF
|
2016-06-15 20:47:33 +00:00
|
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
2015-12-18 12:38:57 +00:00
|
|
|
select PCIE_DW
|
|
|
|
select 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.
|
2015-10-30 01:02:51 +00:00
|
|
|
|
2016-03-04 22:31:47 +00:00
|
|
|
config PCI_HOST_THUNDER_PEM
|
|
|
|
bool "Cavium Thunder PCIe controller to off-chip devices"
|
|
|
|
depends on OF && ARM64
|
|
|
|
select PCI_HOST_COMMON
|
|
|
|
help
|
|
|
|
Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
|
|
|
|
|
2016-03-04 22:31:48 +00:00
|
|
|
config PCI_HOST_THUNDER_ECAM
|
|
|
|
bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
|
|
|
|
depends on OF && ARM64
|
|
|
|
select PCI_HOST_COMMON
|
|
|
|
help
|
|
|
|
Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
|
|
|
|
|
2016-04-26 08:31:46 +00:00
|
|
|
config PCIE_ARMADA_8K
|
|
|
|
bool "Marvell Armada-8K PCIe controller"
|
|
|
|
depends on ARCH_MVEBU
|
2016-06-15 20:47:33 +00:00
|
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
2016-04-26 08:31:46 +00:00
|
|
|
select PCIE_DW
|
|
|
|
select 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.
|
|
|
|
|
2016-05-09 11:49:03 +00:00
|
|
|
config PCIE_ARTPEC6
|
|
|
|
bool "Axis ARTPEC-6 PCIe controller"
|
|
|
|
depends on MACH_ARTPEC6
|
2016-07-06 12:46:04 +00:00
|
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
2016-05-09 11:49:03 +00:00
|
|
|
select PCIE_DW
|
|
|
|
select PCIEPORTBUS
|
|
|
|
help
|
|
|
|
Say Y here to enable PCIe controller support on Axis ARTPEC-6
|
|
|
|
SoCs. This PCIe controller uses the DesignWare core.
|
|
|
|
|
2016-09-03 16:41:09 +00:00
|
|
|
config PCIE_ROCKCHIP
|
|
|
|
bool "Rockchip PCIe controller"
|
|
|
|
depends on ARCH_ROCKCHIP
|
|
|
|
depends on OF
|
|
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
|
|
|
select MFD_SYSCON
|
|
|
|
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.
|
|
|
|
|
2016-10-04 17:26:37 +00:00
|
|
|
config VMD
|
|
|
|
depends on PCI_MSI && X86_64
|
|
|
|
tristate "Intel Volume Management Device Driver"
|
|
|
|
default N
|
|
|
|
---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.
|
|
|
|
|
pci: PCIe driver for Marvell Armada 370/XP systems
This driver implements the support for the PCIe interfaces on the
Marvell Armada 370/XP ARM SoCs. In the future, it might be extended to
cover earlier families of Marvell SoCs, such as Dove, Orion and
Kirkwood.
The driver implements the hw_pci operations needed by the core ARM PCI
code to setup PCI devices and get their corresponding IRQs, and the
pci_ops operations that are used by the PCI core to read/write the
configuration space of PCI devices.
Since the PCIe interfaces of Marvell SoCs are completely separate and
not linked together in a bus, this driver sets up an emulated PCI host
bridge, with one PCI-to-PCI bridge as child for each hardware PCIe
interface.
In addition, this driver enumerates the different PCIe slots, and for
those having a device plugged in, it sets up the necessary address
decoding windows, using the mvebu-mbus driver.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2013-05-16 15:55:22 +00:00
|
|
|
endmenu
|