Tom Rini | f48e025 | 2016-10-26 17:15:37 -0400 | [diff] [blame] | 1 | menuconfig PCI |
| 2 | bool "PCI support" |
Bin Meng | 00a17fd | 2017-07-30 06:23:09 -0700 | [diff] [blame] | 3 | default y if PPC |
Tom Rini | f48e025 | 2016-10-26 17:15:37 -0400 | [diff] [blame] | 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 |
Simon Glass | b94dc89 | 2015-03-05 12:25:25 -0700 | [diff] [blame] | 10 | |
| 11 | config DM_PCI |
Marcel Ziswiler | 84c4560 | 2016-12-19 15:38:05 +0100 | [diff] [blame] | 12 | bool "Enable driver model for PCI" |
Simon Glass | b94dc89 | 2015-03-05 12:25:25 -0700 | [diff] [blame] | 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 | |
Simon Glass | eca7b0d | 2015-11-26 19:51:30 -0700 | [diff] [blame] | 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 | |
Wilson Ding | a6bdc86 | 2018-03-26 15:57:29 +0800 | [diff] [blame] | 29 | config PCI_AARDVARK |
| 30 | bool "Enable Aardvark PCIe driver" |
| 31 | default n |
| 32 | depends on DM_PCI |
Pali Rohár | 5c6edca | 2020-08-25 10:45:04 +0200 | [diff] [blame] | 33 | depends on DM_GPIO |
Wilson Ding | a6bdc86 | 2018-03-26 15:57:29 +0800 | [diff] [blame] | 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 | |
Bin Meng | 2f49e2e | 2016-10-16 23:35:18 -0700 | [diff] [blame] | 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 | |
Suneel Garapati | 3ac3aec | 2019-10-19 17:10:20 -0700 | [diff] [blame] | 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 | 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 | |
Suneel Garapati | 13822f7 | 2019-10-19 16:07:20 -0700 | [diff] [blame] | 57 | config 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 | |
Suneel Garapati | a99a5eb | 2019-10-23 18:40:36 -0700 | [diff] [blame] | 67 | config 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 | |
Tuomas Tynkkynen | a765f71 | 2017-09-19 23:18:06 +0300 | [diff] [blame] | 76 | config 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 | |
liu hao | 1c4a2c4 | 2019-10-31 07:51:08 +0000 | [diff] [blame] | 84 | config 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 | |
Shadi Ammouri | 3b38645 | 2016-10-27 13:29:41 +0200 | [diff] [blame] | 91 | config PCIE_DW_MVEBU |
| 92 | bool "Enable Armada-8K PCIe driver (DesignWare core)" |
Shadi Ammouri | 3b38645 | 2016-10-27 13:29:41 +0200 | [diff] [blame] | 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 | |
Green Wan | ba5919b | 2021-05-27 06:52:10 -0700 | [diff] [blame] | 100 | config 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 | |
Hou Zhiqiang | 25ff98c | 2019-04-24 22:33:02 +0800 | [diff] [blame] | 110 | config 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 | |
Heiko Schocher | d647b46 | 2019-10-14 11:29:39 +0200 | [diff] [blame] | 118 | config 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 | |
Marek Vasut | 5012d1e | 2018-01-18 14:35:35 +0100 | [diff] [blame] | 125 | config 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 | |
Marek Vasut | 879b4a3 | 2018-10-16 12:49:19 +0200 | [diff] [blame] | 134 | config 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 | |
Simon Glass | 4d85755 | 2015-03-05 12:25:27 -0700 | [diff] [blame] | 142 | config 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 | |
Simon Glass | c78e327 | 2015-11-19 20:26:55 -0700 | [diff] [blame] | 152 | config PCI_TEGRA |
| 153 | bool "Tegra PCI support" |
Trevor Woerner | 513f640 | 2020-05-06 08:02:41 -0400 | [diff] [blame] | 154 | depends on ARCH_TEGRA |
Stephen Warren | 86f6a94 | 2016-08-05 16:10:34 -0600 | [diff] [blame] | 155 | depends on (TEGRA186 && POWER_DOMAIN) || (!TEGRA186) |
Simon Glass | c78e327 | 2015-11-19 20:26:55 -0700 | [diff] [blame] | 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 | |
Suneel Garapati | 4c7d28c | 2019-10-19 17:28:01 -0700 | [diff] [blame] | 163 | config 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 | |
Stefan Roese | 098c773 | 2021-04-07 08:43:35 +0200 | [diff] [blame] | 171 | config 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 | |
Paul Burton | c893f21 | 2016-09-08 07:47:31 +0100 | [diff] [blame] | 177 | config 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 | |
Minghuan Lian | c106784 | 2016-12-13 14:54:17 +0800 | [diff] [blame] | 184 | config PCIE_LAYERSCAPE |
Hou Zhiqiang | 02f1f06 | 2020-07-09 23:31:42 +0800 | [diff] [blame] | 185 | bool |
| 186 | default n |
| 187 | |
| 188 | config 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 | |
Laurentiu Tudor | 7fd2350 | 2020-09-10 12:42:19 +0300 | [diff] [blame] | 198 | config 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 | |
Hou Zhiqiang | 02f1f06 | 2020-07-09 23:31:42 +0800 | [diff] [blame] | 210 | config PCIE_LAYERSCAPE_EP |
| 211 | bool "Layerscape PCIe Endpoint mode support" |
Minghuan Lian | c106784 | 2016-12-13 14:54:17 +0800 | [diff] [blame] | 212 | depends on DM_PCI |
Hou Zhiqiang | 02f1f06 | 2020-07-09 23:31:42 +0800 | [diff] [blame] | 213 | select PCIE_LAYERSCAPE |
| 214 | select PCI_ENDPOINT |
Minghuan Lian | c106784 | 2016-12-13 14:54:17 +0800 | [diff] [blame] | 215 | help |
Hou Zhiqiang | 02f1f06 | 2020-07-09 23:31:42 +0800 | [diff] [blame] | 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]. |
Minghuan Lian | c106784 | 2016-12-13 14:54:17 +0800 | [diff] [blame] | 220 | |
Hou Zhiqiang | e5d79c4 | 2019-04-08 10:15:46 +0000 | [diff] [blame] | 221 | config 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 | |
Pankaj Bansal | 4c65678 | 2019-11-30 13:14:00 +0000 | [diff] [blame] | 229 | config FSL_PCIE_COMPAT |
| 230 | string "PCIe compatible of Kernel DT" |
Hou Zhiqiang | 02f1f06 | 2020-07-09 23:31:42 +0800 | [diff] [blame] | 231 | depends on PCIE_LAYERSCAPE_RC || PCIE_LAYERSCAPE_GEN4 |
Pankaj Bansal | 4c65678 | 2019-11-30 13:14:00 +0000 | [diff] [blame] | 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 |
Hou Zhiqiang | a5b5663 | 2021-01-29 13:22:02 +0800 | [diff] [blame] | 238 | default "fsl,lx2160a-pcie" if ARCH_LX2160A |
| 239 | default "fsl,ls2088a-pcie" if ARCH_LX2162A |
Pankaj Bansal | 4c65678 | 2019-11-30 13:14:00 +0000 | [diff] [blame] | 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 | |
Pankaj Bansal | 64d85a2 | 2019-11-30 13:14:10 +0000 | [diff] [blame] | 245 | config FSL_PCIE_EP_COMPAT |
| 246 | string "PCIe EP compatible of Kernel DT" |
Hou Zhiqiang | 02f1f06 | 2020-07-09 23:31:42 +0800 | [diff] [blame] | 247 | depends on PCIE_LAYERSCAPE_RC || PCIE_LAYERSCAPE_GEN4 |
Hou Zhiqiang | a5b5663 | 2021-01-29 13:22:02 +0800 | [diff] [blame] | 248 | default "fsl,lx2160a-pcie-ep" if ARCH_LX2160A |
Pankaj Bansal | 64d85a2 | 2019-11-30 13:14:10 +0000 | [diff] [blame] | 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 | |
Ley Foon Tan | dc05e63 | 2018-04-20 21:55:45 +0800 | [diff] [blame] | 254 | config 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 | |
Srinath Mannam | d90ba42 | 2020-05-12 13:29:50 +0530 | [diff] [blame] | 261 | config 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 | |
Stefan Roese | 3179ec6 | 2019-01-25 11:52:43 +0100 | [diff] [blame] | 268 | config 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 | |
Neil Armstrong | b46caff | 2021-03-25 15:49:18 +0100 | [diff] [blame] | 277 | config PCIE_DW_COMMON |
| 278 | bool |
| 279 | select DM_PCI |
| 280 | |
Sekhar Nori | 18db23d | 2019-08-01 19:12:57 +0530 | [diff] [blame] | 281 | config PCI_KEYSTONE |
| 282 | bool "TI Keystone PCIe controller" |
Neil Armstrong | c0c39ce | 2021-03-25 15:49:19 +0100 | [diff] [blame] | 283 | select PCIE_DW_COMMON |
Sekhar Nori | 18db23d | 2019-08-01 19:12:57 +0530 | [diff] [blame] | 284 | help |
| 285 | Say Y here if you want to enable PCI controller support on AM654 SoC. |
| 286 | |
developer | ad76773 | 2019-08-22 12:26:49 +0200 | [diff] [blame] | 287 | config 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 | |
Neil Armstrong | 06e006b | 2021-03-25 15:49:21 +0100 | [diff] [blame] | 295 | config 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 | |
Jagan Teki | 0226247 | 2020-05-09 22:26:21 +0530 | [diff] [blame] | 303 | config PCIE_ROCKCHIP |
| 304 | bool "Enable Rockchip PCIe driver" |
Michal Simek | 7f6d294 | 2020-08-19 10:44:15 +0200 | [diff] [blame] | 305 | depends on ARCH_ROCKCHIP |
Jagan Teki | 0226247 | 2020-05-09 22:26:21 +0530 | [diff] [blame] | 306 | select DM_PCI |
Jagan Teki | 427603b | 2020-07-09 23:41:02 +0530 | [diff] [blame] | 307 | select PHY_ROCKCHIP_PCIE |
Jagan Teki | 0226247 | 2020-05-09 22:26:21 +0530 | [diff] [blame] | 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 | |
Shawn Lin | c0649da | 2021-01-15 18:01:22 +0800 | [diff] [blame] | 313 | config PCIE_DW_ROCKCHIP |
| 314 | bool "Rockchip DesignWare based PCIe controller" |
| 315 | depends on ARCH_ROCKCHIP |
Neil Armstrong | cf214c6 | 2021-03-25 15:49:20 +0100 | [diff] [blame] | 316 | select PCIE_DW_COMMON |
Shawn Lin | c0649da | 2021-01-15 18:01:22 +0800 | [diff] [blame] | 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 | |
Sylwester Nawrocki | 88f51f7 | 2020-05-25 13:39:58 +0200 | [diff] [blame] | 322 | config 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. |
Tom Rini | f48e025 | 2016-10-26 17:15:37 -0400 | [diff] [blame] | 331 | endif |