Kconfig 7.8 KB

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