blob: 028b287466fbf9bf69130282c24e7dbe26e12a92 [file] [log] [blame]
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00001# SPDX-License-Identifier: GPL-2.0
2
3menu "PCI controller drivers"
4 depends on PCI
5
6config PCI_MVEBU
7 bool "Marvell EBU PCIe controller"
8 depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST
9 depends on MVEBU_MBUS
10 depends on ARM
11 depends on OF
12
13config PCI_AARDVARK
14 bool "Aardvark PCIe controller"
15 depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
16 depends on OF
17 depends on PCI_MSI_IRQ_DOMAIN
18 help
19 Add support for Aardvark 64bit PCIe Host Controller. This
20 controller is part of the South Bridge of the Marvel Armada
21 3700 SoC.
22
23menu "Cadence PCIe controllers support"
24
25config PCIE_CADENCE
26 bool
27
28config PCIE_CADENCE_HOST
29 bool "Cadence PCIe host controller"
30 depends on OF
31 depends on PCI
32 select IRQ_DOMAIN
33 select PCIE_CADENCE
34 help
35 Say Y here if you want to support the Cadence PCIe controller in host
36 mode. This PCIe controller may be embedded into many different vendors
37 SoCs.
38
39config PCIE_CADENCE_EP
40 bool "Cadence PCIe endpoint controller"
41 depends on OF
42 depends on PCI_ENDPOINT
43 select PCIE_CADENCE
44 help
45 Say Y here if you want to support the Cadence PCIe controller in
46 endpoint mode. This PCIe controller may be embedded into many
47 different vendors SoCs.
48
49endmenu
50
51config PCIE_XILINX_NWL
52 bool "NWL PCIe Core"
53 depends on ARCH_ZYNQMP || COMPILE_TEST
54 depends on PCI_MSI_IRQ_DOMAIN
55 help
56 Say 'Y' here if you want kernel support for Xilinx
57 NWL PCIe controller. The controller can act as Root Port
58 or End Point. The current option selection will only
59 support root port enabling.
60
61config PCI_FTPCI100
62 bool "Faraday Technology FTPCI100 PCI controller"
63 depends on OF
64 default ARCH_GEMINI
65
66config PCI_TEGRA
67 bool "NVIDIA Tegra PCIe controller"
68 depends on ARCH_TEGRA || COMPILE_TEST
69 depends on PCI_MSI_IRQ_DOMAIN
70 help
71 Say Y here if you want support for the PCIe host controller found
72 on NVIDIA Tegra SoCs.
73
74config PCI_RCAR_GEN2
75 bool "Renesas R-Car Gen2 Internal PCI controller"
76 depends on ARCH_RENESAS || COMPILE_TEST
77 depends on ARM
78 help
79 Say Y here if you want internal PCI support on R-Car Gen2 SoC.
80 There are 3 internal PCI controllers available with a single
81 built-in EHCI/OHCI host controller present on each one.
82
83config PCIE_RCAR
84 bool "Renesas R-Car PCIe controller"
85 depends on ARCH_RENESAS || COMPILE_TEST
86 depends on PCI_MSI_IRQ_DOMAIN
87 help
88 Say Y here if you want PCIe controller support on R-Car SoCs.
89
90config PCI_HOST_COMMON
91 bool
92 select PCI_ECAM
93
94config PCI_HOST_GENERIC
95 bool "Generic PCI host controller"
96 depends on OF
97 select PCI_HOST_COMMON
98 select IRQ_DOMAIN
99 help
100 Say Y here if you want to support a simple generic PCI host
101 controller, such as the one emulated by kvmtool.
102
103config PCIE_XILINX
104 bool "Xilinx AXI PCIe host bridge support"
105 depends on OF || COMPILE_TEST
106 help
107 Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
108 Host Bridge driver.
109
110config PCI_XGENE
111 bool "X-Gene PCIe controller"
112 depends on ARM64 || COMPILE_TEST
113 depends on OF || (ACPI && PCI_QUIRKS)
114 help
115 Say Y here if you want internal PCI support on APM X-Gene SoC.
116 There are 5 internal PCIe ports available. Each port is GEN3 capable
117 and have varied lanes from x1 to x8.
118
119config PCI_XGENE_MSI
120 bool "X-Gene v1 PCIe MSI feature"
121 depends on PCI_XGENE
122 depends on PCI_MSI_IRQ_DOMAIN
123 default y
124 help
125 Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
126 This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
127
128config PCI_V3_SEMI
129 bool "V3 Semiconductor PCI controller"
130 depends on OF
131 depends on ARM || COMPILE_TEST
132 default ARCH_INTEGRATOR_AP
133
134config PCI_VERSATILE
135 bool "ARM Versatile PB PCI controller"
136 depends on ARCH_VERSATILE
137
138config PCIE_IPROC
139 tristate
140 help
141 This enables the iProc PCIe core controller support for Broadcom's
142 iProc family of SoCs. An appropriate bus interface driver needs
143 to be enabled to select this.
144
145config PCIE_IPROC_PLATFORM
146 tristate "Broadcom iProc PCIe platform bus driver"
147 depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
148 depends on OF
149 select PCIE_IPROC
150 default ARCH_BCM_IPROC
151 help
152 Say Y here if you want to use the Broadcom iProc PCIe controller
153 through the generic platform bus interface
154
155config PCIE_IPROC_BCMA
156 tristate "Broadcom iProc PCIe BCMA bus driver"
157 depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
158 select PCIE_IPROC
159 select BCMA
160 default ARCH_BCM_5301X
161 help
162 Say Y here if you want to use the Broadcom iProc PCIe controller
163 through the BCMA bus interface
164
165config PCIE_IPROC_MSI
166 bool "Broadcom iProc PCIe MSI support"
167 depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
168 depends on PCI_MSI_IRQ_DOMAIN
169 default ARCH_BCM_IPROC
170 help
171 Say Y here if you want to enable MSI support for Broadcom's iProc
172 PCIe controller
173
174config PCIE_ALTERA
175 bool "Altera PCIe controller"
176 depends on ARM || NIOS2 || COMPILE_TEST
177 help
178 Say Y here if you want to enable PCIe controller support on Altera
179 FPGA.
180
181config PCIE_ALTERA_MSI
182 bool "Altera PCIe MSI feature"
183 depends on PCIE_ALTERA
184 depends on PCI_MSI_IRQ_DOMAIN
185 help
186 Say Y here if you want PCIe MSI support for the Altera FPGA.
187 This MSI driver supports Altera MSI to GIC controller IP.
188
189config PCI_HOST_THUNDER_PEM
190 bool "Cavium Thunder PCIe controller to off-chip devices"
191 depends on ARM64 || COMPILE_TEST
192 depends on OF || (ACPI && PCI_QUIRKS)
193 select PCI_HOST_COMMON
194 help
195 Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
196
197config PCI_HOST_THUNDER_ECAM
198 bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
199 depends on ARM64 || COMPILE_TEST
200 depends on OF || (ACPI && PCI_QUIRKS)
201 select PCI_HOST_COMMON
202 help
203 Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
204
205config PCIE_ROCKCHIP
206 bool
207 depends on PCI
208
209config PCIE_ROCKCHIP_HOST
210 tristate "Rockchip PCIe host controller"
211 depends on ARCH_ROCKCHIP || COMPILE_TEST
212 depends on OF
213 depends on PCI_MSI_IRQ_DOMAIN
214 select MFD_SYSCON
215 select PCIE_ROCKCHIP
216 help
217 Say Y here if you want internal PCI support on Rockchip SoC.
218 There is 1 internal PCIe port available to support GEN2 with
219 4 slots.
220
221config PCIE_ROCKCHIP_EP
222 bool "Rockchip PCIe endpoint controller"
223 depends on ARCH_ROCKCHIP || COMPILE_TEST
224 depends on OF
225 depends on PCI_ENDPOINT
226 select MFD_SYSCON
227 select PCIE_ROCKCHIP
228 help
229 Say Y here if you want to support Rockchip PCIe controller in
230 endpoint mode on Rockchip SoC. There is 1 internal PCIe port
231 available to support GEN2 with 4 slots.
232
233config PCIE_MEDIATEK
234 bool "MediaTek PCIe controller"
235 depends on ARCH_MEDIATEK || COMPILE_TEST
236 depends on OF
237 depends on PCI_MSI_IRQ_DOMAIN
238 help
239 Say Y here if you want to enable PCIe controller support on
240 MediaTek SoCs.
241
242config PCIE_MOBIVEIL
243 bool "Mobiveil AXI PCIe controller"
244 depends on ARCH_ZYNQMP || COMPILE_TEST
245 depends on OF
246 depends on PCI_MSI_IRQ_DOMAIN
247 help
248 Say Y here if you want to enable support for the Mobiveil AXI PCIe
249 Soft IP. It has up to 8 outbound and inbound windows
250 for address translation and it is a PCIe Gen4 IP.
251
252config PCIE_TANGO_SMP8759
253 bool "Tango SMP8759 PCIe controller (DANGEROUS)"
254 depends on ARCH_TANGO && PCI_MSI && OF
255 depends on BROKEN
256 select PCI_HOST_COMMON
257 help
258 Say Y here to enable PCIe controller support for Sigma Designs
259 Tango SMP8759-based systems.
260
261 Note: The SMP8759 controller multiplexes PCI config and MMIO
262 accesses, and Linux doesn't provide a way to serialize them.
263 This can lead to data corruption if drivers perform concurrent
264 config and MMIO accesses.
265
266config VMD
267 depends on PCI_MSI && X86_64 && SRCU
268 tristate "Intel Volume Management Device Driver"
269 ---help---
270 Adds support for the Intel Volume Management Device (VMD). VMD is a
271 secondary PCI host bridge that allows PCI Express root ports,
272 and devices attached to them, to be removed from the default
273 PCI domain and placed within the VMD domain. This provides
274 more bus resources than are otherwise possible with a
275 single domain. If you know your system provides one of these and
276 has devices attached to it, say Y; if you are not sure, say N.
277
278 To compile this driver as a module, choose M here: the
279 module will be called vmd.
280
281source "drivers/pci/controller/dwc/Kconfig"
282endmenu