GNU Linux-libre 4.14.259-gnu1
[releases.git] / drivers / pci / host / Kconfig
1 menu "PCI host controller drivers"
2         depends on PCI
3
4 config PCI_MVEBU
5         bool "Marvell EBU PCIe controller"
6         depends on ARCH_MVEBU || ARCH_DOVE
7         depends on ARM
8         depends on OF
9
10 config 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
20 config 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
30 config PCI_FTPCI100
31         bool "Faraday Technology FTPCI100 PCI controller"
32         depends on OF
33         depends on ARM
34         default ARCH_GEMINI
35
36 config 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
43 config 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
52 config 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
59 config PCI_HOST_COMMON
60         bool
61         select PCI_ECAM
62
63 config 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
72 config 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
79 config 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
89 config 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
98 config PCI_VERSATILE
99         bool "ARM Versatile PB PCI controller"
100         depends on ARCH_VERSATILE
101
102 config 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
110 config 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
120 config 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
130 config 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
139 config 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
148 config 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
156 config 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
164 config 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
172 config 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
183 config PCIE_MEDIATEK
184         bool "MediaTek PCIe controller"
185         depends on (ARM || ARM64) && (ARCH_MEDIATEK || COMPILE_TEST)
186         depends on OF
187         depends on PCI
188         select PCIEPORTBUS
189         help
190           Say Y here if you want to enable PCIe controller support on
191           MediaTek SoCs.
192
193 config PCIE_TANGO_SMP8759
194         bool "Tango SMP8759 PCIe controller (DANGEROUS)"
195         depends on ARCH_TANGO && PCI_MSI && OF
196         depends on BROKEN
197         select PCI_HOST_COMMON
198         help
199           Say Y here to enable PCIe controller support for Sigma Designs
200           Tango SMP8759-based systems.
201
202           Note: The SMP8759 controller multiplexes PCI config and MMIO
203           accesses, and Linux doesn't provide a way to serialize them.
204           This can lead to data corruption if drivers perform concurrent
205           config and MMIO accesses.
206
207 config VMD
208         depends on PCI_MSI && X86_64 && SRCU
209         tristate "Intel Volume Management Device Driver"
210         default N
211         ---help---
212           Adds support for the Intel Volume Management Device (VMD). VMD is a
213           secondary PCI host bridge that allows PCI Express root ports,
214           and devices attached to them, to be removed from the default
215           PCI domain and placed within the VMD domain. This provides
216           more bus resources than are otherwise possible with a
217           single domain. If you know your system provides one of these and
218           has devices attached to it, say Y; if you are not sure, say N.
219
220           To compile this driver as a module, choose M here: the
221           module will be called vmd.
222
223 endmenu