Loading...
Note: File does not exist in v3.1.
1# 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 select PCI_BRIDGE_EMUL
13
14config PCI_AARDVARK
15 tristate "Aardvark PCIe controller"
16 depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
17 depends on OF
18 depends on PCI_MSI_IRQ_DOMAIN
19 select PCI_BRIDGE_EMUL
20 help
21 Add support for Aardvark 64bit PCIe Host Controller. This
22 controller is part of the South Bridge of the Marvel Armada
23 3700 SoC.
24
25config PCIE_XILINX_NWL
26 bool "NWL PCIe Core"
27 depends on ARCH_ZYNQMP || COMPILE_TEST
28 depends on PCI_MSI_IRQ_DOMAIN
29 help
30 Say 'Y' here if you want kernel support for Xilinx
31 NWL PCIe controller. The controller can act as Root Port
32 or End Point. The current option selection will only
33 support root port enabling.
34
35config PCI_FTPCI100
36 bool "Faraday Technology FTPCI100 PCI controller"
37 depends on OF
38 default ARCH_GEMINI
39
40config PCI_IXP4XX
41 bool "Intel IXP4xx PCI controller"
42 depends on ARM && OF
43 depends on ARCH_IXP4XX || COMPILE_TEST
44 default ARCH_IXP4XX
45 help
46 Say Y here if you want support for the PCI host controller found
47 in the Intel IXP4xx XScale-based network processor SoC.
48
49config PCI_TEGRA
50 bool "NVIDIA Tegra PCIe controller"
51 depends on ARCH_TEGRA || COMPILE_TEST
52 depends on PCI_MSI_IRQ_DOMAIN
53 help
54 Say Y here if you want support for the PCIe host controller found
55 on NVIDIA Tegra SoCs.
56
57config PCI_RCAR_GEN2
58 bool "Renesas R-Car Gen2 Internal PCI controller"
59 depends on ARCH_RENESAS || COMPILE_TEST
60 depends on ARM
61 help
62 Say Y here if you want internal PCI support on R-Car Gen2 SoC.
63 There are 3 internal PCI controllers available with a single
64 built-in EHCI/OHCI host controller present on each one.
65
66config PCIE_RCAR_HOST
67 bool "Renesas R-Car PCIe host controller"
68 depends on ARCH_RENESAS || COMPILE_TEST
69 depends on PCI_MSI_IRQ_DOMAIN
70 help
71 Say Y here if you want PCIe controller support on R-Car SoCs in host
72 mode.
73
74config PCIE_RCAR_EP
75 bool "Renesas R-Car PCIe endpoint controller"
76 depends on ARCH_RENESAS || COMPILE_TEST
77 depends on PCI_ENDPOINT
78 help
79 Say Y here if you want PCIe controller support on R-Car SoCs in
80 endpoint mode.
81
82config PCI_HOST_COMMON
83 tristate
84 select PCI_ECAM
85
86config PCI_HOST_GENERIC
87 tristate "Generic PCI host controller"
88 depends on OF
89 select PCI_HOST_COMMON
90 select IRQ_DOMAIN
91 help
92 Say Y here if you want to support a simple generic PCI host
93 controller, such as the one emulated by kvmtool.
94
95config PCIE_XILINX
96 bool "Xilinx AXI PCIe host bridge support"
97 depends on OF || COMPILE_TEST
98 depends on PCI_MSI_IRQ_DOMAIN
99 help
100 Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
101 Host Bridge driver.
102
103config PCIE_XILINX_CPM
104 bool "Xilinx Versal CPM host bridge support"
105 depends on ARCH_ZYNQMP || COMPILE_TEST
106 select PCI_HOST_COMMON
107 help
108 Say 'Y' here if you want kernel support for the
109 Xilinx Versal CPM host bridge.
110
111config PCI_XGENE
112 bool "X-Gene PCIe controller"
113 depends on ARM64 || COMPILE_TEST
114 depends on OF || (ACPI && PCI_QUIRKS)
115 help
116 Say Y here if you want internal PCI support on APM X-Gene SoC.
117 There are 5 internal PCIe ports available. Each port is GEN3 capable
118 and have varied lanes from x1 to x8.
119
120config PCI_XGENE_MSI
121 bool "X-Gene v1 PCIe MSI feature"
122 depends on PCI_XGENE
123 depends on PCI_MSI_IRQ_DOMAIN
124 default y
125 help
126 Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
127 This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
128
129config PCI_V3_SEMI
130 bool "V3 Semiconductor PCI controller"
131 depends on OF
132 depends on ARM || COMPILE_TEST
133 default ARCH_INTEGRATOR_AP
134
135config PCI_VERSATILE
136 bool "ARM Versatile PB PCI controller"
137 depends on ARCH_VERSATILE || COMPILE_TEST
138
139config PCIE_IPROC
140 tristate
141 help
142 This enables the iProc PCIe core controller support for Broadcom's
143 iProc family of SoCs. An appropriate bus interface driver needs
144 to be enabled to select this.
145
146config PCIE_IPROC_PLATFORM
147 tristate "Broadcom iProc PCIe platform bus driver"
148 depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
149 depends on OF
150 select PCIE_IPROC
151 default ARCH_BCM_IPROC
152 help
153 Say Y here if you want to use the Broadcom iProc PCIe controller
154 through the generic platform bus interface
155
156config PCIE_IPROC_BCMA
157 tristate "Broadcom iProc PCIe BCMA bus driver"
158 depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
159 select PCIE_IPROC
160 select BCMA
161 default ARCH_BCM_5301X
162 help
163 Say Y here if you want to use the Broadcom iProc PCIe controller
164 through the BCMA bus interface
165
166config PCIE_IPROC_MSI
167 bool "Broadcom iProc PCIe MSI support"
168 depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
169 depends on PCI_MSI_IRQ_DOMAIN
170 default ARCH_BCM_IPROC
171 help
172 Say Y here if you want to enable MSI support for Broadcom's iProc
173 PCIe controller
174
175config PCIE_ALTERA
176 tristate "Altera PCIe controller"
177 depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
178 help
179 Say Y here if you want to enable PCIe controller support on Altera
180 FPGA.
181
182config PCIE_ALTERA_MSI
183 tristate "Altera PCIe MSI feature"
184 depends on PCIE_ALTERA
185 depends on PCI_MSI_IRQ_DOMAIN
186 help
187 Say Y here if you want PCIe MSI support for the Altera FPGA.
188 This MSI driver supports Altera MSI to GIC controller IP.
189
190config PCI_HOST_THUNDER_PEM
191 bool "Cavium Thunder PCIe controller to off-chip devices"
192 depends on ARM64 || COMPILE_TEST
193 depends on OF || (ACPI && PCI_QUIRKS)
194 select PCI_HOST_COMMON
195 help
196 Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
197
198config PCI_HOST_THUNDER_ECAM
199 bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
200 depends on ARM64 || COMPILE_TEST
201 depends on OF || (ACPI && PCI_QUIRKS)
202 select PCI_HOST_COMMON
203 help
204 Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
205
206config PCIE_ROCKCHIP
207 bool
208 depends on PCI
209
210config PCIE_ROCKCHIP_HOST
211 tristate "Rockchip PCIe host controller"
212 depends on ARCH_ROCKCHIP || COMPILE_TEST
213 depends on OF
214 depends on PCI_MSI_IRQ_DOMAIN
215 select MFD_SYSCON
216 select PCIE_ROCKCHIP
217 help
218 Say Y here if you want internal PCI support on Rockchip SoC.
219 There is 1 internal PCIe port available to support GEN2 with
220 4 slots.
221
222config PCIE_ROCKCHIP_EP
223 bool "Rockchip PCIe endpoint controller"
224 depends on ARCH_ROCKCHIP || COMPILE_TEST
225 depends on OF
226 depends on PCI_ENDPOINT
227 select MFD_SYSCON
228 select PCIE_ROCKCHIP
229 help
230 Say Y here if you want to support Rockchip PCIe controller in
231 endpoint mode on Rockchip SoC. There is 1 internal PCIe port
232 available to support GEN2 with 4 slots.
233
234config PCIE_MEDIATEK
235 tristate "MediaTek PCIe controller"
236 depends on ARCH_MEDIATEK || COMPILE_TEST
237 depends on OF
238 depends on PCI_MSI_IRQ_DOMAIN
239 help
240 Say Y here if you want to enable PCIe controller support on
241 MediaTek SoCs.
242
243config PCIE_MEDIATEK_GEN3
244 tristate "MediaTek Gen3 PCIe controller"
245 depends on ARCH_MEDIATEK || COMPILE_TEST
246 depends on PCI_MSI_IRQ_DOMAIN
247 help
248 Adds support for PCIe Gen3 MAC controller for MediaTek SoCs.
249 This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed,
250 and support up to 256 MSI interrupt numbers for
251 multi-function devices.
252
253 Say Y here if you want to enable Gen3 PCIe controller support on
254 MediaTek SoCs.
255
256config VMD
257 depends on PCI_MSI && X86_64 && SRCU
258 tristate "Intel Volume Management Device Driver"
259 help
260 Adds support for the Intel Volume Management Device (VMD). VMD is a
261 secondary PCI host bridge that allows PCI Express root ports,
262 and devices attached to them, to be removed from the default
263 PCI domain and placed within the VMD domain. This provides
264 more bus resources than are otherwise possible with a
265 single domain. If you know your system provides one of these and
266 has devices attached to it, say Y; if you are not sure, say N.
267
268 To compile this driver as a module, choose M here: the
269 module will be called vmd.
270
271config PCIE_BRCMSTB
272 tristate "Broadcom Brcmstb PCIe host controller"
273 depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCM4908 || COMPILE_TEST
274 depends on OF
275 depends on PCI_MSI_IRQ_DOMAIN
276 default ARCH_BRCMSTB
277 help
278 Say Y here to enable PCIe host controller support for
279 Broadcom STB based SoCs, like the Raspberry Pi 4.
280
281config PCI_HYPERV_INTERFACE
282 tristate "Hyper-V PCI Interface"
283 depends on X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64
284 help
285 The Hyper-V PCI Interface is a helper driver allows other drivers to
286 have a common interface with the Hyper-V PCI frontend driver.
287
288config PCI_LOONGSON
289 bool "LOONGSON PCI Controller"
290 depends on MACH_LOONGSON64 || COMPILE_TEST
291 depends on OF
292 depends on PCI_QUIRKS
293 default MACH_LOONGSON64
294 help
295 Say Y here if you want to enable PCI controller support on
296 Loongson systems.
297
298config PCIE_MICROCHIP_HOST
299 bool "Microchip AXI PCIe host bridge support"
300 depends on PCI_MSI && OF
301 select PCI_MSI_IRQ_DOMAIN
302 select GENERIC_MSI_IRQ_DOMAIN
303 select PCI_HOST_COMMON
304 help
305 Say Y here if you want kernel to support the Microchip AXI PCIe
306 Host Bridge driver.
307
308config PCIE_HISI_ERR
309 depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST)
310 bool "HiSilicon HIP PCIe controller error handling driver"
311 help
312 Say Y here if you want error handling support
313 for the PCIe controller's errors on HiSilicon HIP SoCs
314
315source "drivers/pci/controller/dwc/Kconfig"
316source "drivers/pci/controller/mobiveil/Kconfig"
317source "drivers/pci/controller/cadence/Kconfig"
318endmenu