Kconfig 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. menu "PCI host controller drivers"
  2. depends on PCI
  3. config PCI_DRA7XX
  4. bool "TI DRA7xx PCIe controller"
  5. depends on OF && HAS_IOMEM && TI_PIPE3
  6. depends on PCI_MSI_IRQ_DOMAIN
  7. select PCIE_DW
  8. help
  9. Enables support for the PCIe controller in the DRA7xx SoC. There
  10. are two instances of PCIe controller in DRA7xx. This controller can
  11. act both as EP and RC. This reuses the Designware core.
  12. config PCI_MVEBU
  13. bool "Marvell EBU PCIe controller"
  14. depends on ARCH_MVEBU || ARCH_DOVE
  15. depends on ARM
  16. depends on OF
  17. config PCI_AARDVARK
  18. bool "Aardvark PCIe controller"
  19. depends on ARCH_MVEBU && ARM64
  20. depends on OF
  21. depends on PCI_MSI_IRQ_DOMAIN
  22. help
  23. Add support for Aardvark 64bit PCIe Host Controller. This
  24. controller is part of the South Bridge of the Marvel Armada
  25. 3700 SoC.
  26. config PCIE_XILINX_NWL
  27. bool "NWL PCIe Core"
  28. depends on ARCH_ZYNQMP
  29. depends on PCI_MSI_IRQ_DOMAIN
  30. help
  31. Say 'Y' here if you want kernel support for Xilinx
  32. NWL PCIe controller. The controller can act as Root Port
  33. or End Point. The current option selection will only
  34. support root port enabling.
  35. config PCIE_DW_PLAT
  36. bool "Platform bus based DesignWare PCIe Controller"
  37. depends on PCI_MSI_IRQ_DOMAIN
  38. select PCIE_DW
  39. ---help---
  40. This selects the DesignWare PCIe controller support. Select this if
  41. you have a PCIe controller on Platform bus.
  42. If you have a controller with this interface, say Y or M here.
  43. If unsure, say N.
  44. config PCIE_DW
  45. bool
  46. depends on PCI_MSI_IRQ_DOMAIN
  47. config PCI_EXYNOS
  48. bool "Samsung Exynos PCIe controller"
  49. depends on SOC_EXYNOS5440
  50. depends on PCI_MSI_IRQ_DOMAIN
  51. select PCIEPORTBUS
  52. select PCIE_DW
  53. config PCI_IMX6
  54. bool "Freescale i.MX6 PCIe controller"
  55. depends on SOC_IMX6Q
  56. depends on PCI_MSI_IRQ_DOMAIN
  57. select PCIEPORTBUS
  58. select PCIE_DW
  59. config PCI_TEGRA
  60. bool "NVIDIA Tegra PCIe controller"
  61. depends on ARCH_TEGRA && !ARM64
  62. help
  63. Say Y here if you want support for the PCIe host controller found
  64. on NVIDIA Tegra SoCs.
  65. config PCI_RCAR_GEN2
  66. bool "Renesas R-Car Gen2 Internal PCI controller"
  67. depends on ARM
  68. depends on ARCH_RENESAS || COMPILE_TEST
  69. help
  70. Say Y here if you want internal PCI support on R-Car Gen2 SoC.
  71. There are 3 internal PCI controllers available with a single
  72. built-in EHCI/OHCI host controller present on each one.
  73. config PCIE_RCAR
  74. bool "Renesas R-Car PCIe controller"
  75. depends on ARCH_RENESAS || (ARM && COMPILE_TEST)
  76. depends on PCI_MSI_IRQ_DOMAIN
  77. help
  78. Say Y here if you want PCIe controller support on R-Car SoCs.
  79. config PCI_HOST_COMMON
  80. bool
  81. select PCI_ECAM
  82. config PCI_HOST_GENERIC
  83. bool "Generic PCI host controller"
  84. depends on (ARM || ARM64) && OF
  85. select PCI_HOST_COMMON
  86. select IRQ_DOMAIN
  87. help
  88. Say Y here if you want to support a simple generic PCI host
  89. controller, such as the one emulated by kvmtool.
  90. config PCIE_SPEAR13XX
  91. bool "STMicroelectronics SPEAr PCIe controller"
  92. depends on ARCH_SPEAR13XX
  93. depends on PCI_MSI_IRQ_DOMAIN
  94. select PCIEPORTBUS
  95. select PCIE_DW
  96. help
  97. Say Y here if you want PCIe support on SPEAr13XX SoCs.
  98. config PCI_KEYSTONE
  99. bool "TI Keystone PCIe controller"
  100. depends on ARCH_KEYSTONE
  101. depends on PCI_MSI_IRQ_DOMAIN
  102. select PCIE_DW
  103. select PCIEPORTBUS
  104. help
  105. Say Y here if you want to enable PCI controller support on Keystone
  106. SoCs. The PCI controller on Keystone is based on Designware hardware
  107. and therefore the driver re-uses the Designware core functions to
  108. implement the driver.
  109. config PCIE_XILINX
  110. bool "Xilinx AXI PCIe host bridge support"
  111. depends on ARCH_ZYNQ || MICROBLAZE
  112. help
  113. Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
  114. Host Bridge driver.
  115. config PCI_XGENE
  116. bool "X-Gene PCIe controller"
  117. depends on ARCH_XGENE
  118. depends on OF
  119. select PCIEPORTBUS
  120. help
  121. Say Y here if you want internal PCI support on APM X-Gene SoC.
  122. There are 5 internal PCIe ports available. Each port is GEN3 capable
  123. and have varied lanes from x1 to x8.
  124. config PCI_XGENE_MSI
  125. bool "X-Gene v1 PCIe MSI feature"
  126. depends on PCI_XGENE
  127. depends on PCI_MSI_IRQ_DOMAIN
  128. default y
  129. help
  130. Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
  131. This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
  132. config PCI_LAYERSCAPE
  133. bool "Freescale Layerscape PCIe controller"
  134. depends on OF && (ARM || ARCH_LAYERSCAPE)
  135. depends on PCI_MSI_IRQ_DOMAIN
  136. select PCIE_DW
  137. select MFD_SYSCON
  138. help
  139. Say Y here if you want PCIe controller support on Layerscape SoCs.
  140. config PCI_VERSATILE
  141. bool "ARM Versatile PB PCI controller"
  142. depends on ARCH_VERSATILE
  143. config PCIE_IPROC
  144. tristate
  145. help
  146. This enables the iProc PCIe core controller support for Broadcom's
  147. iProc family of SoCs. An appropriate bus interface driver needs
  148. to be enabled to select this.
  149. config PCIE_IPROC_PLATFORM
  150. tristate "Broadcom iProc PCIe platform bus driver"
  151. depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
  152. depends on OF
  153. select PCIE_IPROC
  154. default ARCH_BCM_IPROC
  155. help
  156. Say Y here if you want to use the Broadcom iProc PCIe controller
  157. through the generic platform bus interface
  158. config PCIE_IPROC_BCMA
  159. tristate "Broadcom iProc PCIe BCMA bus driver"
  160. depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
  161. select PCIE_IPROC
  162. select BCMA
  163. select PCI_DOMAINS
  164. default ARCH_BCM_5301X
  165. help
  166. Say Y here if you want to use the Broadcom iProc PCIe controller
  167. through the BCMA bus interface
  168. config PCIE_IPROC_MSI
  169. bool "Broadcom iProc PCIe MSI support"
  170. depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
  171. depends on PCI_MSI_IRQ_DOMAIN
  172. default ARCH_BCM_IPROC
  173. help
  174. Say Y here if you want to enable MSI support for Broadcom's iProc
  175. PCIe controller
  176. config PCIE_ALTERA
  177. bool "Altera PCIe controller"
  178. depends on ARM || NIOS2
  179. depends on OF_PCI
  180. select PCI_DOMAINS
  181. help
  182. Say Y here if you want to enable PCIe controller support on Altera
  183. FPGA.
  184. config PCIE_ALTERA_MSI
  185. bool "Altera PCIe MSI feature"
  186. depends on PCIE_ALTERA
  187. depends on PCI_MSI_IRQ_DOMAIN
  188. help
  189. Say Y here if you want PCIe MSI support for the Altera FPGA.
  190. This MSI driver supports Altera MSI to GIC controller IP.
  191. config PCI_HISI
  192. depends on OF && ARM64
  193. bool "HiSilicon Hip05 and Hip06 SoCs PCIe controllers"
  194. depends on PCI_MSI_IRQ_DOMAIN
  195. select PCIEPORTBUS
  196. select PCIE_DW
  197. help
  198. Say Y here if you want PCIe controller support on HiSilicon
  199. Hip05 and Hip06 SoCs
  200. config PCIE_QCOM
  201. bool "Qualcomm PCIe controller"
  202. depends on ARCH_QCOM && OF
  203. depends on PCI_MSI_IRQ_DOMAIN
  204. select PCIE_DW
  205. select PCIEPORTBUS
  206. help
  207. Say Y here to enable PCIe controller support on Qualcomm SoCs. The
  208. PCIe controller uses the Designware core plus Qualcomm-specific
  209. hardware wrappers.
  210. config PCI_HOST_THUNDER_PEM
  211. bool "Cavium Thunder PCIe controller to off-chip devices"
  212. depends on OF && ARM64
  213. select PCI_HOST_COMMON
  214. help
  215. Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
  216. config PCI_HOST_THUNDER_ECAM
  217. bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
  218. depends on OF && ARM64
  219. select PCI_HOST_COMMON
  220. help
  221. Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
  222. config PCIE_ARMADA_8K
  223. bool "Marvell Armada-8K PCIe controller"
  224. depends on ARCH_MVEBU
  225. depends on PCI_MSI_IRQ_DOMAIN
  226. select PCIE_DW
  227. select PCIEPORTBUS
  228. help
  229. Say Y here if you want to enable PCIe controller support on
  230. Armada-8K SoCs. The PCIe controller on Armada-8K is based on
  231. Designware hardware and therefore the driver re-uses the
  232. Designware core functions to implement the driver.
  233. config PCIE_ARTPEC6
  234. bool "Axis ARTPEC-6 PCIe controller"
  235. depends on MACH_ARTPEC6
  236. depends on PCI_MSI_IRQ_DOMAIN
  237. select PCIE_DW
  238. select PCIEPORTBUS
  239. help
  240. Say Y here to enable PCIe controller support on Axis ARTPEC-6
  241. SoCs. This PCIe controller uses the DesignWare core.
  242. config PCIE_ROCKCHIP
  243. bool "Rockchip PCIe controller"
  244. depends on ARCH_ROCKCHIP
  245. depends on OF
  246. depends on PCI_MSI_IRQ_DOMAIN
  247. select MFD_SYSCON
  248. help
  249. Say Y here if you want internal PCI support on Rockchip SoC.
  250. There is 1 internal PCIe port available to support GEN2 with
  251. 4 slots.
  252. config VMD
  253. depends on PCI_MSI && X86_64
  254. tristate "Intel Volume Management Device Driver"
  255. default N
  256. ---help---
  257. Adds support for the Intel Volume Management Device (VMD). VMD is a
  258. secondary PCI host bridge that allows PCI Express root ports,
  259. and devices attached to them, to be removed from the default
  260. PCI domain and placed within the VMD domain. This provides
  261. more bus resources than are otherwise possible with a
  262. single domain. If you know your system provides one of these and
  263. has devices attached to it, say Y; if you are not sure, say N.
  264. To compile this driver as a module, choose M here: the
  265. module will be called vmd.
  266. endmenu