Kconfig 8.1 KB

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