Kconfig 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. #
  3. # FPGA framework configuration
  4. #
  5. menuconfig FPGA
  6. tristate "FPGA Configuration Framework"
  7. help
  8. Say Y here if you want support for configuring FPGAs from the
  9. kernel. The FPGA framework adds an FPGA manager class and FPGA
  10. manager drivers.
  11. if FPGA
  12. config FPGA_MGR_SOCFPGA
  13. tristate "Altera SOCFPGA FPGA Manager"
  14. depends on ARCH_INTEL_SOCFPGA || COMPILE_TEST
  15. help
  16. FPGA manager driver support for Altera SOCFPGA.
  17. config FPGA_MGR_SOCFPGA_A10
  18. tristate "Altera SoCFPGA Arria10"
  19. depends on ARCH_INTEL_SOCFPGA || COMPILE_TEST
  20. select REGMAP_MMIO
  21. help
  22. FPGA manager driver support for Altera Arria10 SoCFPGA.
  23. config ALTERA_PR_IP_CORE
  24. tristate "Altera Partial Reconfiguration IP Core"
  25. help
  26. Core driver support for Altera Partial Reconfiguration IP component
  27. config ALTERA_PR_IP_CORE_PLAT
  28. tristate "Platform support of Altera Partial Reconfiguration IP Core"
  29. depends on ALTERA_PR_IP_CORE && OF && HAS_IOMEM
  30. help
  31. Platform driver support for Altera Partial Reconfiguration IP
  32. component
  33. config FPGA_MGR_ALTERA_PS_SPI
  34. tristate "Altera FPGA Passive Serial over SPI"
  35. depends on SPI
  36. select BITREVERSE
  37. help
  38. FPGA manager driver support for Altera Arria/Cyclone/Stratix
  39. using the passive serial interface over SPI.
  40. config FPGA_MGR_ALTERA_CVP
  41. tristate "Altera CvP FPGA Manager"
  42. depends on PCI
  43. help
  44. FPGA manager driver support for Arria-V, Cyclone-V, Stratix-V,
  45. Arria 10 and Stratix10 Altera FPGAs using the CvP interface over PCIe.
  46. config FPGA_MGR_ZYNQ_FPGA
  47. tristate "Xilinx Zynq FPGA"
  48. depends on ARCH_ZYNQ || COMPILE_TEST
  49. help
  50. FPGA manager driver support for Xilinx Zynq FPGAs.
  51. config FPGA_MGR_STRATIX10_SOC
  52. tristate "Intel Stratix10 SoC FPGA Manager"
  53. depends on (ARCH_INTEL_SOCFPGA && INTEL_STRATIX10_SERVICE)
  54. help
  55. FPGA manager driver support for the Intel Stratix10 SoC.
  56. config FPGA_MGR_XILINX_CORE
  57. tristate
  58. config FPGA_MGR_XILINX_SELECTMAP
  59. tristate "Xilinx Configuration over SelectMAP"
  60. depends on HAS_IOMEM
  61. select FPGA_MGR_XILINX_CORE
  62. help
  63. FPGA manager driver support for Xilinx FPGA configuration
  64. over SelectMAP interface.
  65. config FPGA_MGR_XILINX_SPI
  66. tristate "Xilinx Configuration over Slave Serial (SPI)"
  67. depends on SPI
  68. select FPGA_MGR_XILINX_CORE
  69. help
  70. FPGA manager driver support for Xilinx FPGA configuration
  71. over slave serial interface.
  72. config FPGA_MGR_ICE40_SPI
  73. tristate "Lattice iCE40 SPI"
  74. depends on OF && SPI
  75. help
  76. FPGA manager driver support for Lattice iCE40 FPGAs over SPI.
  77. config FPGA_MGR_MACHXO2_SPI
  78. tristate "Lattice MachXO2 SPI"
  79. depends on SPI
  80. help
  81. FPGA manager driver support for Lattice MachXO2 configuration
  82. over slave SPI interface.
  83. config FPGA_MGR_TS73XX
  84. tristate "Technologic Systems TS-73xx SBC FPGA Manager"
  85. depends on ARCH_EP93XX && MACH_TS72XX
  86. help
  87. FPGA manager driver support for the Altera Cyclone II FPGA
  88. present on the TS-73xx SBC boards.
  89. config FPGA_BRIDGE
  90. tristate "FPGA Bridge Framework"
  91. help
  92. Say Y here if you want to support bridges connected between host
  93. processors and FPGAs or between FPGAs.
  94. config SOCFPGA_FPGA_BRIDGE
  95. tristate "Altera SoCFPGA FPGA Bridges"
  96. depends on ARCH_INTEL_SOCFPGA && FPGA_BRIDGE
  97. help
  98. Say Y to enable drivers for FPGA bridges for Altera SOCFPGA
  99. devices.
  100. config ALTERA_FREEZE_BRIDGE
  101. tristate "Altera FPGA Freeze Bridge"
  102. depends on FPGA_BRIDGE && HAS_IOMEM
  103. help
  104. Say Y to enable drivers for Altera FPGA Freeze bridges. A
  105. freeze bridge is a bridge that exists in the FPGA fabric to
  106. isolate one region of the FPGA from the busses while that
  107. region is being reprogrammed.
  108. config XILINX_PR_DECOUPLER
  109. tristate "Xilinx LogiCORE PR Decoupler"
  110. depends on FPGA_BRIDGE
  111. depends on HAS_IOMEM
  112. help
  113. Say Y to enable drivers for Xilinx LogiCORE PR Decoupler
  114. or Xilinx Dynamic Function eXchange AIX Shutdown Manager.
  115. The PR Decoupler exists in the FPGA fabric to isolate one
  116. region of the FPGA from the busses while that region is
  117. being reprogrammed during partial reconfig.
  118. The Dynamic Function eXchange AXI shutdown manager prevents
  119. AXI traffic from passing through the bridge. The controller
  120. safely handles AXI4MM and AXI4-Lite interfaces on a
  121. Reconfigurable Partition when it is undergoing dynamic
  122. reconfiguration, preventing the system deadlock that can
  123. occur if AXI transactions are interrupted by DFX.
  124. config FPGA_REGION
  125. tristate "FPGA Region"
  126. depends on FPGA_BRIDGE
  127. help
  128. FPGA Region common code. An FPGA Region controls an FPGA Manager
  129. and the FPGA Bridges associated with either a reconfigurable
  130. region of an FPGA or a whole FPGA.
  131. config OF_FPGA_REGION
  132. tristate "FPGA Region Device Tree Overlay Support"
  133. depends on OF && FPGA_REGION
  134. help
  135. Support for loading FPGA images by applying a Device Tree
  136. overlay.
  137. config FPGA_DFL
  138. tristate "FPGA Device Feature List (DFL) support"
  139. select FPGA_BRIDGE
  140. select FPGA_REGION
  141. depends on HAS_IOMEM
  142. help
  143. Device Feature List (DFL) defines a feature list structure that
  144. creates a linked list of feature headers within the MMIO space
  145. to provide an extensible way of adding features for FPGA.
  146. Driver can walk through the feature headers to enumerate feature
  147. devices (e.g. FPGA Management Engine, Port and Accelerator
  148. Function Unit) and their private features for target FPGA devices.
  149. Select this option to enable common support for Field-Programmable
  150. Gate Array (FPGA) solutions which implement Device Feature List.
  151. It provides enumeration APIs and feature device infrastructure.
  152. config FPGA_DFL_FME
  153. tristate "FPGA DFL FME Driver"
  154. depends on FPGA_DFL && HWMON && PERF_EVENTS
  155. help
  156. The FPGA Management Engine (FME) is a feature device implemented
  157. under Device Feature List (DFL) framework. Select this option to
  158. enable the platform device driver for FME which implements all
  159. FPGA platform level management features. There shall be one FME
  160. per DFL based FPGA device.
  161. config FPGA_DFL_FME_MGR
  162. tristate "FPGA DFL FME Manager Driver"
  163. depends on FPGA_DFL_FME && HAS_IOMEM
  164. help
  165. Say Y to enable FPGA Manager driver for FPGA Management Engine.
  166. config FPGA_DFL_FME_BRIDGE
  167. tristate "FPGA DFL FME Bridge Driver"
  168. depends on FPGA_DFL_FME && HAS_IOMEM
  169. help
  170. Say Y to enable FPGA Bridge driver for FPGA Management Engine.
  171. config FPGA_DFL_FME_REGION
  172. tristate "FPGA DFL FME Region Driver"
  173. depends on FPGA_DFL_FME && HAS_IOMEM
  174. help
  175. Say Y to enable FPGA Region driver for FPGA Management Engine.
  176. config FPGA_DFL_AFU
  177. tristate "FPGA DFL AFU Driver"
  178. depends on FPGA_DFL
  179. help
  180. This is the driver for FPGA Accelerated Function Unit (AFU) which
  181. implements AFU and Port management features. A User AFU connects
  182. to the FPGA infrastructure via a Port. There may be more than one
  183. Port/AFU per DFL based FPGA device.
  184. config FPGA_DFL_NIOS_INTEL_PAC_N3000
  185. tristate "FPGA DFL NIOS Driver for Intel PAC N3000"
  186. depends on FPGA_DFL
  187. select REGMAP
  188. help
  189. This is the driver for the N3000 Nios private feature on Intel
  190. PAC (Programmable Acceleration Card) N3000. It communicates
  191. with the embedded Nios processor to configure the retimers on
  192. the card. It also instantiates the SPI master (spi-altera) for
  193. the card's BMC (Board Management Controller).
  194. config FPGA_DFL_PCI
  195. tristate "FPGA DFL PCIe Device Driver"
  196. depends on PCI && FPGA_DFL
  197. help
  198. Select this option to enable PCIe driver for PCIe-based
  199. Field-Programmable Gate Array (FPGA) solutions which implement
  200. the Device Feature List (DFL). This driver provides interfaces
  201. for userspace applications to configure, enumerate, open and access
  202. FPGA accelerators on the FPGA DFL devices, enables system level
  203. management functions such as FPGA partial reconfiguration, power
  204. management and virtualization with DFL framework and DFL feature
  205. device drivers.
  206. To compile this as a module, choose M here.
  207. config FPGA_MGR_ZYNQMP_FPGA
  208. tristate "Xilinx ZynqMP FPGA"
  209. depends on ZYNQMP_FIRMWARE || (!ZYNQMP_FIRMWARE && COMPILE_TEST)
  210. help
  211. FPGA manager driver support for Xilinx ZynqMP FPGAs.
  212. This driver uses the processor configuration port(PCAP)
  213. to configure the programmable logic(PL) through PS
  214. on ZynqMP SoC.
  215. config FPGA_MGR_VERSAL_FPGA
  216. tristate "Xilinx Versal FPGA"
  217. depends on ARCH_ZYNQMP || COMPILE_TEST
  218. help
  219. Select this option to enable FPGA manager driver support for
  220. Xilinx Versal SoC. This driver uses the firmware interface to
  221. configure the programmable logic(PL).
  222. To compile this as a module, choose M here.
  223. config FPGA_M10_BMC_SEC_UPDATE
  224. tristate "Intel MAX10 BMC Secure Update driver"
  225. depends on MFD_INTEL_M10_BMC_CORE
  226. select FW_LOADER
  227. select FW_UPLOAD
  228. help
  229. Secure update support for the Intel MAX10 board management
  230. controller.
  231. This is a subdriver of the Intel MAX10 board management controller
  232. (BMC) and provides support for secure updates for the BMC image,
  233. the FPGA image, the Root Entry Hashes, etc.
  234. config FPGA_MGR_MICROCHIP_SPI
  235. tristate "Microchip Polarfire SPI FPGA manager"
  236. depends on SPI
  237. help
  238. FPGA manager driver support for Microchip Polarfire FPGAs
  239. programming over slave SPI interface with .dat formatted
  240. bitstream image.
  241. config FPGA_MGR_LATTICE_SYSCONFIG
  242. tristate
  243. config FPGA_MGR_LATTICE_SYSCONFIG_SPI
  244. tristate "Lattice sysCONFIG SPI FPGA manager"
  245. depends on SPI
  246. select FPGA_MGR_LATTICE_SYSCONFIG
  247. help
  248. FPGA manager driver support for Lattice FPGAs programming over slave
  249. SPI sysCONFIG interface.
  250. source "drivers/fpga/tests/Kconfig"
  251. endif # FPGA