Merge branch 'next' of https://gitlab.denx.de/u-boot/custodians/u-boot-marvell into...
[platform/kernel/u-boot.git] / drivers / pci / Kconfig
1 menuconfig PCI
2         bool "PCI support"
3         depends on DM
4         default y if PPC
5         select DM_PCI
6         help
7           Enable support for PCI (Peripheral Interconnect Bus), a type of bus
8           used on some devices to allow the CPU to communicate with its
9           peripherals.
10
11 config DM_PCI
12         bool
13         help
14           Use driver model for PCI. Driver model is the new method for
15           orgnising devices in U-Boot. For PCI, driver model keeps track of
16           available PCI devices, allows scanning of PCI buses and provides
17           device configuration support.
18
19 if PCI
20
21 config DM_PCI_COMPAT
22         bool "Enable compatible functions for PCI"
23         depends on DM_PCI
24         help
25           Enable compatibility functions for PCI so that old code can be used
26           with CONFIG_DM_PCI enabled. This should be used as an interim
27           measure when porting a board to use driver model for PCI. Once the
28           board is fully supported, this option should be disabled.
29
30 config PCI_AARDVARK
31         bool "Enable Aardvark PCIe driver"
32         depends on DM_PCI
33         depends on DM_GPIO
34         depends on ARMADA_3700
35         help
36           Say Y here if you want to enable PCIe controller support on
37           Armada37x0 SoCs. The PCIe controller on Armada37x0 is based on
38           Aardvark hardware.
39
40 config PCI_PNP
41         bool "Enable Plug & Play support for PCI"
42         depends on PCI || DM_PCI
43         default y
44         help
45           Enable PCI memory and I/O space resource allocation and assignment.
46
47 config PCI_REGION_MULTI_ENTRY
48         bool "Enable Multiple entries of region type MEMORY in ranges for PCI"
49         depends on PCI || DM_PCI
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_MAP_SYSTEM_MEMORY
57         bool "Map local system memory from a virtual base address"
58         depends on PCI || DM_PCI
59         depends on MIPS
60         help
61           Say Y if base address of system memory is being used as a virtual address
62           instead of a physical address (e.g. on MIPS). The PCI core will then remap
63           the virtual memory base address to a physical address when adding the PCI
64           region of type PCI_REGION_SYS_MEMORY.
65           This should only be required on MIPS where CONFIG_SYS_SDRAM_BASE is still
66           being used as virtual address.
67
68 config PCI_SRIOV
69         bool "Enable Single Root I/O Virtualization support for PCI"
70         depends on PCI || DM_PCI
71         help
72           Say Y here if you want to enable PCI Single Root I/O Virtualization
73           capability support. This helps to enumerate Virtual Function devices
74           if available on a PCI Physical Function device and probe for
75           applicable drivers.
76
77 config PCI_ARID
78         bool "Enable Alternate Routing-ID support for PCI"
79         depends on PCI || DM_PCI
80         help
81           Say Y here if you want to enable Alternate Routing-ID capability
82           support on PCI devices. This helps to skip some devices in BDF
83           scan that are not present.
84
85 config PCIE_ECAM_GENERIC
86         bool "Generic ECAM-based PCI host controller support"
87         depends on DM_PCI
88         help
89           Say Y here if you want to enable support for generic ECAM-based
90           PCIe host controllers, such as the one emulated by QEMU.
91
92 config PCIE_ECAM_SYNQUACER
93         bool "SynQuacer ECAM-based PCI host controller support"
94         depends on DM_PCI
95         select PCI_INIT_R
96         select PCI_REGION_MULTI_ENTRY
97         help
98           Say Y here if you want to enable support for Socionext
99           SynQuacer SoC's ECAM-based PCIe host controllers.
100           Note that this must be configured when boot because Linux driver
101           expects the PCIe RC has been configured in the bootloader.
102
103 config PCI_PHYTIUM
104         bool "Phytium PCIe support"
105         depends on DM_PCI
106         help
107           Say Y here if you want to enable PCIe controller support on
108           Phytium SoCs.
109
110 config PCIE_DW_MVEBU
111         bool "Enable Armada-8K PCIe driver (DesignWare core)"
112         depends on DM_PCI
113         depends on ARMADA_8K
114         help
115           Say Y here if you want to enable PCIe controller support on
116           Armada-8K SoCs. The PCIe controller on Armada-8K is based on
117           DesignWare hardware.
118
119 config PCIE_DW_SIFIVE
120         bool "Enable SiFive FU740 PCIe"
121         depends on CLK_SIFIVE_PRCI
122         depends on RESET_SIFIVE
123         depends on SIFIVE_GPIO
124         select PCIE_DW_COMMON
125         help
126           Say Y here if you want to enable PCIe controller support on
127           FU740.
128
129 config PCIE_FSL
130         bool "FSL PowerPC PCIe support"
131         depends on DM_PCI
132         help
133           Say Y here if you want to enable PCIe controller support on FSL
134           PowerPC MPC85xx, MPC86xx, B series, P series and T series SoCs.
135           This driver does not support SRIO_PCIE_BOOT feature.
136
137 config PCI_MPC85XX
138         bool "MPC85XX PowerPC PCI support"
139         depends on DM_PCI
140         help
141           Say Y here if you want to enable PCI controller support on FSL
142           PowerPC MPC85xx SoC.
143
144 config PCI_RCAR_GEN2
145         bool "Renesas RCar Gen2 PCIe driver"
146         depends on DM_PCI
147         depends on RCAR_32
148         help
149           Say Y here if you want to enable PCIe controller support on
150           Renesas RCar Gen2 SoCs. The PCIe controller on RCar Gen2 is
151           also used to access EHCI USB controller on the SoC.
152
153 config PCI_RCAR_GEN3
154         bool "Renesas RCar Gen3 PCIe driver"
155         depends on DM_PCI
156         depends on RCAR_GEN3
157         help
158           Say Y here if you want to enable PCIe controller support on
159           Renesas RCar Gen3 SoCs.
160
161 config PCI_SANDBOX
162         bool "Sandbox PCI support"
163         depends on SANDBOX && DM_PCI
164         help
165           Support PCI on sandbox, as an emulated bus. This permits testing of
166           PCI feature such as bus scanning, device configuration and device
167           access. The available (emulated) devices are defined statically in
168           the device tree but the normal PCI scan technique is used to find
169           then.
170
171 config PCI_TEGRA
172         bool "Tegra PCI support"
173         depends on ARCH_TEGRA
174         depends on (TEGRA186 && POWER_DOMAIN) || (!TEGRA186)
175         help
176           Enable support for the PCIe controller found on some generations of
177           Tegra. Tegra20 has 2 root ports with a total of 4 lanes, Tegra30 has
178           3 root ports with a total of 6 lanes and Tegra124 has 2 root ports
179           with a total of 5 lanes. Some boards require this for Ethernet
180           support to work (e.g. beaver, jetson-tk1).
181
182 config PCI_OCTEONTX
183         bool "OcteonTX PCI support"
184         depends on (ARCH_OCTEONTX || ARCH_OCTEONTX2)
185         help
186           Enable support for the OcteonTX/TX2 SoC family ECAM/PEM controllers.
187           These controllers provide PCI configuration access to all on-board
188           peripherals so it should only be disabled for testing purposes
189
190 config PCIE_OCTEON
191         bool "MIPS Octeon PCIe support"
192         depends on ARCH_OCTEON
193         help
194           Enable support for the MIPS Octeon SoC family PCIe controllers.
195
196 config PCI_XILINX
197         bool "Xilinx AXI Bridge for PCI Express"
198         depends on DM_PCI
199         help
200           Enable support for the Xilinx AXI bridge for PCI express, an IP block
201           which can be used on some generations of Xilinx FPGAs.
202
203 config PCIE_LAYERSCAPE
204         bool
205
206 config PCIE_LAYERSCAPE_RC
207         bool "Layerscape PCIe Root Complex mode support"
208         depends on DM_PCI
209         select PCIE_LAYERSCAPE
210         help
211           Enable Layerscape PCIe Root Complex mode driver support. The Layerscape
212           SoC may have one or several PCIe controllers. Each controller can be
213           configured to Root Complex mode by clearing the corresponding bit of
214           RCW[HOST_AGT_PEX].
215
216 config PCI_IOMMU_EXTRA_MAPPINGS
217         bool "Support for specifying extra IOMMU mappings for PCI"
218         depends on PCIE_LAYERSCAPE_RC
219         help
220           Enable support for specifying extra IOMMU mappings for PCI
221           controllers through a special env var called "pci_iommu_extra" or
222           through a device tree property named "pci-iommu-extra" placed in
223           the node describing the PCI controller.
224           The intent is to cover SR-IOV scenarios which need mappings for VFs
225           and PCI hot-plug scenarios. More documentation can be found under:
226             arch/arm/cpu/armv8/fsl-layerscape/doc/README.pci_iommu_extra
227
228 config PCIE_LAYERSCAPE_EP
229         bool "Layerscape PCIe Endpoint mode support"
230         depends on DM_PCI
231         select PCIE_LAYERSCAPE
232         select PCI_ENDPOINT
233         help
234           Enable Layerscape PCIe Endpoint mode driver support. The Layerscape
235           SoC may have one or several PCIe controllers. Each controller can be
236           configured to Endpoint mode by setting the corresponding bit of
237           RCW[HOST_AGT_PEX].
238
239 config PCIE_LAYERSCAPE_GEN4
240         bool "Layerscape Gen4 PCIe support"
241         depends on DM_PCI
242         help
243           Support PCIe Gen4 on NXP Layerscape SoCs, which may have one or
244           several PCIe controllers. The PCIe controller can work in RC or
245           EP mode according to RCW[HOST_AGT_PEX] setting.
246
247 config FSL_PCIE_COMPAT
248         string "PCIe compatible of Kernel DT"
249         depends on PCIE_LAYERSCAPE_RC || PCIE_LAYERSCAPE_GEN4
250         default "fsl,ls1012a-pcie" if ARCH_LS1012A
251         default "fsl,ls1028a-pcie" if ARCH_LS1028A
252         default "fsl,ls1043a-pcie" if ARCH_LS1043A
253         default "fsl,ls1046a-pcie" if ARCH_LS1046A
254         default "fsl,ls2080a-pcie" if ARCH_LS2080A
255         default "fsl,ls1088a-pcie" if ARCH_LS1088A
256         default "fsl,lx2160a-pcie" if ARCH_LX2160A
257         default "fsl,ls2088a-pcie" if ARCH_LX2162A
258         default "fsl,ls1021a-pcie" if ARCH_LS1021A
259         help
260           This compatible is used to find pci controller node in Kernel DT
261           to complete fixup.
262
263 config FSL_PCIE_EP_COMPAT
264         string "PCIe EP compatible of Kernel DT"
265         depends on PCIE_LAYERSCAPE_RC || PCIE_LAYERSCAPE_GEN4
266         default "fsl,lx2160a-pcie-ep" if ARCH_LX2160A
267         default "fsl,ls-pcie-ep"
268         help
269           This compatible is used to find pci controller ep node in Kernel DT
270           to complete fixup.
271
272 config PCIE_INTEL_FPGA
273         bool "Intel FPGA PCIe support"
274         depends on DM_PCI
275         help
276           Say Y here if you want to enable PCIe controller support on Intel
277           FPGA, example Stratix 10.
278
279 config PCIE_IPROC
280         bool "Iproc PCIe support"
281         depends on DM_PCI
282         help
283           Broadcom iProc PCIe controller driver.
284           Say Y here if you want to enable Broadcom iProc PCIe controller,
285
286 config PCI_MVEBU
287         bool "Enable Armada XP/38x PCIe driver"
288         depends on ARCH_MVEBU
289         select DM_PCI
290         select MISC
291         help
292           Say Y here if you want to enable PCIe controller support on
293           Armada XP/38x SoCs.
294
295 config PCIE_DW_COMMON
296         bool
297         select DM_PCI
298
299 config PCI_KEYSTONE
300         bool "TI Keystone PCIe controller"
301         select PCIE_DW_COMMON
302         help
303           Say Y here if you want to enable PCI controller support on AM654 SoC.
304
305 config PCIE_MEDIATEK
306         bool "MediaTek PCIe Gen2 controller"
307         depends on DM_PCI
308         depends on ARCH_MEDIATEK
309         help
310           Say Y here if you want to enable Gen2 PCIe controller,
311           which could be found on MT7623 SoC family.
312
313 config PCIE_DW_MESON
314         bool "Amlogic Meson DesignWare based PCIe controller"
315         depends on ARCH_MESON
316         select PCIE_DW_COMMON
317         help
318           Say Y here if you want to enable DW PCIe controller support on
319           Amlogic SoCs.
320
321 config PCIE_ROCKCHIP
322         bool "Enable Rockchip PCIe driver"
323         depends on ARCH_ROCKCHIP
324         select DM_PCI
325         select PHY_ROCKCHIP_PCIE
326         default y if ROCKCHIP_RK3399
327         help
328           Say Y here if you want to enable PCIe controller support on
329           Rockchip SoCs.
330
331 config PCIE_DW_ROCKCHIP
332         bool "Rockchip DesignWare based PCIe controller"
333         depends on ARCH_ROCKCHIP
334         select PCIE_DW_COMMON
335         select PHY_ROCKCHIP_SNPS_PCIE3
336         help
337           Say Y here if you want to enable DW PCIe controller support on
338           Rockchip SoCs.
339
340 config PCI_BRCMSTB
341         bool "Broadcom STB PCIe controller"
342         depends on DM_PCI
343         depends on ARCH_BCM283X
344         help
345           Say Y here if you want to enable support for PCIe controller
346           on Broadcom set-top-box (STB) SoCs.
347           This driver currently supports only BCM2711 SoC and RC mode
348           of the controller.
349
350 config PCIE_UNIPHIER
351         bool "Socionext UniPhier PCIe driver"
352         depends on DM_PCI
353         depends on ARCH_UNIPHIER
354         select PHY_UNIPHIER_PCIE
355         help
356           Say Y here if you want to enable PCIe controller support on
357           UniPhier SoCs.
358
359 endif