Kconfig 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352
  1. # SPDX-License-Identifier: GPL-2.0
  2. menu "PCI controller drivers"
  3. depends on PCI
  4. config PCI_AARDVARK
  5. tristate "Aardvark PCIe controller"
  6. depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
  7. depends on OF
  8. depends on PCI_MSI
  9. select PCI_BRIDGE_EMUL
  10. help
  11. Add support for Aardvark 64bit PCIe Host Controller. This
  12. controller is part of the South Bridge of the Marvel Armada
  13. 3700 SoC.
  14. config PCIE_ALTERA
  15. tristate "Altera PCIe controller"
  16. depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
  17. help
  18. Say Y here if you want to enable PCIe controller support on Altera
  19. FPGA.
  20. config PCIE_ALTERA_MSI
  21. tristate "Altera PCIe MSI feature"
  22. depends on PCIE_ALTERA
  23. depends on PCI_MSI
  24. help
  25. Say Y here if you want PCIe MSI support for the Altera FPGA.
  26. This MSI driver supports Altera MSI to GIC controller IP.
  27. config PCIE_APPLE_MSI_DOORBELL_ADDR
  28. hex
  29. default 0xfffff000
  30. depends on PCIE_APPLE
  31. config PCIE_APPLE
  32. tristate "Apple PCIe controller"
  33. depends on ARCH_APPLE || COMPILE_TEST
  34. depends on OF
  35. depends on PCI_MSI
  36. select PCI_HOST_COMMON
  37. help
  38. Say Y here if you want to enable PCIe controller support on Apple
  39. system-on-chips, like the Apple M1. This is required for the USB
  40. type-A ports, Ethernet, Wi-Fi, and Bluetooth.
  41. If unsure, say Y if you have an Apple Silicon system.
  42. config PCI_VERSATILE
  43. bool "ARM Versatile PB PCI controller"
  44. depends on ARCH_VERSATILE || COMPILE_TEST
  45. config PCIE_BRCMSTB
  46. tristate "Broadcom Brcmstb PCIe controller"
  47. depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCMBCA || \
  48. BMIPS_GENERIC || COMPILE_TEST
  49. depends on OF
  50. depends on PCI_MSI
  51. default ARCH_BRCMSTB || BMIPS_GENERIC
  52. help
  53. Say Y here to enable PCIe host controller support for
  54. Broadcom STB based SoCs, like the Raspberry Pi 4.
  55. config PCIE_IPROC
  56. tristate
  57. help
  58. This enables the iProc PCIe core controller support for Broadcom's
  59. iProc family of SoCs. An appropriate bus interface driver needs
  60. to be enabled to select this.
  61. config PCIE_IPROC_PLATFORM
  62. tristate "Broadcom iProc PCIe platform bus driver"
  63. depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
  64. depends on OF
  65. select PCIE_IPROC
  66. default ARCH_BCM_IPROC
  67. help
  68. Say Y here if you want to use the Broadcom iProc PCIe controller
  69. through the generic platform bus interface
  70. config PCIE_IPROC_BCMA
  71. tristate "Broadcom iProc BCMA PCIe controller"
  72. depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
  73. select PCIE_IPROC
  74. select BCMA
  75. default ARCH_BCM_5301X
  76. help
  77. Say Y here if you want to use the Broadcom iProc PCIe controller
  78. through the BCMA bus interface
  79. config PCIE_IPROC_MSI
  80. bool "Broadcom iProc PCIe MSI support"
  81. depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
  82. depends on PCI_MSI
  83. default ARCH_BCM_IPROC
  84. help
  85. Say Y here if you want to enable MSI support for Broadcom's iProc
  86. PCIe controller
  87. config PCI_HOST_THUNDER_PEM
  88. bool "Cavium Thunder PCIe controller to off-chip devices"
  89. depends on ARM64 || COMPILE_TEST
  90. depends on OF || (ACPI && PCI_QUIRKS)
  91. select PCI_HOST_COMMON
  92. help
  93. Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
  94. config PCI_HOST_THUNDER_ECAM
  95. bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
  96. depends on ARM64 || COMPILE_TEST
  97. depends on OF || (ACPI && PCI_QUIRKS)
  98. select PCI_HOST_COMMON
  99. help
  100. Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
  101. config PCI_FTPCI100
  102. bool "Faraday Technology FTPCI100 PCI controller"
  103. depends on OF
  104. default ARCH_GEMINI
  105. config PCI_HOST_COMMON
  106. tristate
  107. select PCI_ECAM
  108. config PCI_HOST_GENERIC
  109. tristate "Generic PCI host controller"
  110. depends on OF
  111. select PCI_HOST_COMMON
  112. select IRQ_DOMAIN
  113. help
  114. Say Y here if you want to support a simple generic PCI host
  115. controller, such as the one emulated by kvmtool.
  116. config PCIE_HISI_ERR
  117. depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST)
  118. bool "HiSilicon HIP PCIe controller error handling driver"
  119. help
  120. Say Y here if you want error handling support
  121. for the PCIe controller's errors on HiSilicon HIP SoCs
  122. config PCI_IXP4XX
  123. bool "Intel IXP4xx PCI controller"
  124. depends on ARM && OF
  125. depends on ARCH_IXP4XX || COMPILE_TEST
  126. default ARCH_IXP4XX
  127. help
  128. Say Y here if you want support for the PCI host controller found
  129. in the Intel IXP4xx XScale-based network processor SoC.
  130. config VMD
  131. depends on PCI_MSI && X86_64 && !UML
  132. tristate "Intel Volume Management Device Driver"
  133. help
  134. Adds support for the Intel Volume Management Device (VMD). VMD is a
  135. secondary PCI host bridge that allows PCI Express root ports,
  136. and devices attached to them, to be removed from the default
  137. PCI domain and placed within the VMD domain. This provides
  138. more bus resources than are otherwise possible with a
  139. single domain. If you know your system provides one of these and
  140. has devices attached to it, say Y; if you are not sure, say N.
  141. To compile this driver as a module, choose M here: the
  142. module will be called vmd.
  143. config PCI_LOONGSON
  144. bool "LOONGSON PCIe controller"
  145. depends on MACH_LOONGSON64 || COMPILE_TEST
  146. depends on OF || ACPI
  147. depends on PCI_QUIRKS
  148. default MACH_LOONGSON64
  149. help
  150. Say Y here if you want to enable PCI controller support on
  151. Loongson systems.
  152. config PCI_MVEBU
  153. tristate "Marvell EBU PCIe controller"
  154. depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST
  155. depends on MVEBU_MBUS
  156. depends on ARM
  157. depends on OF
  158. select PCI_BRIDGE_EMUL
  159. help
  160. Add support for Marvell EBU PCIe controller. This PCIe controller
  161. is used on 32-bit Marvell ARM SoCs: Dove, Kirkwood, Armada 370,
  162. Armada XP, Armada 375, Armada 38x and Armada 39x.
  163. config PCIE_MEDIATEK
  164. tristate "MediaTek PCIe controller"
  165. depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST
  166. depends on OF
  167. depends on PCI_MSI
  168. help
  169. Say Y here if you want to enable PCIe controller support on
  170. MediaTek SoCs.
  171. config PCIE_MEDIATEK_GEN3
  172. tristate "MediaTek Gen3 PCIe controller"
  173. depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST
  174. depends on PCI_MSI
  175. help
  176. Adds support for PCIe Gen3 MAC controller for MediaTek SoCs.
  177. This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed,
  178. and support up to 256 MSI interrupt numbers for
  179. multi-function devices.
  180. Say Y here if you want to enable Gen3 PCIe controller support on
  181. MediaTek SoCs.
  182. config PCIE_MT7621
  183. tristate "MediaTek MT7621 PCIe controller"
  184. depends on SOC_MT7621 || COMPILE_TEST
  185. select PHY_MT7621_PCI
  186. default SOC_MT7621
  187. help
  188. This selects a driver for the MediaTek MT7621 PCIe Controller.
  189. config PCI_HYPERV_INTERFACE
  190. tristate "Microsoft Hyper-V PCI Interface"
  191. depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI
  192. help
  193. The Hyper-V PCI Interface is a helper driver that allows other
  194. drivers to have a common interface with the Hyper-V PCI frontend
  195. driver.
  196. config PCI_TEGRA
  197. bool "NVIDIA Tegra PCIe controller"
  198. depends on ARCH_TEGRA || COMPILE_TEST
  199. depends on PCI_MSI
  200. help
  201. Say Y here if you want support for the PCIe host controller found
  202. on NVIDIA Tegra SoCs.
  203. config PCIE_RCAR_HOST
  204. bool "Renesas R-Car PCIe controller (host mode)"
  205. depends on ARCH_RENESAS || COMPILE_TEST
  206. depends on PCI_MSI
  207. help
  208. Say Y here if you want PCIe controller support on R-Car SoCs in host
  209. mode.
  210. config PCIE_RCAR_EP
  211. bool "Renesas R-Car PCIe controller (endpoint mode)"
  212. depends on ARCH_RENESAS || COMPILE_TEST
  213. depends on PCI_ENDPOINT
  214. help
  215. Say Y here if you want PCIe controller support on R-Car SoCs in
  216. endpoint mode.
  217. config PCI_RCAR_GEN2
  218. bool "Renesas R-Car Gen2 Internal PCI controller"
  219. depends on ARCH_RENESAS || COMPILE_TEST
  220. depends on ARM
  221. help
  222. Say Y here if you want internal PCI support on R-Car Gen2 SoC.
  223. There are 3 internal PCI controllers available with a single
  224. built-in EHCI/OHCI host controller present on each one.
  225. config PCIE_ROCKCHIP
  226. bool
  227. depends on PCI
  228. config PCIE_ROCKCHIP_HOST
  229. tristate "Rockchip PCIe controller (host mode)"
  230. depends on ARCH_ROCKCHIP || COMPILE_TEST
  231. depends on OF
  232. depends on PCI_MSI
  233. select MFD_SYSCON
  234. select PCIE_ROCKCHIP
  235. help
  236. Say Y here if you want internal PCI support on Rockchip SoC.
  237. There is 1 internal PCIe port available to support GEN2 with
  238. 4 slots.
  239. config PCIE_ROCKCHIP_EP
  240. bool "Rockchip PCIe controller (endpoint mode)"
  241. depends on ARCH_ROCKCHIP || COMPILE_TEST
  242. depends on OF
  243. depends on PCI_ENDPOINT
  244. select MFD_SYSCON
  245. select PCIE_ROCKCHIP
  246. help
  247. Say Y here if you want to support Rockchip PCIe controller in
  248. endpoint mode on Rockchip SoC. There is 1 internal PCIe port
  249. available to support GEN2 with 4 slots.
  250. config PCI_V3_SEMI
  251. bool "V3 Semiconductor PCI controller"
  252. depends on OF
  253. depends on ARM || COMPILE_TEST
  254. default ARCH_INTEGRATOR_AP
  255. config PCI_XGENE
  256. bool "X-Gene PCIe controller"
  257. depends on ARM64 || COMPILE_TEST
  258. depends on OF || (ACPI && PCI_QUIRKS)
  259. help
  260. Say Y here if you want internal PCI support on APM X-Gene SoC.
  261. There are 5 internal PCIe ports available. Each port is GEN3 capable
  262. and have varied lanes from x1 to x8.
  263. config PCI_XGENE_MSI
  264. bool "X-Gene v1 PCIe MSI feature"
  265. depends on PCI_XGENE
  266. depends on PCI_MSI
  267. default y
  268. help
  269. Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
  270. This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
  271. config PCIE_XILINX
  272. bool "Xilinx AXI PCIe controller"
  273. depends on OF
  274. depends on PCI_MSI
  275. help
  276. Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
  277. Host Bridge driver.
  278. config PCIE_XILINX_DMA_PL
  279. bool "Xilinx DMA PL PCIe host bridge support"
  280. depends on ARCH_ZYNQMP || COMPILE_TEST
  281. depends on PCI_MSI
  282. select PCI_HOST_COMMON
  283. help
  284. Say 'Y' here if you want kernel support for the Xilinx PL DMA
  285. PCIe host bridge. The controller is a Soft IP which can act as
  286. Root Port. If your system provides Xilinx PCIe host controller
  287. bridge DMA as Soft IP say 'Y'; if you are not sure, say 'N'.
  288. config PCIE_XILINX_NWL
  289. bool "Xilinx NWL PCIe controller"
  290. depends on ARCH_ZYNQMP || COMPILE_TEST
  291. depends on PCI_MSI
  292. help
  293. Say 'Y' here if you want kernel support for Xilinx
  294. NWL PCIe controller. The controller can act as Root Port
  295. or End Point. The current option selection will only
  296. support root port enabling.
  297. config PCIE_XILINX_CPM
  298. bool "Xilinx Versal CPM PCI controller"
  299. depends on ARCH_ZYNQMP || COMPILE_TEST
  300. select PCI_HOST_COMMON
  301. help
  302. Say 'Y' here if you want kernel support for the
  303. Xilinx Versal CPM host bridge.
  304. source "drivers/pci/controller/cadence/Kconfig"
  305. source "drivers/pci/controller/dwc/Kconfig"
  306. source "drivers/pci/controller/mobiveil/Kconfig"
  307. source "drivers/pci/controller/plda/Kconfig"
  308. endmenu