blob: 991b3f361ec933eea446ace7ee4f9bdc482d5595 [file] [log] [blame]
Thomas Gleixnerec8f24b2019-05-19 13:07:45 +01001# SPDX-License-Identifier: GPL-2.0-only
Alan Tull6a8c3be2015-10-07 16:36:28 +01002#
3# FPGA framework configuration
4#
5
Vincent Legoll50fa0282017-06-14 10:36:26 -05006menuconfig FPGA
Alan Tull6a8c3be2015-10-07 16:36:28 +01007 tristate "FPGA Configuration Framework"
8 help
9 Say Y here if you want support for configuring FPGAs from the
Tom Rixdf82d2e2021-06-08 14:23:44 -070010 kernel. The FPGA framework adds an FPGA manager class and FPGA
Alan Tull6a8c3be2015-10-07 16:36:28 +010011 manager drivers.
12
Alan Tullfab62662015-10-07 16:36:29 +010013if FPGA
14
15config FPGA_MGR_SOCFPGA
16 tristate "Altera SOCFPGA FPGA Manager"
Krzysztof Kozlowski3a1fef72021-03-11 16:27:35 +010017 depends on ARCH_INTEL_SOCFPGA || COMPILE_TEST
Alan Tullfab62662015-10-07 16:36:29 +010018 help
19 FPGA manager driver support for Altera SOCFPGA.
20
Alan Tullacbb910a2016-11-01 14:14:32 -050021config FPGA_MGR_SOCFPGA_A10
22 tristate "Altera SoCFPGA Arria10"
Krzysztof Kozlowski3a1fef72021-03-11 16:27:35 +010023 depends on ARCH_INTEL_SOCFPGA || COMPILE_TEST
Jason Gunthorpea0e1b612016-11-21 22:26:42 +000024 select REGMAP_MMIO
Alan Tullacbb910a2016-11-01 14:14:32 -050025 help
26 FPGA manager driver support for Altera Arria10 SoCFPGA.
27
Alan Tull84e93f12017-11-15 14:20:27 -060028config ALTERA_PR_IP_CORE
Enrico Weigelt786285f2019-06-18 21:24:39 -070029 tristate "Altera Partial Reconfiguration IP Core"
30 help
31 Core driver support for Altera Partial Reconfiguration IP component
Alan Tull84e93f12017-11-15 14:20:27 -060032
33config ALTERA_PR_IP_CORE_PLAT
34 tristate "Platform support of Altera Partial Reconfiguration IP Core"
35 depends on ALTERA_PR_IP_CORE && OF && HAS_IOMEM
Florian Fainelli4348f7e2017-02-27 16:14:22 -060036 help
Alan Tull84e93f12017-11-15 14:20:27 -060037 Platform driver support for Altera Partial Reconfiguration IP
38 component
39
40config FPGA_MGR_ALTERA_PS_SPI
41 tristate "Altera FPGA Passive Serial over SPI"
42 depends on SPI
YueHaibing3d139702019-07-08 15:13:56 +080043 select BITREVERSE
Alan Tull84e93f12017-11-15 14:20:27 -060044 help
45 FPGA manager driver support for Altera Arria/Cyclone/Stratix
46 using the passive serial interface over SPI.
47
48config FPGA_MGR_ALTERA_CVP
Thor Thayere5891512019-08-19 15:48:08 -050049 tristate "Altera CvP FPGA Manager"
Alan Tull84e93f12017-11-15 14:20:27 -060050 depends on PCI
51 help
Thor Thayere5891512019-08-19 15:48:08 -050052 FPGA manager driver support for Arria-V, Cyclone-V, Stratix-V,
53 Arria 10 and Stratix10 Altera FPGAs using the CvP interface over PCIe.
Alan Tull84e93f12017-11-15 14:20:27 -060054
55config FPGA_MGR_ZYNQ_FPGA
56 tristate "Xilinx Zynq FPGA"
57 depends on ARCH_ZYNQ || COMPILE_TEST
Alan Tull84e93f12017-11-15 14:20:27 -060058 help
59 FPGA manager driver support for Xilinx Zynq FPGAs.
Florian Fainelli4348f7e2017-02-27 16:14:22 -060060
Alan Tulle7eef1d2018-11-13 12:14:04 -060061config FPGA_MGR_STRATIX10_SOC
62 tristate "Intel Stratix10 SoC FPGA Manager"
Krzysztof Kozlowski4a9a1a52021-03-11 16:25:38 +010063 depends on (ARCH_INTEL_SOCFPGA && INTEL_STRATIX10_SERVICE)
Alan Tulle7eef1d2018-11-13 12:14:04 -060064 help
65 FPGA manager driver support for the Intel Stratix10 SoC.
66
Anatolij Gustschin061c97d2017-03-23 19:34:26 -050067config FPGA_MGR_XILINX_SPI
68 tristate "Xilinx Configuration over Slave Serial (SPI)"
69 depends on SPI
70 help
71 FPGA manager driver support for Xilinx FPGA configuration
72 over slave serial interface.
73
Alan Tull84e93f12017-11-15 14:20:27 -060074config FPGA_MGR_ICE40_SPI
75 tristate "Lattice iCE40 SPI"
76 depends on OF && SPI
Moritz Fischer37784702015-10-16 15:42:30 -070077 help
Alan Tull84e93f12017-11-15 14:20:27 -060078 FPGA manager driver support for Lattice iCE40 FPGAs over SPI.
79
Paolo Pisati88fb3a02018-04-16 20:43:36 -070080config FPGA_MGR_MACHXO2_SPI
81 tristate "Lattice MachXO2 SPI"
82 depends on SPI
83 help
84 FPGA manager driver support for Lattice MachXO2 configuration
85 over slave SPI interface.
86
Alan Tull84e93f12017-11-15 14:20:27 -060087config FPGA_MGR_TS73XX
88 tristate "Technologic Systems TS-73xx SBC FPGA Manager"
89 depends on ARCH_EP93XX && MACH_TS72XX
90 help
91 FPGA manager driver support for the Altera Cyclone II FPGA
92 present on the TS-73xx SBC boards.
Moritz Fischer37784702015-10-16 15:42:30 -070093
Alan Tull21aeda92016-11-01 14:14:28 -050094config FPGA_BRIDGE
95 tristate "FPGA Bridge Framework"
Alan Tull21aeda92016-11-01 14:14:28 -050096 help
97 Say Y here if you want to support bridges connected between host
98 processors and FPGAs or between FPGAs.
99
Alan Tulle5f8efa2016-11-01 14:14:30 -0500100config SOCFPGA_FPGA_BRIDGE
101 tristate "Altera SoCFPGA FPGA Bridges"
Krzysztof Kozlowski3a1fef72021-03-11 16:27:35 +0100102 depends on ARCH_INTEL_SOCFPGA && FPGA_BRIDGE
Alan Tulle5f8efa2016-11-01 14:14:30 -0500103 help
104 Say Y to enable drivers for FPGA bridges for Altera SOCFPGA
105 devices.
106
Alan Tullca24a642016-11-01 14:14:31 -0500107config ALTERA_FREEZE_BRIDGE
108 tristate "Altera FPGA Freeze Bridge"
Alan Tull38cd7ad2019-01-24 14:45:53 -0600109 depends on FPGA_BRIDGE && HAS_IOMEM
Alan Tullca24a642016-11-01 14:14:31 -0500110 help
111 Say Y to enable drivers for Altera FPGA Freeze bridges. A
112 freeze bridge is a bridge that exists in the FPGA fabric to
113 isolate one region of the FPGA from the busses while that
114 region is being reprogrammed.
115
Moritz Fischer7e961c12017-03-24 10:33:21 -0500116config XILINX_PR_DECOUPLER
117 tristate "Xilinx LogiCORE PR Decoupler"
118 depends on FPGA_BRIDGE
119 depends on HAS_IOMEM
120 help
Nava kishore Manne30a2ac92021-02-11 10:41:48 +0530121 Say Y to enable drivers for Xilinx LogiCORE PR Decoupler
Colin Ian King5f1895e2021-07-28 22:51:50 +0100122 or Xilinx Dynamic Function eXchange AIX Shutdown Manager.
Moritz Fischer7e961c12017-03-24 10:33:21 -0500123 The PR Decoupler exists in the FPGA fabric to isolate one
124 region of the FPGA from the busses while that region is
125 being reprogrammed during partial reconfig.
Nava kishore Manne30a2ac92021-02-11 10:41:48 +0530126 The Dynamic Function eXchange AXI shutdown manager prevents
127 AXI traffic from passing through the bridge. The controller
128 safely handles AXI4MM and AXI4-Lite interfaces on a
129 Reconfigurable Partition when it is undergoing dynamic
130 reconfiguration, preventing the system deadlock that can
131 occur if AXI transactions are interrupted by DFX.
Moritz Fischer7e961c12017-03-24 10:33:21 -0500132
Alan Tull84e93f12017-11-15 14:20:27 -0600133config FPGA_REGION
134 tristate "FPGA Region"
135 depends on FPGA_BRIDGE
136 help
Tom Rixdf82d2e2021-06-08 14:23:44 -0700137 FPGA Region common code. An FPGA Region controls an FPGA Manager
Alan Tull84e93f12017-11-15 14:20:27 -0600138 and the FPGA Bridges associated with either a reconfigurable
139 region of an FPGA or a whole FPGA.
140
141config OF_FPGA_REGION
142 tristate "FPGA Region Device Tree Overlay Support"
143 depends on OF && FPGA_REGION
144 help
145 Support for loading FPGA images by applying a Device Tree
146 overlay.
147
Wu Hao543be3d2018-06-30 08:53:13 +0800148config FPGA_DFL
149 tristate "FPGA Device Feature List (DFL) support"
150 select FPGA_BRIDGE
151 select FPGA_REGION
David Gow1a16af32020-11-21 16:15:49 -0800152 depends on HAS_IOMEM
Wu Hao543be3d2018-06-30 08:53:13 +0800153 help
154 Device Feature List (DFL) defines a feature list structure that
155 creates a linked list of feature headers within the MMIO space
156 to provide an extensible way of adding features for FPGA.
157 Driver can walk through the feature headers to enumerate feature
158 devices (e.g. FPGA Management Engine, Port and Accelerator
159 Function Unit) and their private features for target FPGA devices.
160
161 Select this option to enable common support for Field-Programmable
162 Gate Array (FPGA) solutions which implement Device Feature List.
163 It provides enumeration APIs and feature device infrastructure.
164
Kang Luwei322ddeb2018-06-30 08:53:21 +0800165config FPGA_DFL_FME
166 tristate "FPGA DFL FME Driver"
Wu Hao724142f2020-04-27 09:06:23 +0800167 depends on FPGA_DFL && HWMON && PERF_EVENTS
Kang Luwei322ddeb2018-06-30 08:53:21 +0800168 help
169 The FPGA Management Engine (FME) is a feature device implemented
170 under Device Feature List (DFL) framework. Select this option to
171 enable the platform device driver for FME which implements all
172 FPGA platform level management features. There shall be one FME
173 per DFL based FPGA device.
174
Wu Haoaf275ec2018-06-30 08:53:25 +0800175config FPGA_DFL_FME_MGR
176 tristate "FPGA DFL FME Manager Driver"
177 depends on FPGA_DFL_FME && HAS_IOMEM
178 help
179 Say Y to enable FPGA Manager driver for FPGA Management Engine.
180
Wu Haode892df2018-06-30 08:53:27 +0800181config FPGA_DFL_FME_BRIDGE
182 tristate "FPGA DFL FME Bridge Driver"
183 depends on FPGA_DFL_FME && HAS_IOMEM
184 help
185 Say Y to enable FPGA Bridge driver for FPGA Management Engine.
186
Wu Haobb61b9b2018-06-30 08:53:28 +0800187config FPGA_DFL_FME_REGION
188 tristate "FPGA DFL FME Region Driver"
189 depends on FPGA_DFL_FME && HAS_IOMEM
190 help
191 Say Y to enable FPGA Region driver for FPGA Management Engine.
192
Wu Hao1a1527c2018-06-30 08:53:30 +0800193config FPGA_DFL_AFU
194 tristate "FPGA DFL AFU Driver"
195 depends on FPGA_DFL
196 help
197 This is the driver for FPGA Accelerated Function Unit (AFU) which
198 implements AFU and Port management features. A User AFU connects
199 to the FPGA infrastructure via a Port. There may be more than one
200 Port/AFU per DFL based FPGA device.
201
Xu Yilun56172ab2021-01-06 20:37:13 -0800202config FPGA_DFL_NIOS_INTEL_PAC_N3000
203 tristate "FPGA DFL NIOS Driver for Intel PAC N3000"
204 depends on FPGA_DFL
205 select REGMAP
206 help
207 This is the driver for the N3000 Nios private feature on Intel
208 PAC (Programmable Acceleration Card) N3000. It communicates
209 with the embedded Nios processor to configure the retimers on
210 the card. It also instantiates the SPI master (spi-altera) for
211 the card's BMC (Board Management Controller).
212
Zhang Yi72ddd9f2018-06-30 08:53:19 +0800213config FPGA_DFL_PCI
214 tristate "FPGA DFL PCIe Device Driver"
215 depends on PCI && FPGA_DFL
216 help
217 Select this option to enable PCIe driver for PCIe-based
218 Field-Programmable Gate Array (FPGA) solutions which implement
219 the Device Feature List (DFL). This driver provides interfaces
220 for userspace applications to configure, enumerate, open and access
221 FPGA accelerators on the FPGA DFL devices, enables system level
222 management functions such as FPGA partial reconfiguration, power
223 management and virtualization with DFL framework and DFL feature
224 device drivers.
225
226 To compile this as a module, choose M here.
227
Nava kishore Mannec09f7472019-04-15 12:47:48 +0530228config FPGA_MGR_ZYNQMP_FPGA
229 tristate "Xilinx ZynqMP FPGA"
Arnd Bergmann6a47d6e2020-05-05 16:00:11 +0200230 depends on ZYNQMP_FIRMWARE || (!ZYNQMP_FIRMWARE && COMPILE_TEST)
Nava kishore Mannec09f7472019-04-15 12:47:48 +0530231 help
232 FPGA manager driver support for Xilinx ZynqMP FPGAs.
233 This driver uses the processor configuration port(PCAP)
234 to configure the programmable logic(PL) through PS
235 on ZynqMP SoC.
236
Nava kishore Manne01c54e62021-06-26 21:22:48 +0530237config FPGA_MGR_VERSAL_FPGA
238 tristate "Xilinx Versal FPGA"
239 depends on ARCH_ZYNQMP || COMPILE_TEST
240 help
241 Select this option to enable FPGA manager driver support for
242 Xilinx Versal SoC. This driver uses the firmware interface to
243 configure the programmable logic(PL).
244
245 To compile this as a module, choose M here.
Alan Tullfab62662015-10-07 16:36:29 +0100246endif # FPGA