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