Kconfig 11 KB

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