blob: ba4b02397ac0886858ffc3d80d9030467b7027e3 [file] [log] [blame]
rjw1f884582022-01-06 17:20:42 +08001menu "PCI host controller drivers"
2 depends on PCI
3
4config PCI_MVEBU
5 bool "Marvell EBU PCIe controller"
6 depends on ARCH_MVEBU || ARCH_DOVE
7 depends on ARM
8 depends on OF
9
10config PCI_AARDVARK
11 bool "Aardvark PCIe controller"
12 depends on ARCH_MVEBU && ARM64
13 depends on OF
14 depends on PCI_MSI_IRQ_DOMAIN
15 help
16 Add support for Aardvark 64bit PCIe Host Controller. This
17 controller is part of the South Bridge of the Marvel Armada
18 3700 SoC.
19
20config PCIE_XILINX_NWL
21 bool "NWL PCIe Core"
22 depends on ARCH_ZYNQMP
23 depends on PCI_MSI_IRQ_DOMAIN
24 help
25 Say 'Y' here if you want kernel support for Xilinx
26 NWL PCIe controller. The controller can act as Root Port
27 or End Point. The current option selection will only
28 support root port enabling.
29
30config PCI_FTPCI100
31 bool "Faraday Technology FTPCI100 PCI controller"
32 depends on OF
33 depends on ARM
34 default ARCH_GEMINI
35
36config PCI_TEGRA
37 bool "NVIDIA Tegra PCIe controller"
38 depends on ARCH_TEGRA
39 help
40 Say Y here if you want support for the PCIe host controller found
41 on NVIDIA Tegra SoCs.
42
43config PCI_RCAR_GEN2
44 bool "Renesas R-Car Gen2 Internal PCI controller"
45 depends on ARM
46 depends on ARCH_RENESAS || COMPILE_TEST
47 help
48 Say Y here if you want internal PCI support on R-Car Gen2 SoC.
49 There are 3 internal PCI controllers available with a single
50 built-in EHCI/OHCI host controller present on each one.
51
52config PCIE_RCAR
53 bool "Renesas R-Car PCIe controller"
54 depends on ARCH_RENESAS || (ARM && COMPILE_TEST)
55 depends on PCI_MSI_IRQ_DOMAIN
56 help
57 Say Y here if you want PCIe controller support on R-Car SoCs.
58
59config PCI_HOST_COMMON
60 bool
61 select PCI_ECAM
62
63config PCI_HOST_GENERIC
64 bool "Generic PCI host controller"
65 depends on (ARM || ARM64) && OF
66 select PCI_HOST_COMMON
67 select IRQ_DOMAIN
68 help
69 Say Y here if you want to support a simple generic PCI host
70 controller, such as the one emulated by kvmtool.
71
72config PCIE_XILINX
73 bool "Xilinx AXI PCIe host bridge support"
74 depends on ARCH_ZYNQ || MICROBLAZE || (MIPS && PCI_DRIVERS_GENERIC)
75 help
76 Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
77 Host Bridge driver.
78
79config PCI_XGENE
80 bool "X-Gene PCIe controller"
81 depends on ARM64
82 depends on OF || (ACPI && PCI_QUIRKS)
83 select PCIEPORTBUS
84 help
85 Say Y here if you want internal PCI support on APM X-Gene SoC.
86 There are 5 internal PCIe ports available. Each port is GEN3 capable
87 and have varied lanes from x1 to x8.
88
89config PCI_XGENE_MSI
90 bool "X-Gene v1 PCIe MSI feature"
91 depends on PCI_XGENE
92 depends on PCI_MSI_IRQ_DOMAIN
93 default y
94 help
95 Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
96 This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
97
98config PCI_VERSATILE
99 bool "ARM Versatile PB PCI controller"
100 depends on ARCH_VERSATILE
101
102config PCIE_IPROC
103 tristate
104 select PCI_DOMAINS
105 help
106 This enables the iProc PCIe core controller support for Broadcom's
107 iProc family of SoCs. An appropriate bus interface driver needs
108 to be enabled to select this.
109
110config PCIE_IPROC_PLATFORM
111 tristate "Broadcom iProc PCIe platform bus driver"
112 depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
113 depends on OF
114 select PCIE_IPROC
115 default ARCH_BCM_IPROC
116 help
117 Say Y here if you want to use the Broadcom iProc PCIe controller
118 through the generic platform bus interface
119
120config PCIE_IPROC_BCMA
121 tristate "Broadcom iProc PCIe BCMA bus driver"
122 depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
123 select PCIE_IPROC
124 select BCMA
125 default ARCH_BCM_5301X
126 help
127 Say Y here if you want to use the Broadcom iProc PCIe controller
128 through the BCMA bus interface
129
130config PCIE_IPROC_MSI
131 bool "Broadcom iProc PCIe MSI support"
132 depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
133 depends on PCI_MSI_IRQ_DOMAIN
134 default ARCH_BCM_IPROC
135 help
136 Say Y here if you want to enable MSI support for Broadcom's iProc
137 PCIe controller
138
139config PCIE_ALTERA
140 bool "Altera PCIe controller"
141 depends on ARM || NIOS2
142 depends on OF_PCI
143 select PCI_DOMAINS
144 help
145 Say Y here if you want to enable PCIe controller support on Altera
146 FPGA.
147
148config PCIE_ALTERA_MSI
149 bool "Altera PCIe MSI feature"
150 depends on PCIE_ALTERA
151 depends on PCI_MSI_IRQ_DOMAIN
152 help
153 Say Y here if you want PCIe MSI support for the Altera FPGA.
154 This MSI driver supports Altera MSI to GIC controller IP.
155
156config PCI_HOST_THUNDER_PEM
157 bool "Cavium Thunder PCIe controller to off-chip devices"
158 depends on ARM64
159 depends on OF || (ACPI && PCI_QUIRKS)
160 select PCI_HOST_COMMON
161 help
162 Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
163
164config PCI_HOST_THUNDER_ECAM
165 bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
166 depends on ARM64
167 depends on OF || (ACPI && PCI_QUIRKS)
168 select PCI_HOST_COMMON
169 help
170 Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
171
172config PCIE_ROCKCHIP
173 tristate "Rockchip PCIe controller"
174 depends on ARCH_ROCKCHIP || COMPILE_TEST
175 depends on OF
176 depends on PCI_MSI_IRQ_DOMAIN
177 select MFD_SYSCON
178 help
179 Say Y here if you want internal PCI support on Rockchip SoC.
180 There is 1 internal PCIe port available to support GEN2 with
181 4 slots.
182
183config PCIE_MEDIATEK
184 tristate "MediaTek PCIe controller"
185 depends on (ARM || ARM64) && (ARCH_MEDIATEK || COMPILE_TEST)
186 depends on OF
187 depends on PCI
188 depends on PCI_MSI_IRQ_DOMAIN
189 select PCIEPORTBUS
190 help
191 Say Y here if you want to enable PCIe controller support on
192 MediaTek SoCs.
193
194config PCIE_TANGO_SMP8759
195 bool "Tango SMP8759 PCIe controller (DANGEROUS)"
196 depends on ARCH_TANGO && PCI_MSI && OF
197 depends on BROKEN
198 select PCI_HOST_COMMON
199 help
200 Say Y here to enable PCIe controller support for Sigma Designs
201 Tango SMP8759-based systems.
202
203 Note: The SMP8759 controller multiplexes PCI config and MMIO
204 accesses, and Linux doesn't provide a way to serialize them.
205 This can lead to data corruption if drivers perform concurrent
206 config and MMIO accesses.
207
208config VMD
209 depends on PCI_MSI && X86_64 && SRCU
210 tristate "Intel Volume Management Device Driver"
211 default N
212 ---help---
213 Adds support for the Intel Volume Management Device (VMD). VMD is a
214 secondary PCI host bridge that allows PCI Express root ports,
215 and devices attached to them, to be removed from the default
216 PCI domain and placed within the VMD domain. This provides
217 more bus resources than are otherwise possible with a
218 single domain. If you know your system provides one of these and
219 has devices attached to it, say Y; if you are not sure, say N.
220
221 To compile this driver as a module, choose M here: the
222 module will be called vmd.
223
224endmenu