1menuconfig 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 9if PCI 10 11config 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 20config 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 29config PCI_AARDVARK 30 bool "Enable Aardvark PCIe driver" 31 default n 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 40config 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 47config PCI_REGION_MULTI_ENTRY 48 bool "Enable Multiple entries of region type MEMORY in ranges for PCI" 49 depends on PCI || DM_PCI 50 default n 51 help 52 Enable PCI memory regions to be of multiple entry. Multiple entry 53 here refers to allow more than one count of address ranges for MEMORY 54 region type. This helps to add support for SoC's like OcteonTX/TX2 55 where every peripheral is on the PCI bus. 56 57config PCI_SRIOV 58 bool "Enable Single Root I/O Virtualization support for PCI" 59 depends on PCI || DM_PCI 60 default n 61 help 62 Say Y here if you want to enable PCI Single Root I/O Virtualization 63 capability support. This helps to enumerate Virtual Function devices 64 if available on a PCI Physical Function device and probe for 65 applicable drivers. 66 67config PCI_ARID 68 bool "Enable Alternate Routing-ID support for PCI" 69 depends on PCI || DM_PCI 70 default n 71 help 72 Say Y here if you want to enable Alternate Routing-ID capability 73 support on PCI devices. This helps to skip some devices in BDF 74 scan that are not present. 75 76config PCIE_ECAM_GENERIC 77 bool "Generic ECAM-based PCI host controller support" 78 default n 79 depends on DM_PCI 80 help 81 Say Y here if you want to enable support for generic ECAM-based 82 PCIe host controllers, such as the one emulated by QEMU. 83 84config PCI_PHYTIUM 85 bool "Phytium PCIe support" 86 depends on DM_PCI 87 help 88 Say Y here if you want to enable PCIe controller support on 89 Phytium SoCs. 90 91config PCIE_DW_MVEBU 92 bool "Enable Armada-8K PCIe driver (DesignWare core)" 93 depends on DM_PCI 94 depends on ARMADA_8K 95 help 96 Say Y here if you want to enable PCIe controller support on 97 Armada-8K SoCs. The PCIe controller on Armada-8K is based on 98 DesignWare hardware. 99 100config PCIE_DW_SIFIVE 101 bool "Enable SiFive FU740 PCIe" 102 depends on CLK_SIFIVE_PRCI 103 depends on RESET_SIFIVE 104 depends on SIFIVE_GPIO 105 select PCIE_DW_COMMON 106 help 107 Say Y here if you want to enable PCIe controller support on 108 FU740. 109 110config PCIE_FSL 111 bool "FSL PowerPC PCIe support" 112 depends on DM_PCI 113 help 114 Say Y here if you want to enable PCIe controller support on FSL 115 PowerPC MPC85xx, MPC86xx, B series, P series and T series SoCs. 116 This driver does not support SRIO_PCIE_BOOT feature. 117 118config PCI_MPC85XX 119 bool "MPC85XX PowerPC PCI support" 120 depends on DM_PCI 121 help 122 Say Y here if you want to enable PCI controller support on FSL 123 PowerPC MPC85xx SoC. 124 125config PCI_RCAR_GEN2 126 bool "Renesas RCar Gen2 PCIe driver" 127 depends on DM_PCI 128 depends on RCAR_32 129 help 130 Say Y here if you want to enable PCIe controller support on 131 Renesas RCar Gen2 SoCs. The PCIe controller on RCar Gen2 is 132 also used to access EHCI USB controller on the SoC. 133 134config PCI_RCAR_GEN3 135 bool "Renesas RCar Gen3 PCIe driver" 136 depends on DM_PCI 137 depends on RCAR_GEN3 138 help 139 Say Y here if you want to enable PCIe controller support on 140 Renesas RCar Gen3 SoCs. 141 142config PCI_SANDBOX 143 bool "Sandbox PCI support" 144 depends on SANDBOX && DM_PCI 145 help 146 Support PCI on sandbox, as an emulated bus. This permits testing of 147 PCI feature such as bus scanning, device configuration and device 148 access. The available (emulated) devices are defined statically in 149 the device tree but the normal PCI scan technique is used to find 150 then. 151 152config PCI_TEGRA 153 bool "Tegra PCI support" 154 depends on ARCH_TEGRA 155 depends on (TEGRA186 && POWER_DOMAIN) || (!TEGRA186) 156 help 157 Enable support for the PCIe controller found on some generations of 158 Tegra. Tegra20 has 2 root ports with a total of 4 lanes, Tegra30 has 159 3 root ports with a total of 6 lanes and Tegra124 has 2 root ports 160 with a total of 5 lanes. Some boards require this for Ethernet 161 support to work (e.g. beaver, jetson-tk1). 162 163config PCI_OCTEONTX 164 bool "OcteonTX PCI support" 165 depends on (ARCH_OCTEONTX || ARCH_OCTEONTX2) 166 help 167 Enable support for the OcteonTX/TX2 SoC family ECAM/PEM controllers. 168 These controllers provide PCI configuration access to all on-board 169 peripherals so it should only be disabled for testing purposes 170 171config PCIE_OCTEON 172 bool "MIPS Octeon PCIe support" 173 depends on ARCH_OCTEON 174 help 175 Enable support for the MIPS Octeon SoC family PCIe controllers. 176 177config PCI_XILINX 178 bool "Xilinx AXI Bridge for PCI Express" 179 depends on DM_PCI 180 help 181 Enable support for the Xilinx AXI bridge for PCI express, an IP block 182 which can be used on some generations of Xilinx FPGAs. 183 184config PCIE_LAYERSCAPE 185 bool 186 default n 187 188config PCIE_LAYERSCAPE_RC 189 bool "Layerscape PCIe Root Complex mode support" 190 depends on DM_PCI 191 select PCIE_LAYERSCAPE 192 help 193 Enable Layerscape PCIe Root Complex mode driver support. The Layerscape 194 SoC may have one or several PCIe controllers. Each controller can be 195 configured to Root Complex mode by clearing the corresponding bit of 196 RCW[HOST_AGT_PEX]. 197 198config PCI_IOMMU_EXTRA_MAPPINGS 199 bool "Support for specifying extra IOMMU mappings for PCI" 200 depends on PCIE_LAYERSCAPE_RC 201 help 202 Enable support for specifying extra IOMMU mappings for PCI 203 controllers through a special env var called "pci_iommu_extra" or 204 through a device tree property named "pci-iommu-extra" placed in 205 the node describing the PCI controller. 206 The intent is to cover SR-IOV scenarios which need mappings for VFs 207 and PCI hot-plug scenarios. More documentation can be found under: 208 arch/arm/cpu/armv8/fsl-layerscape/doc/README.pci_iommu_extra 209 210config PCIE_LAYERSCAPE_EP 211 bool "Layerscape PCIe Endpoint mode support" 212 depends on DM_PCI 213 select PCIE_LAYERSCAPE 214 select PCI_ENDPOINT 215 help 216 Enable Layerscape PCIe Endpoint mode driver support. The Layerscape 217 SoC may have one or several PCIe controllers. Each controller can be 218 configured to Endpoint mode by setting the corresponding bit of 219 RCW[HOST_AGT_PEX]. 220 221config PCIE_LAYERSCAPE_GEN4 222 bool "Layerscape Gen4 PCIe support" 223 depends on DM_PCI 224 help 225 Support PCIe Gen4 on NXP Layerscape SoCs, which may have one or 226 several PCIe controllers. The PCIe controller can work in RC or 227 EP mode according to RCW[HOST_AGT_PEX] setting. 228 229config FSL_PCIE_COMPAT 230 string "PCIe compatible of Kernel DT" 231 depends on PCIE_LAYERSCAPE_RC || PCIE_LAYERSCAPE_GEN4 232 default "fsl,ls1012a-pcie" if ARCH_LS1012A 233 default "fsl,ls1028a-pcie" if ARCH_LS1028A 234 default "fsl,ls1043a-pcie" if ARCH_LS1043A 235 default "fsl,ls1046a-pcie" if ARCH_LS1046A 236 default "fsl,ls2080a-pcie" if ARCH_LS2080A 237 default "fsl,ls1088a-pcie" if ARCH_LS1088A 238 default "fsl,lx2160a-pcie" if ARCH_LX2160A 239 default "fsl,ls2088a-pcie" if ARCH_LX2162A 240 default "fsl,ls1021a-pcie" if ARCH_LS1021A 241 help 242 This compatible is used to find pci controller node in Kernel DT 243 to complete fixup. 244 245config FSL_PCIE_EP_COMPAT 246 string "PCIe EP compatible of Kernel DT" 247 depends on PCIE_LAYERSCAPE_RC || PCIE_LAYERSCAPE_GEN4 248 default "fsl,lx2160a-pcie-ep" if ARCH_LX2160A 249 default "fsl,ls-pcie-ep" 250 help 251 This compatible is used to find pci controller ep node in Kernel DT 252 to complete fixup. 253 254config PCIE_INTEL_FPGA 255 bool "Intel FPGA PCIe support" 256 depends on DM_PCI 257 help 258 Say Y here if you want to enable PCIe controller support on Intel 259 FPGA, example Stratix 10. 260 261config PCIE_IPROC 262 bool "Iproc PCIe support" 263 depends on DM_PCI 264 help 265 Broadcom iProc PCIe controller driver. 266 Say Y here if you want to enable Broadcom iProc PCIe controller, 267 268config PCI_MVEBU 269 bool "Enable Armada XP/38x PCIe driver" 270 depends on ARCH_MVEBU 271 select DM_PCI 272 select MISC 273 help 274 Say Y here if you want to enable PCIe controller support on 275 Armada XP/38x SoCs. 276 277config PCIE_DW_COMMON 278 bool 279 select DM_PCI 280 281config PCI_KEYSTONE 282 bool "TI Keystone PCIe controller" 283 select PCIE_DW_COMMON 284 help 285 Say Y here if you want to enable PCI controller support on AM654 SoC. 286 287config PCIE_MEDIATEK 288 bool "MediaTek PCIe Gen2 controller" 289 depends on DM_PCI 290 depends on ARCH_MEDIATEK 291 help 292 Say Y here if you want to enable Gen2 PCIe controller, 293 which could be found on MT7623 SoC family. 294 295config PCIE_DW_MESON 296 bool "Amlogic Meson DesignWare based PCIe controller" 297 depends on ARCH_MESON 298 select PCIE_DW_COMMON 299 help 300 Say Y here if you want to enable DW PCIe controller support on 301 Amlogic SoCs. 302 303config PCIE_ROCKCHIP 304 bool "Enable Rockchip PCIe driver" 305 depends on ARCH_ROCKCHIP 306 select DM_PCI 307 select PHY_ROCKCHIP_PCIE 308 default y if ROCKCHIP_RK3399 309 help 310 Say Y here if you want to enable PCIe controller support on 311 Rockchip SoCs. 312 313config PCIE_DW_ROCKCHIP 314 bool "Rockchip DesignWare based PCIe controller" 315 depends on ARCH_ROCKCHIP 316 select PCIE_DW_COMMON 317 select PHY_ROCKCHIP_SNPS_PCIE3 318 help 319 Say Y here if you want to enable DW PCIe controller support on 320 Rockchip SoCs. 321 322config PCI_BRCMSTB 323 bool "Broadcom STB PCIe controller" 324 depends on DM_PCI 325 depends on ARCH_BCM283X 326 help 327 Say Y here if you want to enable support for PCIe controller 328 on Broadcom set-top-box (STB) SoCs. 329 This driver currently supports only BCM2711 SoC and RC mode 330 of the controller. 331endif 332