Kconfig 11 KB

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