Kconfig 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. # SPDX-License-Identifier: GPL-2.0
  2. menu "PCI host controller drivers"
  3. depends on PCI
  4. config PCI_MVEBU
  5. bool "Marvell EBU PCIe controller"
  6. depends on ARCH_MVEBU || ARCH_DOVE
  7. depends on ARM
  8. depends on OF
  9. config PCI_AARDVARK
  10. bool "Aardvark PCIe controller"
  11. depends on ARCH_MVEBU && ARM64
  12. depends on OF
  13. depends on PCI_MSI_IRQ_DOMAIN
  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_XILINX_NWL
  19. bool "NWL PCIe Core"
  20. depends on ARCH_ZYNQMP
  21. depends on PCI_MSI_IRQ_DOMAIN
  22. help
  23. Say 'Y' here if you want kernel support for Xilinx
  24. NWL PCIe controller. The controller can act as Root Port
  25. or End Point. The current option selection will only
  26. support root port enabling.
  27. config PCI_FTPCI100
  28. bool "Faraday Technology FTPCI100 PCI controller"
  29. depends on OF
  30. depends on ARM
  31. default ARCH_GEMINI
  32. config PCI_TEGRA
  33. bool "NVIDIA Tegra PCIe controller"
  34. depends on ARCH_TEGRA
  35. help
  36. Say Y here if you want support for the PCIe host controller found
  37. on NVIDIA Tegra SoCs.
  38. config PCI_RCAR_GEN2
  39. bool "Renesas R-Car Gen2 Internal PCI controller"
  40. depends on ARM
  41. depends on ARCH_RENESAS || COMPILE_TEST
  42. help
  43. Say Y here if you want internal PCI support on R-Car Gen2 SoC.
  44. There are 3 internal PCI controllers available with a single
  45. built-in EHCI/OHCI host controller present on each one.
  46. config PCIE_RCAR
  47. bool "Renesas R-Car PCIe controller"
  48. depends on ARCH_RENESAS || (ARM && COMPILE_TEST)
  49. depends on PCI_MSI_IRQ_DOMAIN
  50. help
  51. Say Y here if you want PCIe controller support on R-Car SoCs.
  52. config PCI_HOST_COMMON
  53. bool
  54. select PCI_ECAM
  55. config PCI_HOST_GENERIC
  56. bool "Generic PCI host controller"
  57. depends on (ARM || ARM64) && OF
  58. select PCI_HOST_COMMON
  59. select IRQ_DOMAIN
  60. help
  61. Say Y here if you want to support a simple generic PCI host
  62. controller, such as the one emulated by kvmtool.
  63. config PCIE_XILINX
  64. bool "Xilinx AXI PCIe host bridge support"
  65. depends on ARCH_ZYNQ || MICROBLAZE || (MIPS && PCI_DRIVERS_GENERIC)
  66. help
  67. Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
  68. Host Bridge driver.
  69. config PCI_XGENE
  70. bool "X-Gene PCIe controller"
  71. depends on ARM64
  72. depends on OF || (ACPI && PCI_QUIRKS)
  73. select PCIEPORTBUS
  74. help
  75. Say Y here if you want internal PCI support on APM X-Gene SoC.
  76. There are 5 internal PCIe ports available. Each port is GEN3 capable
  77. and have varied lanes from x1 to x8.
  78. config PCI_XGENE_MSI
  79. bool "X-Gene v1 PCIe MSI feature"
  80. depends on PCI_XGENE
  81. depends on PCI_MSI_IRQ_DOMAIN
  82. default y
  83. help
  84. Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
  85. This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
  86. config PCI_V3_SEMI
  87. bool "V3 Semiconductor PCI controller"
  88. depends on OF
  89. depends on ARM
  90. default ARCH_INTEGRATOR_AP
  91. config PCI_VERSATILE
  92. bool "ARM Versatile PB PCI controller"
  93. depends on ARCH_VERSATILE
  94. config PCIE_IPROC
  95. tristate
  96. select PCI_DOMAINS
  97. help
  98. This enables the iProc PCIe core controller support for Broadcom's
  99. iProc family of SoCs. An appropriate bus interface driver needs
  100. to be enabled to select this.
  101. config PCIE_IPROC_PLATFORM
  102. tristate "Broadcom iProc PCIe platform bus driver"
  103. depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
  104. depends on OF
  105. select PCIE_IPROC
  106. default ARCH_BCM_IPROC
  107. help
  108. Say Y here if you want to use the Broadcom iProc PCIe controller
  109. through the generic platform bus interface
  110. config PCIE_IPROC_BCMA
  111. tristate "Broadcom iProc PCIe BCMA bus driver"
  112. depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
  113. select PCIE_IPROC
  114. select BCMA
  115. default ARCH_BCM_5301X
  116. help
  117. Say Y here if you want to use the Broadcom iProc PCIe controller
  118. through the BCMA bus interface
  119. config PCIE_IPROC_MSI
  120. bool "Broadcom iProc PCIe MSI support"
  121. depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
  122. depends on PCI_MSI_IRQ_DOMAIN
  123. default ARCH_BCM_IPROC
  124. help
  125. Say Y here if you want to enable MSI support for Broadcom's iProc
  126. PCIe controller
  127. config PCIE_ALTERA
  128. bool "Altera PCIe controller"
  129. depends on ARM || NIOS2
  130. depends on OF_PCI
  131. select PCI_DOMAINS
  132. help
  133. Say Y here if you want to enable PCIe controller support on Altera
  134. FPGA.
  135. config PCIE_ALTERA_MSI
  136. bool "Altera PCIe MSI feature"
  137. depends on PCIE_ALTERA
  138. depends on PCI_MSI_IRQ_DOMAIN
  139. help
  140. Say Y here if you want PCIe MSI support for the Altera FPGA.
  141. This MSI driver supports Altera MSI to GIC controller IP.
  142. config PCI_HOST_THUNDER_PEM
  143. bool "Cavium Thunder PCIe controller to off-chip devices"
  144. depends on ARM64
  145. depends on OF || (ACPI && PCI_QUIRKS)
  146. select PCI_HOST_COMMON
  147. help
  148. Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
  149. config PCI_HOST_THUNDER_ECAM
  150. bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
  151. depends on ARM64
  152. depends on OF || (ACPI && PCI_QUIRKS)
  153. select PCI_HOST_COMMON
  154. help
  155. Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
  156. config PCIE_ROCKCHIP
  157. tristate "Rockchip PCIe controller"
  158. depends on ARCH_ROCKCHIP || COMPILE_TEST
  159. depends on OF
  160. depends on PCI_MSI_IRQ_DOMAIN
  161. select MFD_SYSCON
  162. help
  163. Say Y here if you want internal PCI support on Rockchip SoC.
  164. There is 1 internal PCIe port available to support GEN2 with
  165. 4 slots.
  166. config PCIE_MEDIATEK
  167. bool "MediaTek PCIe controller"
  168. depends on (ARM || ARM64) && (ARCH_MEDIATEK || COMPILE_TEST)
  169. depends on OF
  170. depends on PCI
  171. select PCIEPORTBUS
  172. help
  173. Say Y here if you want to enable PCIe controller support on
  174. MediaTek SoCs.
  175. config PCIE_TANGO_SMP8759
  176. bool "Tango SMP8759 PCIe controller (DANGEROUS)"
  177. depends on ARCH_TANGO && PCI_MSI && OF
  178. depends on BROKEN
  179. select PCI_HOST_COMMON
  180. help
  181. Say Y here to enable PCIe controller support for Sigma Designs
  182. Tango SMP8759-based systems.
  183. Note: The SMP8759 controller multiplexes PCI config and MMIO
  184. accesses, and Linux doesn't provide a way to serialize them.
  185. This can lead to data corruption if drivers perform concurrent
  186. config and MMIO accesses.
  187. config VMD
  188. depends on PCI_MSI && X86_64 && SRCU
  189. tristate "Intel Volume Management Device Driver"
  190. default N
  191. ---help---
  192. Adds support for the Intel Volume Management Device (VMD). VMD is a
  193. secondary PCI host bridge that allows PCI Express root ports,
  194. and devices attached to them, to be removed from the default
  195. PCI domain and placed within the VMD domain. This provides
  196. more bus resources than are otherwise possible with a
  197. single domain. If you know your system provides one of these and
  198. has devices attached to it, say Y; if you are not sure, say N.
  199. To compile this driver as a module, choose M here: the
  200. module will be called vmd.
  201. endmenu