Kconfig 12 KB

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