hc
2025-02-14 bbb9540dc49f70f6b703d1c8d1b85fa5f602d86e
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
# SPDX-License-Identifier: GPL-2.0
 
menu "PCI controller drivers"
   depends on PCI
 
config PCI_MVEBU
   bool "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
 
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_TEGRA
   bool "NVIDIA Tegra PCIe controller"
   depends on ARCH_TEGRA || COMPILE_TEST
   depends on PCI_MSI_IRQ_DOMAIN
   select PCI_MSI_ARCH_FALLBACKS
   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
   bool "Renesas R-Car PCIe controller"
   depends on ARCH_RENESAS || COMPILE_TEST
   depends on PCI_MSI_IRQ_DOMAIN
   select PCIE_RCAR_HOST
   help
     Say Y here if you want PCIe controller support on R-Car SoCs.
     This option will be removed after arm64 defconfig is updated.
 
config PCIE_RCAR_HOST
   bool "Renesas R-Car PCIe host controller"
   depends on ARCH_RENESAS || COMPILE_TEST
   depends on PCI_MSI_IRQ_DOMAIN
   select PCI_MSI_ARCH_FALLBACKS
   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
   select PCI_MSI_ARCH_FALLBACKS
   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 ROCKCHIP_PCIE_DMA_OBJ
   bool "Rockchip PCIe uDMA transfer support"
   depends on PCIE_ROCKCHIP_HOST || PCIE_DW_ROCKCHIP
   default n
   help
     Say y to enable p2p DMA transfer between PCIe components.
 
config PCIE_MEDIATEK
   tristate "MediaTek PCIe controller"
   depends on 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_TANGO_SMP8759
   bool "Tango SMP8759 PCIe controller (DANGEROUS)"
   depends on ARCH_TANGO && PCI_MSI && OF
   depends on BROKEN
   select PCI_HOST_COMMON
   help
     Say Y here to enable PCIe controller support for Sigma Designs
     Tango SMP8759-based systems.
 
     Note: The SMP8759 controller multiplexes PCI config and MMIO
     accesses, and Linux doesn't provide a way to serialize them.
     This can lead to data corruption if drivers perform concurrent
     config and MMIO accesses.
 
config VMD
   depends on PCI_MSI && X86_64 && SRCU
   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 || COMPILE_TEST
   depends on OF
   depends on PCI_MSI_IRQ_DOMAIN
   default ARCH_BRCMSTB
   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 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64
   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
   depends on PCI_QUIRKS
   default MACH_LOONGSON64
   help
     Say Y here if you want to enable PCI controller support on
     Loongson systems.
 
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
 
source "drivers/pci/controller/dwc/Kconfig"
source "drivers/pci/controller/mobiveil/Kconfig"
source "drivers/pci/controller/cadence/Kconfig"
endmenu