1 menu "PCI host controller drivers"
5 bool "TI DRA7xx PCIe controller"
7 depends on OF && HAS_IOMEM && TI_PIPE3
9 Enables support for the PCIe controller in the DRA7xx SoC. There
10 are two instances of PCIe controller in DRA7xx. This controller can
11 act both as EP and RC. This reuses the Designware core.
14 bool "Marvell EBU PCIe controller"
15 depends on ARCH_MVEBU || ARCH_DOVE
20 config PCIE_XILINX_NWL
22 depends on ARCH_ZYNQMP
23 select PCI_MSI_IRQ_DOMAIN if PCI_MSI
25 Say 'Y' here if you want kernel support for Xilinx
26 NWL PCIe controller. The controller can act as Root Port
27 or End Point. The current option selection will only
28 support root port enabling.
31 bool "Platform bus based DesignWare PCIe Controller"
34 This selects the DesignWare PCIe controller support. Select this if
35 you have a PCIe controller on Platform bus.
37 If you have a controller with this interface, say Y or M here.
45 bool "Samsung Exynos PCIe controller"
46 depends on SOC_EXYNOS5440
51 bool "Freescale i.MX6 PCIe controller"
57 bool "NVIDIA Tegra PCIe controller"
58 depends on ARCH_TEGRA && !ARM64
60 Say Y here if you want support for the PCIe host controller found
64 bool "Renesas R-Car Gen2 Internal PCI controller"
66 depends on ARCH_RENESAS || COMPILE_TEST
68 Say Y here if you want internal PCI support on R-Car Gen2 SoC.
69 There are 3 internal PCI controllers available with a single
70 built-in EHCI/OHCI host controller present on each one.
73 bool "Renesas R-Car PCIe controller"
74 depends on ARCH_RENESAS || (ARM && COMPILE_TEST)
76 select PCI_MSI_IRQ_DOMAIN
78 Say Y here if you want PCIe controller support on R-Car SoCs.
80 config PCI_HOST_COMMON
84 config PCI_HOST_GENERIC
85 bool "Generic PCI host controller"
86 depends on (ARM || ARM64) && OF
87 select PCI_HOST_COMMON
90 Say Y here if you want to support a simple generic PCI host
91 controller, such as the one emulated by kvmtool.
94 bool "STMicroelectronics SPEAr PCIe controller"
95 depends on ARCH_SPEAR13XX
99 Say Y here if you want PCIe support on SPEAr13XX SoCs.
102 bool "TI Keystone PCIe controller"
103 depends on ARCH_KEYSTONE
107 Say Y here if you want to enable PCI controller support on Keystone
108 SoCs. The PCI controller on Keystone is based on Designware hardware
109 and therefore the driver re-uses the Designware core functions to
110 implement the driver.
113 bool "Xilinx AXI PCIe host bridge support"
114 depends on ARCH_ZYNQ || MICROBLAZE
116 Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
120 bool "X-Gene PCIe controller"
121 depends on ARCH_XGENE
124 select PCI_MSI_IRQ_DOMAIN if PCI_MSI
126 Say Y here if you want internal PCI support on APM X-Gene SoC.
127 There are 5 internal PCIe ports available. Each port is GEN3 capable
128 and have varied lanes from x1 to x8.
131 bool "X-Gene v1 PCIe MSI feature"
132 depends on PCI_XGENE && PCI_MSI
135 Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
136 This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
138 config PCI_LAYERSCAPE
139 bool "Freescale Layerscape PCIe controller"
140 depends on OF && (ARM || ARCH_LAYERSCAPE)
144 Say Y here if you want PCIe controller support on Layerscape SoCs.
147 bool "ARM Versatile PB PCI controller"
148 depends on ARCH_VERSATILE
153 This enables the iProc PCIe core controller support for Broadcom's
154 iProc family of SoCs. An appropriate bus interface driver needs
155 to be enabled to select this.
157 config PCIE_IPROC_PLATFORM
158 tristate "Broadcom iProc PCIe platform bus driver"
159 depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
162 default ARCH_BCM_IPROC
164 Say Y here if you want to use the Broadcom iProc PCIe controller
165 through the generic platform bus interface
167 config PCIE_IPROC_BCMA
168 tristate "Broadcom iProc PCIe BCMA bus driver"
169 depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
173 default ARCH_BCM_5301X
175 Say Y here if you want to use the Broadcom iProc PCIe controller
176 through the BCMA bus interface
178 config PCIE_IPROC_MSI
179 bool "Broadcom iProc PCIe MSI support"
180 depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
182 select PCI_MSI_IRQ_DOMAIN
183 default ARCH_BCM_IPROC
185 Say Y here if you want to enable MSI support for Broadcom's iProc
189 bool "Altera PCIe controller"
190 depends on ARM || NIOS2
194 Say Y here if you want to enable PCIe controller support on Altera
197 config PCIE_ALTERA_MSI
198 bool "Altera PCIe MSI feature"
199 depends on PCIE_ALTERA && PCI_MSI
200 select PCI_MSI_IRQ_DOMAIN
202 Say Y here if you want PCIe MSI support for the Altera FPGA.
203 This MSI driver supports Altera MSI to GIC controller IP.
206 depends on OF && ARM64
207 bool "HiSilicon Hip05 and Hip06 SoCs PCIe controllers"
211 Say Y here if you want PCIe controller support on HiSilicon
215 bool "Qualcomm PCIe controller"
216 depends on ARCH_QCOM && OF
220 Say Y here to enable PCIe controller support on Qualcomm SoCs. The
221 PCIe controller uses the Designware core plus Qualcomm-specific
224 config PCI_HOST_THUNDER_PEM
225 bool "Cavium Thunder PCIe controller to off-chip devices"
226 depends on OF && ARM64
227 select PCI_HOST_COMMON
229 Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
231 config PCI_HOST_THUNDER_ECAM
232 bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
233 depends on OF && ARM64
234 select PCI_HOST_COMMON
236 Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
238 config PCIE_ARMADA_8K
239 bool "Marvell Armada-8K PCIe controller"
240 depends on ARCH_MVEBU
244 Say Y here if you want to enable PCIe controller support on
245 Armada-8K SoCs. The PCIe controller on Armada-8K is based on
246 Designware hardware and therefore the driver re-uses the
247 Designware core functions to implement the driver.
250 bool "Axis ARTPEC-6 PCIe controller"
251 depends on MACH_ARTPEC6
252 depends on PCI_MSI_IRQ_DOMAIN
256 Say Y here to enable PCIe controller support on Axis ARTPEC-6
257 SoCs. This PCIe controller uses the DesignWare core.