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