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