summaryrefslogtreecommitdiffstats
path: root/drivers/pci/controller/Kconfig
blob: d1c5fcf00a8a2b0834624434edcbb491df06fc89 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
# SPDX-License-Identifier: GPL-2.0

menu "PCI controller drivers"
	depends on PCI

config PCI_MVEBU
	tristate "Marvell EBU PCIe controller"
	depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST
	depends on MVEBU_MBUS
	depends on ARM
	depends on OF
	select PCI_BRIDGE_EMUL
	help
	 Add support for Marvell EBU PCIe controller. This PCIe controller
	 is used on 32-bit Marvell ARM SoCs: Dove, Kirkwood, Armada 370,
	 Armada XP, Armada 375, Armada 38x and Armada 39x.

config PCI_AARDVARK
	tristate "Aardvark PCIe controller"
	depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
	depends on OF
	depends on PCI_MSI_IRQ_DOMAIN
	select PCI_BRIDGE_EMUL
	help
	 Add support for Aardvark 64bit PCIe Host Controller. This
	 controller is part of the South Bridge of the Marvel Armada
	 3700 SoC.

config PCIE_XILINX_NWL
	bool "NWL PCIe Core"
	depends on ARCH_ZYNQMP || COMPILE_TEST
	depends on PCI_MSI_IRQ_DOMAIN
	help
	 Say 'Y' here if you want kernel support for Xilinx
	 NWL PCIe controller. The controller can act as Root Port
	 or End Point. The current option selection will only
	 support root port enabling.

config PCI_FTPCI100
	bool "Faraday Technology FTPCI100 PCI controller"
	depends on OF
	default ARCH_GEMINI

config PCI_IXP4XX
	bool "Intel IXP4xx PCI controller"
	depends on ARM && OF
	depends on ARCH_IXP4XX || COMPILE_TEST
	default ARCH_IXP4XX
	help
	  Say Y here if you want support for the PCI host controller found
	  in the Intel IXP4xx XScale-based network processor SoC.

config PCI_TEGRA
	bool "NVIDIA Tegra PCIe controller"
	depends on ARCH_TEGRA || COMPILE_TEST
	depends on PCI_MSI_IRQ_DOMAIN
	help
	  Say Y here if you want support for the PCIe host controller found
	  on NVIDIA Tegra SoCs.

config PCI_RCAR_GEN2
	bool "Renesas R-Car Gen2 Internal PCI controller"
	depends on ARCH_RENESAS || COMPILE_TEST
	depends on ARM
	help
	  Say Y here if you want internal PCI support on R-Car Gen2 SoC.
	  There are 3 internal PCI controllers available with a single
	  built-in EHCI/OHCI host controller present on each one.

config PCIE_RCAR_HOST
	bool "Renesas R-Car PCIe host controller"
	depends on ARCH_RENESAS || COMPILE_TEST
	depends on PCI_MSI_IRQ_DOMAIN
	help
	  Say Y here if you want PCIe controller support on R-Car SoCs in host
	  mode.

config PCIE_RCAR_EP
	bool "Renesas R-Car PCIe endpoint controller"
	depends on ARCH_RENESAS || COMPILE_TEST
	depends on PCI_ENDPOINT
	help
	  Say Y here if you want PCIe controller support on R-Car SoCs in
	  endpoint mode.

config PCI_HOST_COMMON
	tristate
	select PCI_ECAM

config PCI_HOST_GENERIC
	tristate "Generic PCI host controller"
	depends on OF
	select PCI_HOST_COMMON
	select IRQ_DOMAIN
	help
	  Say Y here if you want to support a simple generic PCI host
	  controller, such as the one emulated by kvmtool.

config PCIE_XILINX
	bool "Xilinx AXI PCIe host bridge support"
	depends on OF || COMPILE_TEST
	depends on PCI_MSI_IRQ_DOMAIN
	help
	  Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
	  Host Bridge driver.

config PCIE_XILINX_CPM
	bool "Xilinx Versal CPM host bridge support"
	depends on ARCH_ZYNQMP || COMPILE_TEST
	select PCI_HOST_COMMON
	help
	  Say 'Y' here if you want kernel support for the
	  Xilinx Versal CPM host bridge.

