xref: /OK3568_Linux_fs/kernel/drivers/pci/controller/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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_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
49config 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
58config 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
67config 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
76config 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
84config PCI_HOST_COMMON
85	tristate
86	select PCI_ECAM
87
88config 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
97config 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
105config 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
113config 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
122config 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
131config 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
137config PCI_VERSATILE
138	bool "ARM Versatile PB PCI controller"
139	depends on ARCH_VERSATILE || COMPILE_TEST
140
141config 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
148config 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
158config 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
168config 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
177config 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
184config 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
192config 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
200config 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
208config PCIE_ROCKCHIP
209	bool
210	depends on PCI
211
212config 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
224config 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
236config ROCKCHIP_PCIE_DMA_OBJ
237	bool "Rockchip PCIe uDMA transfer support"
238	depends on PCIE_ROCKCHIP_HOST || PCIE_DW_ROCKCHIP
239	default n
240	help
241	  Say y to enable p2p DMA transfer between PCIe components.
242
243config PCIE_MEDIATEK
244	tristate "MediaTek PCIe controller"
245	depends on ARCH_MEDIATEK || COMPILE_TEST
246	depends on OF
247	depends on PCI_MSI_IRQ_DOMAIN
248	help
249	  Say Y here if you want to enable PCIe controller support on
250	  MediaTek SoCs.
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
281config PCIE_BRCMSTB
282	tristate "Broadcom Brcmstb PCIe host controller"
283	depends on ARCH_BRCMSTB || ARCH_BCM2835 || COMPILE_TEST
284	depends on OF
285	depends on PCI_MSI_IRQ_DOMAIN
286	default ARCH_BRCMSTB
287	help
288	  Say Y here to enable PCIe host controller support for
289	  Broadcom STB based SoCs, like the Raspberry Pi 4.
290
291config PCI_HYPERV_INTERFACE
292	tristate "Hyper-V PCI Interface"
293	depends on X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64
294	help
295	  The Hyper-V PCI Interface is a helper driver allows other drivers to
296	  have a common interface with the Hyper-V PCI frontend driver.
297
298config PCI_LOONGSON
299	bool "LOONGSON PCI Controller"
300	depends on MACH_LOONGSON64 || COMPILE_TEST
301	depends on OF
302	depends on PCI_QUIRKS
303	default MACH_LOONGSON64
304	help
305	  Say Y here if you want to enable PCI controller support on
306	  Loongson systems.
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
319