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_FSL 101 bool "FSL PowerPC PCIe support" 102 depends on DM_PCI 103 help 104 Say Y here if you want to enable PCIe controller support on FSL 105 PowerPC MPC85xx, MPC86xx, B series, P series and T series SoCs. 106 This driver does not support SRIO_PCIE_BOOT feature. 107 108config PCI_MPC85XX 109 bool "MPC85XX PowerPC PCI support" 110 depends on DM_PCI 111 help 112 Say Y here if you want to enable PCI controller support on FSL 113 PowerPC MPC85xx SoC. 114 115config PCI_RCAR_GEN2 116 bool "Renesas RCar Gen2 PCIe driver" 117 depends on DM_PCI 118 depends on RCAR_32 119 help 120 Say Y here if you want to enable PCIe controller support on 121 Renesas RCar Gen2 SoCs. The PCIe controller on RCar Gen2 is 122 also used to access EHCI USB controller on the SoC. 123 124config PCI_RCAR_GEN3 125 bool "Renesas RCar Gen3 PCIe driver" 126 depends on DM_PCI 127 depends on RCAR_GEN3 128 help 129 Say Y here if you want to enable PCIe controller support on 130 Renesas RCar Gen3 SoCs. 131 132config PCI_SANDBOX 133 bool "Sandbox PCI support" 134 depends on SANDBOX && DM_PCI 135 help 136 Support PCI on sandbox, as an emulated bus. This permits testing of 137 PCI feature such as bus scanning, device configuration and device 138 access. The available (emulated) devices are defined statically in 139 the device tree but the normal PCI scan technique is used to find 140 then. 141 142config PCI_TEGRA 143 bool "Tegra PCI support" 144 depends on ARCH_TEGRA 145 depends on (TEGRA186 && POWER_DOMAIN) || (!TEGRA186) 146 help 147 Enable support for the PCIe controller found on some generations of 148 Tegra. Tegra20 has 2 root ports with a total of 4 lanes, Tegra30 has 149 3 root ports with a total of 6 lanes and Tegra124 has 2 root ports 150 with a total of 5 lanes. Some boards require this for Ethernet 151 support to work (e.g. beaver, jetson-tk1). 152 153config PCI_OCTEONTX 154 bool "OcteonTX PCI support" 155 depends on (ARCH_OCTEONTX || ARCH_OCTEONTX2) 156 help 157 Enable support for the OcteonTX/TX2 SoC family ECAM/PEM controllers. 158 These controllers provide PCI configuration access to all on-board 159 peripherals so it should only be disabled for testing purposes 160 161config PCI_XILINX 162 bool "Xilinx AXI Bridge for PCI Express" 163 depends on DM_PCI 164 help 165 Enable support for the Xilinx AXI bridge for PCI express, an IP block 166 which can be used on some generations of Xilinx FPGAs. 167 168config PCIE_LAYERSCAPE 169 bool 170 default n 171 172config PCIE_LAYERSCAPE_RC 173 bool "Layerscape PCIe Root Complex mode support" 174 depends on DM_PCI 175 select PCIE_LAYERSCAPE 176 help 177 Enable Layerscape PCIe Root Complex mode driver support. The Layerscape 178 SoC may have one or several PCIe controllers. Each controller can be 179 configured to Root Complex mode by clearing the corresponding bit of 180 RCW[HOST_AGT_PEX]. 181 182config PCI_IOMMU_EXTRA_MAPPINGS 183 bool "Support for specifying extra IOMMU mappings for PCI" 184 depends on PCIE_LAYERSCAPE_RC 185 help 186 Enable support for specifying extra IOMMU mappings for PCI 187 controllers through a special env var called "pci_iommu_extra" or 188 through a device tree property named "pci-iommu-extra" placed in 189 the node describing the PCI controller. 190 The intent is to cover SR-IOV scenarios which need mappings for VFs 191 and PCI hot-plug scenarios. More documentation can be found under: 192 arch/arm/cpu/armv8/fsl-layerscape/doc/README.pci_iommu_extra 193 194config PCIE_LAYERSCAPE_EP 195 bool "Layerscape PCIe Endpoint mode support" 196 depends on DM_PCI 197 select PCIE_LAYERSCAPE 198 select PCI_ENDPOINT 199 help 200 Enable Layerscape PCIe Endpoint mode driver support. The Layerscape 201 SoC may have one or several PCIe controllers. Each controller can be 202 configured to Endpoint mode by setting the corresponding bit of 203 RCW[HOST_AGT_PEX]. 204 205config PCIE_LAYERSCAPE_GEN4 206 bool "Layerscape Gen4 PCIe support" 207 depends on DM_PCI 208 help 209 Support PCIe Gen4 on NXP Layerscape SoCs, which may have one or 210 several PCIe controllers. The PCIe controller can work in RC or 211 EP mode according to RCW[HOST_AGT_PEX] setting. 212 213config FSL_PCIE_COMPAT 214 string "PCIe compatible of Kernel DT" 215 depends on PCIE_LAYERSCAPE_RC || PCIE_LAYERSCAPE_GEN4 216 default "fsl,ls1012a-pcie" if ARCH_LS1012A 217 default "fsl,ls1028a-pcie" if ARCH_LS1028A 218 default "fsl,ls1043a-pcie" if ARCH_LS1043A 219 default "fsl,ls1046a-pcie" if ARCH_LS1046A 220 default "fsl,ls2080a-pcie" if ARCH_LS2080A 221 default "fsl,ls1088a-pcie" if ARCH_LS1088A 222 default "fsl,lx2160a-pcie" if ARCH_LX2160A 223 default "fsl,ls2088a-pcie" if ARCH_LX2162A 224 default "fsl,ls1021a-pcie" if ARCH_LS1021A 225 help 226 This compatible is used to find pci controller node in Kernel DT 227 to complete fixup. 228 229config FSL_PCIE_EP_COMPAT 230 string "PCIe EP compatible of Kernel DT" 231 depends on PCIE_LAYERSCAPE_RC || PCIE_LAYERSCAPE_GEN4 232 default "fsl,lx2160a-pcie-ep" if ARCH_LX2160A 233 default "fsl,ls-pcie-ep" 234 help 235 This compatible is used to find pci controller ep node in Kernel DT 236 to complete fixup. 237 238config PCIE_INTEL_FPGA 239 bool "Intel FPGA PCIe support" 240 depends on DM_PCI 241 help 242 Say Y here if you want to enable PCIe controller support on Intel 243 FPGA, example Stratix 10. 244 245config PCIE_IPROC 246 bool "Iproc PCIe support" 247 depends on DM_PCI 248 help 249 Broadcom iProc PCIe controller driver. 250 Say Y here if you want to enable Broadcom iProc PCIe controller, 251 252config PCI_MVEBU 253 bool "Enable Armada XP/38x PCIe driver" 254 depends on ARCH_MVEBU 255 select DM_PCI 256 select MISC 257 help 258 Say Y here if you want to enable PCIe controller support on 259 Armada XP/38x SoCs. 260 261config PCI_KEYSTONE 262 bool "TI Keystone PCIe controller" 263 depends on DM_PCI 264 help 265 Say Y here if you want to enable PCI controller support on AM654 SoC. 266 267config PCIE_MEDIATEK 268 bool "MediaTek PCIe Gen2 controller" 269 depends on DM_PCI 270 depends on ARCH_MEDIATEK 271 help 272 Say Y here if you want to enable Gen2 PCIe controller, 273 which could be found on MT7623 SoC family. 274 275config PCIE_ROCKCHIP 276 bool "Enable Rockchip PCIe driver" 277 depends on ARCH_ROCKCHIP 278 select DM_PCI 279 select PHY_ROCKCHIP_PCIE 280 default y if ROCKCHIP_RK3399 281 help 282 Say Y here if you want to enable PCIe controller support on 283 Rockchip SoCs. 284 285config PCIE_DW_ROCKCHIP 286 bool "Rockchip DesignWare based PCIe controller" 287 depends on ARCH_ROCKCHIP 288 select DM_PCI 289 select PHY_ROCKCHIP_SNPS_PCIE3 290 help 291 Say Y here if you want to enable DW PCIe controller support on 292 Rockchip SoCs. 293 294config PCI_BRCMSTB 295 bool "Broadcom STB PCIe controller" 296 depends on DM_PCI 297 depends on ARCH_BCM283X 298 help 299 Say Y here if you want to enable support for PCIe controller 300 on Broadcom set-top-box (STB) SoCs. 301 This driver currently supports only BCM2711 SoC and RC mode 302 of the controller. 303endif 304