Kconfig 11 KB

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