Kconfig 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282
  1. # SPDX-License-Identifier: GPL-2.0
  2. menu "PCI controller drivers"
  3. depends on PCI
  4. config PCI_MVEBU
  5. bool "Marvell EBU PCIe controller"
  6. depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST
  7. depends on MVEBU_MBUS
  8. depends on ARM
  9. depends on OF
  10. config PCI_AARDVARK
  11. bool "Aardvark PCIe controller"
  12. depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
  13. depends on OF
  14. depends on PCI_MSI_IRQ_DOMAIN
  15. help
  16. Add support for Aardvark 64bit PCIe Host Controller. This
  17. controller is part of the South Bridge of the Marvel Armada
  18. 3700 SoC.
  19. menu "Cadence PCIe controllers support"
  20. config PCIE_CADENCE
  21. bool
  22. config PCIE_CADENCE_HOST
  23. bool "Cadence PCIe host controller"
  24. depends on OF
  25. depends on PCI
  26. select IRQ_DOMAIN
  27. select PCIE_CADENCE
  28. help
  29. Say Y here if you want to support the Cadence PCIe controller in host
  30. mode. This PCIe controller may be embedded into many different vendors
  31. SoCs.
  32. config PCIE_CADENCE_EP
  33. bool "Cadence PCIe endpoint controller"
  34. depends on OF
  35. depends on PCI_ENDPOINT
  36. select PCIE_CADENCE
  37. help
  38. Say Y here if you want to support the Cadence PCIe controller in
  39. endpoint mode. This PCIe controller may be embedded into many
  40. different vendors SoCs.
  41. endmenu
  42. config PCIE_XILINX_NWL
  43. bool "NWL PCIe Core"
  44. depends on ARCH_ZYNQMP || COMPILE_TEST
  45. depends on PCI_MSI_IRQ_DOMAIN
  46. help
  47. Say 'Y' here if you want kernel support for Xilinx
  48. NWL PCIe controller. The controller can act as Root Port
  49. or End Point. The current option selection will only
  50. support root port enabling.
  51. config PCI_FTPCI100
  52. bool "Faraday Technology FTPCI100 PCI controller"
  53. depends on OF
  54. default ARCH_GEMINI
  55. config PCI_TEGRA
  56. bool "NVIDIA Tegra PCIe controller"
  57. depends on ARCH_TEGRA || COMPILE_TEST
  58. depends on PCI_MSI_IRQ_DOMAIN
  59. help
  60. Say Y here if you want support for the PCIe host controller found
  61. on NVIDIA Tegra SoCs.
  62. config PCI_RCAR_GEN2
  63. bool "Renesas R-Car Gen2 Internal PCI controller"
  64. depends on ARCH_RENESAS || COMPILE_TEST
  65. depends on ARM
  66. help
  67. Say Y here if you want internal PCI support on R-Car Gen2 SoC.
  68. There are 3 internal PCI controllers available with a single
  69. built-in EHCI/OHCI host controller present on each one.
  70. config PCIE_RCAR
  71. bool "Renesas R-Car PCIe controller"
  72. depends on ARCH_RENESAS || COMPILE_TEST
  73. depends on PCI_MSI_IRQ_DOMAIN
  74. help
  75. Say Y here if you want PCIe controller support on R-Car SoCs.
  76. config PCI_HOST_COMMON
  77. bool
  78. select PCI_ECAM
  79. config PCI_HOST_GENERIC
  80. bool "Generic PCI host controller"
  81. depends on OF
  82. select PCI_HOST_COMMON
  83. select IRQ_DOMAIN
  84. help
  85. Say Y here if you want to support a simple generic PCI host
  86. controller, such as the one emulated by kvmtool.
  87. config PCIE_XILINX
  88. bool "Xilinx AXI PCIe host bridge support"
  89. depends on OF || COMPILE_TEST
  90. help
  91. Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
  92. Host Bridge driver.
  93. config PCI_XGENE
  94. bool "X-Gene PCIe controller"
  95. depends on ARM64 || COMPILE_TEST
  96. depends on OF || (ACPI && PCI_QUIRKS)
  97. help
  98. Say Y here if you want internal PCI support on APM X-Gene SoC.
  99. There are 5 internal PCIe ports available. Each port is GEN3 capable
  100. and have varied lanes from x1 to x8.
  101. config PCI_XGENE_MSI
  102. bool "X-Gene v1 PCIe MSI feature"
  103. depends on PCI_XGENE
  104. depends on PCI_MSI_IRQ_DOMAIN
  105. default y
  106. help
  107. Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
  108. This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
  109. config PCI_V3_SEMI
  110. bool "V3 Semiconductor PCI controller"
  111. depends on OF
  112. depends on ARM || COMPILE_TEST
  113. default ARCH_INTEGRATOR_AP
  114. config PCI_VERSATILE
  115. bool "ARM Versatile PB PCI controller"
  116. depends on ARCH_VERSATILE
  117. config PCIE_IPROC
  118. tristate
  119. help
  120. This enables the iProc PCIe core controller support for Broadcom's
  121. iProc family of SoCs. An appropriate bus interface driver needs
  122. to be enabled to select this.
  123. config PCIE_IPROC_PLATFORM
  124. tristate "Broadcom iProc PCIe platform bus driver"
  125. depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
  126. depends on OF
  127. select PCIE_IPROC
  128. default ARCH_BCM_IPROC
  129. help
  130. Say Y here if you want to use the Broadcom iProc PCIe controller
  131. through the generic platform bus interface
  132. config PCIE_IPROC_BCMA
  133. tristate "Broadcom iProc PCIe BCMA bus driver"
  134. depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
  135. select PCIE_IPROC
  136. select BCMA
  137. default ARCH_BCM_5301X
  138. help
  139. Say Y here if you want to use the Broadcom iProc PCIe controller
  140. through the BCMA bus interface
  141. config PCIE_IPROC_MSI
  142. bool "Broadcom iProc PCIe MSI support"
  143. depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
  144. depends on PCI_MSI_IRQ_DOMAIN
  145. default ARCH_BCM_IPROC
  146. help
  147. Say Y here if you want to enable MSI support for Broadcom's iProc
  148. PCIe controller
  149. config PCIE_ALTERA
  150. bool "Altera PCIe controller"
  151. depends on ARM || NIOS2 || COMPILE_TEST
  152. help
  153. Say Y here if you want to enable PCIe controller support on Altera
  154. FPGA.
  155. config PCIE_ALTERA_MSI
  156. bool "Altera PCIe MSI feature"
  157. depends on PCIE_ALTERA
  158. depends on PCI_MSI_IRQ_DOMAIN
  159. help
  160. Say Y here if you want PCIe MSI support for the Altera FPGA.
  161. This MSI driver supports Altera MSI to GIC controller IP.
  162. config PCI_HOST_THUNDER_PEM
  163. bool "Cavium Thunder PCIe controller to off-chip devices"
  164. depends on ARM64 || COMPILE_TEST
  165. depends on OF || (ACPI && PCI_QUIRKS)
  166. select PCI_HOST_COMMON
  167. help
  168. Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
  169. config PCI_HOST_THUNDER_ECAM
  170. bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
  171. depends on ARM64 || COMPILE_TEST
  172. depends on OF || (ACPI && PCI_QUIRKS)
  173. select PCI_HOST_COMMON
  174. help
  175. Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
  176. config PCIE_ROCKCHIP
  177. bool
  178. depends on PCI
  179. config PCIE_ROCKCHIP_HOST
  180. tristate "Rockchip PCIe host controller"
  181. depends on ARCH_ROCKCHIP || COMPILE_TEST
  182. depends on OF
  183. depends on PCI_MSI_IRQ_DOMAIN
  184. select MFD_SYSCON
  185. select PCIE_ROCKCHIP
  186. help
  187. Say Y here if you want internal PCI support on Rockchip SoC.
  188. There is 1 internal PCIe port available to support GEN2 with
  189. 4 slots.
  190. config PCIE_ROCKCHIP_EP
  191. bool "Rockchip PCIe endpoint controller"
  192. depends on ARCH_ROCKCHIP || COMPILE_TEST
  193. depends on OF
  194. depends on PCI_ENDPOINT
  195. select MFD_SYSCON
  196. select PCIE_ROCKCHIP
  197. help
  198. Say Y here if you want to support Rockchip PCIe controller in
  199. endpoint mode on Rockchip SoC. There is 1 internal PCIe port
  200. available to support GEN2 with 4 slots.
  201. config PCIE_MEDIATEK
  202. bool "MediaTek PCIe controller"
  203. depends on ARCH_MEDIATEK || COMPILE_TEST
  204. depends on OF
  205. depends on PCI_MSI_IRQ_DOMAIN
  206. help
  207. Say Y here if you want to enable PCIe controller support on
  208. MediaTek SoCs.
  209. config PCIE_MOBIVEIL
  210. bool "Mobiveil AXI PCIe controller"
  211. depends on ARCH_ZYNQMP || COMPILE_TEST
  212. depends on OF
  213. depends on PCI_MSI_IRQ_DOMAIN
  214. help
  215. Say Y here if you want to enable support for the Mobiveil AXI PCIe
  216. Soft IP. It has up to 8 outbound and inbound windows
  217. for address translation and it is a PCIe Gen4 IP.
  218. config PCIE_TANGO_SMP8759
  219. bool "Tango SMP8759 PCIe controller (DANGEROUS)"
  220. depends on ARCH_TANGO && PCI_MSI && OF
  221. depends on BROKEN
  222. select PCI_HOST_COMMON
  223. help
  224. Say Y here to enable PCIe controller support for Sigma Designs
  225. Tango SMP8759-based systems.
  226. Note: The SMP8759 controller multiplexes PCI config and MMIO
  227. accesses, and Linux doesn't provide a way to serialize them.
  228. This can lead to data corruption if drivers perform concurrent
  229. config and MMIO accesses.
  230. config VMD
  231. depends on PCI_MSI && X86_64 && SRCU
  232. tristate "Intel Volume Management Device Driver"
  233. ---help---
  234. Adds support for the Intel Volume Management Device (VMD). VMD is a
  235. secondary PCI host bridge that allows PCI Express root ports,
  236. and devices attached to them, to be removed from the default
  237. PCI domain and placed within the VMD domain. This provides
  238. more bus resources than are otherwise possible with a
  239. single domain. If you know your system provides one of these and
  240. has devices attached to it, say Y; if you are not sure, say N.
  241. To compile this driver as a module, choose M here: the
  242. module will be called vmd.
  243. source "drivers/pci/controller/dwc/Kconfig"
  244. endmenu