Kconfig 11 KB

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