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