pci: pci-uclass: Add support for Single-Root I/O Virtualization
[platform/kernel/u-boot.git] / drivers / pci / Kconfig
1 menuconfig PCI
2         bool "PCI support"
3         default y if PPC
4         help
5           Enable support for PCI (Peripheral Interconnect Bus), a type of bus
6           used on some devices to allow the CPU to communicate with its
7           peripherals.
8
9 if PCI
10
11 config DM_PCI
12         bool "Enable driver model for PCI"
13         depends on DM
14         help
15           Use driver model for PCI. Driver model is the new method for
16           orgnising devices in U-Boot. For PCI, driver model keeps track of
17           available PCI devices, allows scanning of PCI buses and provides
18           device configuration support.
19
20 config DM_PCI_COMPAT
21         bool "Enable compatible functions for PCI"
22         depends on DM_PCI
23         help
24           Enable compatibility functions for PCI so that old code can be used
25           with CONFIG_DM_PCI enabled. This should be used as an interim
26           measure when porting a board to use driver model for PCI. Once the
27           board is fully supported, this option should be disabled.
28
29 config PCI_AARDVARK
30         bool "Enable Aardvark PCIe driver"
31         default n
32         depends on DM_PCI
33         depends on ARMADA_3700
34         help
35           Say Y here if you want to enable PCIe controller support on
36           Armada37x0 SoCs. The PCIe controller on Armada37x0 is based on
37           Aardvark hardware.
38
39 config PCI_PNP
40         bool "Enable Plug & Play support for PCI"
41         depends on PCI || DM_PCI
42         default y
43         help
44           Enable PCI memory and I/O space resource allocation and assignment.
45
46 config PCI_REGION_MULTI_ENTRY
47         bool "Enable Multiple entries of region type MEMORY in ranges for PCI"
48         depends on PCI || DM_PCI
49         default n
50         help
51           Enable PCI memory regions to be of multiple entry. Multiple entry
52           here refers to allow more than one count of address ranges for MEMORY
53           region type. This helps to add support for SoC's like OcteonTX/TX2
54           where every peripheral is on the PCI bus.
55
56 config PCI_SRIOV
57         bool "Enable Single Root I/O Virtualization support for PCI"
58         depends on PCI || DM_PCI
59         default n
60         help
61           Say Y here if you want to enable PCI Single Root I/O Virtualization
62           capability support. This helps to enumerate Virtual Function devices
63           if available on a PCI Physical Function device and probe for
64           applicable drivers.
65
66 config PCIE_ECAM_GENERIC
67         bool "Generic ECAM-based PCI host controller support"
68         default n
69         depends on DM_PCI
70         help
71           Say Y here if you want to enable support for generic ECAM-based
72           PCIe host controllers, such as the one emulated by QEMU.
73
74 config PCI_PHYTIUM
75         bool "Phytium PCIe support"
76         depends on DM_PCI
77         help
78           Say Y here if you want to enable PCIe controller support on
79           Phytium SoCs.
80
81 config PCIE_DW_MVEBU
82         bool "Enable Armada-8K PCIe driver (DesignWare core)"
83         depends on DM_PCI
84         depends on ARMADA_8K
85         help
86           Say Y here if you want to enable PCIe controller support on
87           Armada-8K SoCs. The PCIe controller on Armada-8K is based on
88           DesignWare hardware.
89
90 config PCIE_FSL
91         bool "FSL PowerPC PCIe support"
92         depends on DM_PCI
93         help
94           Say Y here if you want to enable PCIe controller support on FSL
95           PowerPC MPC85xx, MPC86xx, B series, P series and T series SoCs.
96           This driver does not support SRIO_PCIE_BOOT feature.
97
98 config PCI_MPC85XX
99         bool "MPC85XX PowerPC PCI support"
100         depends on DM_PCI
101         help
102           Say Y here if you want to enable PCI controller support on FSL
103           PowerPC MPC85xx SoC.
104
105 config PCI_RCAR_GEN2
106         bool "Renesas RCar Gen2 PCIe driver"
107         depends on DM_PCI
108         depends on RCAR_32
109         help
110           Say Y here if you want to enable PCIe controller support on
111           Renesas RCar Gen2 SoCs. The PCIe controller on RCar Gen2 is
112           also used to access EHCI USB controller on the SoC.
113
114 config PCI_RCAR_GEN3
115         bool "Renesas RCar Gen3 PCIe driver"
116         depends on DM_PCI
117         depends on RCAR_GEN3
118         help
119           Say Y here if you want to enable PCIe controller support on
120           Renesas RCar Gen3 SoCs.
121
122 config PCI_SANDBOX
123         bool "Sandbox PCI support"
124         depends on SANDBOX && DM_PCI
125         help
126           Support PCI on sandbox, as an emulated bus. This permits testing of
127           PCI feature such as bus scanning, device configuration and device
128           access. The available (emulated) devices are defined statically in
129           the device tree but the normal PCI scan technique is used to find
130           then.
131
132 config PCI_TEGRA
133         bool "Tegra PCI support"
134         depends on ARCH_TEGRA
135         depends on (TEGRA186 && POWER_DOMAIN) || (!TEGRA186)
136         help
137           Enable support for the PCIe controller found on some generations of
138           Tegra. Tegra20 has 2 root ports with a total of 4 lanes, Tegra30 has
139           3 root ports with a total of 6 lanes and Tegra124 has 2 root ports
140           with a total of 5 lanes. Some boards require this for Ethernet
141           support to work (e.g. beaver, jetson-tk1).
142
143 config PCI_XILINX
144         bool "Xilinx AXI Bridge for PCI Express"
145         depends on DM_PCI
146         help
147           Enable support for the Xilinx AXI bridge for PCI express, an IP block
148           which can be used on some generations of Xilinx FPGAs.
149
150 config PCIE_LAYERSCAPE
151         bool
152         default n
153
154 config PCIE_LAYERSCAPE_RC
155         bool "Layerscape PCIe Root Complex mode support"
156         depends on DM_PCI
157         select PCIE_LAYERSCAPE
158         help
159           Enable Layerscape PCIe Root Complex mode driver support. The Layerscape
160           SoC may have one or several PCIe controllers. Each controller can be
161           configured to Root Complex mode by clearing the corresponding bit of
162           RCW[HOST_AGT_PEX].
163
164 config PCIE_LAYERSCAPE_EP
165         bool "Layerscape PCIe Endpoint mode support"
166         depends on DM_PCI
167         select PCIE_LAYERSCAPE
168         select PCI_ENDPOINT
169         help
170           Enable Layerscape PCIe Endpoint mode driver support. The Layerscape
171           SoC may have one or several PCIe controllers. Each controller can be
172           configured to Endpoint mode by setting the corresponding bit of
173           RCW[HOST_AGT_PEX].
174
175 config PCIE_LAYERSCAPE_GEN4
176         bool "Layerscape Gen4 PCIe support"
177         depends on DM_PCI
178         help
179           Support PCIe Gen4 on NXP Layerscape SoCs, which may have one or
180           several PCIe controllers. The PCIe controller can work in RC or
181           EP mode according to RCW[HOST_AGT_PEX] setting.
182
183 config FSL_PCIE_COMPAT
184         string "PCIe compatible of Kernel DT"
185         depends on PCIE_LAYERSCAPE_RC || PCIE_LAYERSCAPE_GEN4
186         default "fsl,ls1012a-pcie" if ARCH_LS1012A
187         default "fsl,ls1028a-pcie" if ARCH_LS1028A
188         default "fsl,ls1043a-pcie" if ARCH_LS1043A
189         default "fsl,ls1046a-pcie" if ARCH_LS1046A
190         default "fsl,ls2080a-pcie" if ARCH_LS2080A
191         default "fsl,ls1088a-pcie" if ARCH_LS1088A
192         default "fsl,lx2160a-pcie" if ARCH_LX2160A
193         default "fsl,ls1021a-pcie" if ARCH_LS1021A
194         help
195           This compatible is used to find pci controller node in Kernel DT
196           to complete fixup.
197
198 config FSL_PCIE_EP_COMPAT
199         string "PCIe EP compatible of Kernel DT"
200         depends on PCIE_LAYERSCAPE_RC || PCIE_LAYERSCAPE_GEN4
201         default "fsl,lx2160a-pcie-ep" if ARCH_LX2160A
202         default "fsl,ls-pcie-ep"
203         help
204           This compatible is used to find pci controller ep node in Kernel DT
205           to complete fixup.
206
207 config PCIE_INTEL_FPGA
208         bool "Intel FPGA PCIe support"
209         depends on DM_PCI
210         help
211           Say Y here if you want to enable PCIe controller support on Intel
212           FPGA, example Stratix 10.
213
214 config PCIE_IPROC
215         bool "Iproc PCIe support"
216         depends on DM_PCI
217         help
218           Broadcom iProc PCIe controller driver.
219           Say Y here if you want to enable Broadcom iProc PCIe controller,
220
221 config PCI_MVEBU
222         bool "Enable Armada XP/38x PCIe driver"
223         depends on ARCH_MVEBU
224         select DM_PCI
225         select MISC
226         help
227           Say Y here if you want to enable PCIe controller support on
228           Armada XP/38x SoCs.
229
230 config PCI_KEYSTONE
231         bool "TI Keystone PCIe controller"
232         depends on DM_PCI
233         help
234           Say Y here if you want to enable PCI controller support on AM654 SoC.
235
236 config PCIE_MEDIATEK
237         bool "MediaTek PCIe Gen2 controller"
238         depends on DM_PCI
239         depends on ARCH_MEDIATEK
240         help
241           Say Y here if you want to enable Gen2 PCIe controller,
242           which could be found on MT7623 SoC family.
243
244 config PCIE_ROCKCHIP
245         bool "Enable Rockchip PCIe driver"
246         select DM_PCI
247         select PHY_ROCKCHIP_PCIE
248         default y if ROCKCHIP_RK3399
249         help
250           Say Y here if you want to enable PCIe controller support on
251           Rockchip SoCs.
252
253 config PCI_BRCMSTB
254         bool "Broadcom STB PCIe controller"
255         depends on DM_PCI
256         depends on ARCH_BCM283X
257         help
258           Say Y here if you want to enable support for PCIe controller
259           on Broadcom set-top-box (STB) SoCs.
260           This driver currently supports only BCM2711 SoC and RC mode
261           of the controller.
262 endif