Kconfig 9.1 KB

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