config PCI_XGENE
	bool "X-Gene PCIe controller"
	depends on ARM64 || COMPILE_TEST
	depends on OF || (ACPI && PCI_QUIRKS)
	help
	  Say Y here if you want internal PCI support on APM X-Gene SoC.
	  There are 5 internal PCIe ports available. Each port is GEN3 capable
	  and have varied lanes from x1 to x8.

config PCI_XGENE_MSI
	bool "X-Gene v1 PCIe MSI feature"
	depends on PCI_XGENE
	depends on PCI_MSI_IRQ_DOMAIN
	default y
	help
	  Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
	  This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.

config PCI_V3_SEMI
	bool "V3 Semiconductor PCI controller"
	depends on OF
	depends on ARM || COMPILE_TEST
	default ARCH_INTEGRATOR_AP

config PCI_VERSATILE
	bool "ARM Versatile PB PCI controller"
	depends on ARCH_VERSATILE || COMPILE_TEST

config PCIE_IPROC
	tristate
	help
	  This enables the iProc PCIe core controller support for Broadcom's
	  iProc family of SoCs. An appropriate bus interface driver needs
	  to be enabled to select this.

config PCIE_IPROC_PLATFORM
	tristate "Broadcom iProc PCIe platform bus driver"
	depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
	depends on OF
	select PCIE_IPROC
	default ARCH_BCM_IPROC
	help
	  Say Y here if you want to use the Broadcom iProc PCIe controller
	  through the generic platform bus interface

config PCIE_IPROC_BCMA
	tristate "Broadcom iProc PCIe BCMA bus driver"
	depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
	select PCIE_IPROC
	select BCMA
	default ARCH_BCM_5301X
	help
	  Say Y here if you want to use the Broadcom iProc PCIe controller
	  through the BCMA bus interface

config PCIE_IPROC_MSI
	bool "Broadcom iProc PCIe MSI support"
	depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
	depends on PCI_MSI_IRQ_DOMAIN
	default ARCH_BCM_IPROC
	help
	  Say Y here if you want to enable MSI support for Broadcom's iProc
	  PCIe controller

config PCIE_ALTERA
	tristate "Altera PCIe controller"
	depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
	help
	  Say Y here if you want to enable PCIe controller support on Altera
	  FPGA.

config PCIE_ALTERA_MSI
	tristate "Altera PCIe MSI feature"
	depends on PCIE_ALTERA
	depends on PCI_MSI_IRQ_DOMAIN
	help
	  Say Y here if you want PCIe MSI support for the Altera FPGA.
	  This MSI driver supports Altera MSI to GIC controller IP.

config PCI_HOST_THUNDER_PEM
	bool "Cavium Thunder PCIe controller to off-chip devices"
	depends on ARM64 || COMPILE_TEST
	depends on OF || (ACPI && PCI_QUIRKS)
	select PCI_HOST_COMMON
	help
	  Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.

config PCI_HOST_THUNDER_ECAM
	bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
	depends on ARM64 || COMPILE_TEST
	depends on OF || (ACPI && PCI_QUIRKS)
	select PCI_HOST_COMMON
	help
	  Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.

config PCIE_ROCKCHIP
	bool
	depends on PCI

config PCIE_ROCKCHIP_HOST
	tristate "Rockchip PCIe host controller"
	depends on ARCH_ROCKCHIP || COMPILE_TEST
	depends on OF
	depends on PCI_MSI_IRQ_DOMAIN
	select MFD_SYSCON
	select PCIE_ROCKCHIP
	help
	  Say Y here if you want internal PCI support on Rockchip SoC.
	  There is 1 internal PCIe port available to support GEN2 with
	  4 slots.

config PCIE_ROCKCHIP_EP
	bool "Rockchip PCIe endpoint controller"
	depends on ARCH_ROCKCHIP || COMPILE_TEST
	depends on OF
	depends on PCI_ENDPOINT
	select MFD_SYSCON
	select PCIE_ROCKCHIP
	help
	  Say Y here if you want to support Rockchip PCIe controller in
	  endpoint mode on Rockchip SoC. There is 1 internal PCIe port
	  available to support GEN2 with 4 slots.

config PCIE_MEDIATEK
	tristate "MediaTek PCIe controller"
	depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST
	depends on OF
	depends on PCI_MSI_IRQ_DOMAIN
	help
	  Say Y here if you want to enable PCIe controller support on
	  MediaTek SoCs.

config PCIE_MEDIATEK_GEN3
	tristate "MediaTek Gen3 PCIe controller"
	depends on ARCH_MEDIATEK || COMPILE_TEST
	depends on PCI_MSI_IRQ_DOMAIN
	help
	  Adds support for PCIe Gen3 MAC controller for MediaTek SoCs.
	  This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed,
	  and support up to 256 MSI interrupt numbers for
	  multi-function devices.

	  Say Y here if you want to enable Gen3 PCIe controller support on
	  MediaTek SoCs.

config VMD
	depends on PCI_MSI && X86_64 && SRCU && !UML
	tristate "Intel Volume Management Device Driver"
	help
	  Adds support for the Intel Volume Management Device (VMD). VMD is a
	  secondary PCI host bridge that allows PCI Express root ports,
	  and devices attached to them, to be removed from the default
	  PCI domain and placed within the VMD domain. This provides
	  more bus resources than are otherwise possible with a
	  single domain. If you know your system provides one of these and
	  has devices attached to it, say Y; if you are not sure, say N.

	  To compile this driver as a module, choose M here: the
	  module will be called vmd.

config PCIE_BRCMSTB
	tristate "Broadcom Brcmstb PCIe host controller"
	depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCM4908 || \
		   BMIPS_GENERIC || COMPILE_TEST
	depends on OF
	depends on PCI_MSI_IRQ_DOMAIN
	default ARCH_BRCMSTB || BMIPS_GENERIC
	help
	  Say Y here to enable PCIe host controller support for
	  Broadcom STB based SoCs, like the Raspberry Pi 4.

config PCI_HYPERV_INTERFACE
	tristate "Hyper-V PCI Interface"
	depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN
	help
	  The Hyper-V PCI Interface is a helper driver allows other drivers to
	  have a common interface with the Hyper-V PCI frontend driver.

config PCI_LOONGSON
	bool "LOONGSON PCI Controller"
	depends on MACH_LOONGSON64 || COMPILE_TEST
	depends on OF || ACPI
	depends on PCI_QUIRKS
	default MACH_LOONGSON64
	help
	  Say Y here if you want to enable PCI controller support on
	  Loongson systems.

config PCIE_MICROCHIP_HOST
	bool "Microchip AXI PCIe host bridge support"
	depends on PCI_MSI && OF
	select PCI_MSI_IRQ_DOMAIN
	select GENERIC_MSI_IRQ_DOMAIN
	select PCI_HOST_COMMON
	help
	  Say Y here if you want kernel to support the Microchip AXI PCIe
	  Host Bridge driver.

config PCIE_HISI_ERR
	depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST)
	bool "HiSilicon HIP PCIe controller error handling driver"
	help
	  Say Y here if you want error handling support
	  for the PCIe controller's errors on HiSilicon HIP SoCs

config PCIE_APPLE_MSI_DOORBELL_ADDR
	hex
	default 0xfffff000
	depends on PCIE_APPLE

config PCIE_APPLE
	tristate "Apple PCIe controller"
	depends on ARCH_APPLE || COMPILE_TEST
	depends on OF
	depends on PCI_MSI_IRQ_DOMAIN
	select PCI_HOST_COMMON
	help
	  Say Y here if you want to enable PCIe controller support on Apple
	  system-on-chips, like the Apple M1. This is required for the USB
	  type-A ports, Ethernet, Wi-Fi, and Bluetooth.

	  If unsure, say Y if you have an Apple Silicon system.

config PCIE_MT7621
	tristate "MediaTek MT7621 PCIe Controller"
	depends on SOC_MT7621 || COMPILE_TEST
	select PHY_MT7621_PCI
	default SOC_MT7621
	help
	  This selects a driver for the MediaTek MT7621 PCIe Controller.

source "drivers/pci/controller/dwc/Kconfig"
source "drivers/pci/controller/mobiveil/Kconfig"
source "drivers/pci/controller/cadence/Kconfig"
endmenu