Thomas Gleixner | ec8f24b | 2019-05-19 13:07:45 +0100 | [diff] [blame] | 1 | # SPDX-License-Identifier: GPL-2.0-only |
Alan Tull | 6a8c3be | 2015-10-07 16:36:28 +0100 | [diff] [blame] | 2 | # |
| 3 | # FPGA framework configuration |
| 4 | # |
| 5 | |
Vincent Legoll | 50fa028 | 2017-06-14 10:36:26 -0500 | [diff] [blame] | 6 | menuconfig FPGA |
Alan Tull | 6a8c3be | 2015-10-07 16:36:28 +0100 | [diff] [blame] | 7 | tristate "FPGA Configuration Framework" |
| 8 | help |
| 9 | Say Y here if you want support for configuring FPGAs from the |
Tom Rix | df82d2e | 2021-06-08 14:23:44 -0700 | [diff] [blame] | 10 | kernel. The FPGA framework adds an FPGA manager class and FPGA |
Alan Tull | 6a8c3be | 2015-10-07 16:36:28 +0100 | [diff] [blame] | 11 | manager drivers. |
| 12 | |
Alan Tull | fab6266 | 2015-10-07 16:36:29 +0100 | [diff] [blame] | 13 | if FPGA |
| 14 | |
| 15 | config FPGA_MGR_SOCFPGA |
| 16 | tristate "Altera SOCFPGA FPGA Manager" |
Krzysztof Kozlowski | 3a1fef7 | 2021-03-11 16:27:35 +0100 | [diff] [blame] | 17 | depends on ARCH_INTEL_SOCFPGA || COMPILE_TEST |
Alan Tull | fab6266 | 2015-10-07 16:36:29 +0100 | [diff] [blame] | 18 | help |
| 19 | FPGA manager driver support for Altera SOCFPGA. |
| 20 | |
Alan Tull | acbb910a | 2016-11-01 14:14:32 -0500 | [diff] [blame] | 21 | config FPGA_MGR_SOCFPGA_A10 |
| 22 | tristate "Altera SoCFPGA Arria10" |
Krzysztof Kozlowski | 3a1fef7 | 2021-03-11 16:27:35 +0100 | [diff] [blame] | 23 | depends on ARCH_INTEL_SOCFPGA || COMPILE_TEST |
Jason Gunthorpe | a0e1b61 | 2016-11-21 22:26:42 +0000 | [diff] [blame] | 24 | select REGMAP_MMIO |
Alan Tull | acbb910a | 2016-11-01 14:14:32 -0500 | [diff] [blame] | 25 | help |
| 26 | FPGA manager driver support for Altera Arria10 SoCFPGA. |
| 27 | |
Alan Tull | 84e93f1 | 2017-11-15 14:20:27 -0600 | [diff] [blame] | 28 | config ALTERA_PR_IP_CORE |
Enrico Weigelt | 786285f | 2019-06-18 21:24:39 -0700 | [diff] [blame] | 29 | tristate "Altera Partial Reconfiguration IP Core" |
| 30 | help |
| 31 | Core driver support for Altera Partial Reconfiguration IP component |
Alan Tull | 84e93f1 | 2017-11-15 14:20:27 -0600 | [diff] [blame] | 32 | |
| 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 |
Florian Fainelli | 4348f7e | 2017-02-27 16:14:22 -0600 | [diff] [blame] | 36 | help |
Alan Tull | 84e93f1 | 2017-11-15 14:20:27 -0600 | [diff] [blame] | 37 | Platform driver support for Altera Partial Reconfiguration IP |
| 38 | component |
| 39 | |
| 40 | config FPGA_MGR_ALTERA_PS_SPI |
| 41 | tristate "Altera FPGA Passive Serial over SPI" |
| 42 | depends on SPI |
YueHaibing | 3d13970 | 2019-07-08 15:13:56 +0800 | [diff] [blame] | 43 | select BITREVERSE |
Alan Tull | 84e93f1 | 2017-11-15 14:20:27 -0600 | [diff] [blame] | 44 | help |
| 45 | FPGA manager driver support for Altera Arria/Cyclone/Stratix |
| 46 | using the passive serial interface over SPI. |
| 47 | |
| 48 | config FPGA_MGR_ALTERA_CVP |
Thor Thayer | e589151 | 2019-08-19 15:48:08 -0500 | [diff] [blame] | 49 | tristate "Altera CvP FPGA Manager" |
Alan Tull | 84e93f1 | 2017-11-15 14:20:27 -0600 | [diff] [blame] | 50 | depends on PCI |
| 51 | help |
Thor Thayer | e589151 | 2019-08-19 15:48:08 -0500 | [diff] [blame] | 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. |
Alan Tull | 84e93f1 | 2017-11-15 14:20:27 -0600 | [diff] [blame] | 54 | |
| 55 | config FPGA_MGR_ZYNQ_FPGA |
| 56 | tristate "Xilinx Zynq FPGA" |
| 57 | depends on ARCH_ZYNQ || COMPILE_TEST |
Alan Tull | 84e93f1 | 2017-11-15 14:20:27 -0600 | [diff] [blame] | 58 | help |
| 59 | FPGA manager driver support for Xilinx Zynq FPGAs. |
Florian Fainelli | 4348f7e | 2017-02-27 16:14:22 -0600 | [diff] [blame] | 60 | |
Alan Tull | e7eef1d | 2018-11-13 12:14:04 -0600 | [diff] [blame] | 61 | config FPGA_MGR_STRATIX10_SOC |
| 62 | tristate "Intel Stratix10 SoC FPGA Manager" |
Krzysztof Kozlowski | 4a9a1a5 | 2021-03-11 16:25:38 +0100 | [diff] [blame] | 63 | depends on (ARCH_INTEL_SOCFPGA && INTEL_STRATIX10_SERVICE) |
Alan Tull | e7eef1d | 2018-11-13 12:14:04 -0600 | [diff] [blame] | 64 | help |
| 65 | FPGA manager driver support for the Intel Stratix10 SoC. |
| 66 | |
Anatolij Gustschin | 061c97d | 2017-03-23 19:34:26 -0500 | [diff] [blame] | 67 | config 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 Tull | 84e93f1 | 2017-11-15 14:20:27 -0600 | [diff] [blame] | 74 | config FPGA_MGR_ICE40_SPI |
| 75 | tristate "Lattice iCE40 SPI" |
| 76 | depends on OF && SPI |
Moritz Fischer | 3778470 | 2015-10-16 15:42:30 -0700 | [diff] [blame] | 77 | help |
Alan Tull | 84e93f1 | 2017-11-15 14:20:27 -0600 | [diff] [blame] | 78 | FPGA manager driver support for Lattice iCE40 FPGAs over SPI. |
| 79 | |
Paolo Pisati | 88fb3a0 | 2018-04-16 20:43:36 -0700 | [diff] [blame] | 80 | config 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 Tull | 84e93f1 | 2017-11-15 14:20:27 -0600 | [diff] [blame] | 87 | config 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 Fischer | 3778470 | 2015-10-16 15:42:30 -0700 | [diff] [blame] | 93 | |
Alan Tull | 21aeda9 | 2016-11-01 14:14:28 -0500 | [diff] [blame] | 94 | config FPGA_BRIDGE |
| 95 | tristate "FPGA Bridge Framework" |
Alan Tull | 21aeda9 | 2016-11-01 14:14:28 -0500 | [diff] [blame] | 96 | help |
| 97 | Say Y here if you want to support bridges connected between host |
| 98 | processors and FPGAs or between FPGAs. |
| 99 | |
Alan Tull | e5f8efa | 2016-11-01 14:14:30 -0500 | [diff] [blame] | 100 | config SOCFPGA_FPGA_BRIDGE |
| 101 | tristate "Altera SoCFPGA FPGA Bridges" |
Krzysztof Kozlowski | 3a1fef7 | 2021-03-11 16:27:35 +0100 | [diff] [blame] | 102 | depends on ARCH_INTEL_SOCFPGA && FPGA_BRIDGE |
Alan Tull | e5f8efa | 2016-11-01 14:14:30 -0500 | [diff] [blame] | 103 | help |
| 104 | Say Y to enable drivers for FPGA bridges for Altera SOCFPGA |
| 105 | devices. |
| 106 | |
Alan Tull | ca24a64 | 2016-11-01 14:14:31 -0500 | [diff] [blame] | 107 | config ALTERA_FREEZE_BRIDGE |
| 108 | tristate "Altera FPGA Freeze Bridge" |
Alan Tull | 38cd7ad | 2019-01-24 14:45:53 -0600 | [diff] [blame] | 109 | depends on FPGA_BRIDGE && HAS_IOMEM |
Alan Tull | ca24a64 | 2016-11-01 14:14:31 -0500 | [diff] [blame] | 110 | 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 Fischer | 7e961c1 | 2017-03-24 10:33:21 -0500 | [diff] [blame] | 116 | config XILINX_PR_DECOUPLER |
| 117 | tristate "Xilinx LogiCORE PR Decoupler" |
| 118 | depends on FPGA_BRIDGE |
| 119 | depends on HAS_IOMEM |
| 120 | help |
Nava kishore Manne | 30a2ac9 | 2021-02-11 10:41:48 +0530 | [diff] [blame] | 121 | Say Y to enable drivers for Xilinx LogiCORE PR Decoupler |
Colin Ian King | 5f1895e | 2021-07-28 22:51:50 +0100 | [diff] [blame] | 122 | or Xilinx Dynamic Function eXchange AIX Shutdown Manager. |
Moritz Fischer | 7e961c1 | 2017-03-24 10:33:21 -0500 | [diff] [blame] | 123 | 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 Manne | 30a2ac9 | 2021-02-11 10:41:48 +0530 | [diff] [blame] | 126 | 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 Fischer | 7e961c1 | 2017-03-24 10:33:21 -0500 | [diff] [blame] | 132 | |
Alan Tull | 84e93f1 | 2017-11-15 14:20:27 -0600 | [diff] [blame] | 133 | config FPGA_REGION |
| 134 | tristate "FPGA Region" |
| 135 | depends on FPGA_BRIDGE |
| 136 | help |
Tom Rix | df82d2e | 2021-06-08 14:23:44 -0700 | [diff] [blame] | 137 | FPGA Region common code. An FPGA Region controls an FPGA Manager |
Alan Tull | 84e93f1 | 2017-11-15 14:20:27 -0600 | [diff] [blame] | 138 | and the FPGA Bridges associated with either a reconfigurable |
| 139 | region of an FPGA or a whole FPGA. |
| 140 | |
| 141 | config 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 Hao | 543be3d | 2018-06-30 08:53:13 +0800 | [diff] [blame] | 148 | config FPGA_DFL |
| 149 | tristate "FPGA Device Feature List (DFL) support" |
| 150 | select FPGA_BRIDGE |
| 151 | select FPGA_REGION |
David Gow | 1a16af3 | 2020-11-21 16:15:49 -0800 | [diff] [blame] | 152 | depends on HAS_IOMEM |
Wu Hao | 543be3d | 2018-06-30 08:53:13 +0800 | [diff] [blame] | 153 | 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 Luwei | 322ddeb | 2018-06-30 08:53:21 +0800 | [diff] [blame] | 165 | config FPGA_DFL_FME |
| 166 | tristate "FPGA DFL FME Driver" |
Wu Hao | 724142f | 2020-04-27 09:06:23 +0800 | [diff] [blame] | 167 | depends on FPGA_DFL && HWMON && PERF_EVENTS |
Kang Luwei | 322ddeb | 2018-06-30 08:53:21 +0800 | [diff] [blame] | 168 | 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 Hao | af275ec | 2018-06-30 08:53:25 +0800 | [diff] [blame] | 175 | config 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 Hao | de892df | 2018-06-30 08:53:27 +0800 | [diff] [blame] | 181 | config 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 Hao | bb61b9b | 2018-06-30 08:53:28 +0800 | [diff] [blame] | 187 | config 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 Hao | 1a1527c | 2018-06-30 08:53:30 +0800 | [diff] [blame] | 193 | config 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 Yilun | 56172ab | 2021-01-06 20:37:13 -0800 | [diff] [blame] | 202 | config 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 Yi | 72ddd9f | 2018-06-30 08:53:19 +0800 | [diff] [blame] | 213 | config 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 Manne | c09f747 | 2019-04-15 12:47:48 +0530 | [diff] [blame] | 228 | config FPGA_MGR_ZYNQMP_FPGA |
| 229 | tristate "Xilinx ZynqMP FPGA" |
Arnd Bergmann | 6a47d6e | 2020-05-05 16:00:11 +0200 | [diff] [blame] | 230 | depends on ZYNQMP_FIRMWARE || (!ZYNQMP_FIRMWARE && COMPILE_TEST) |
Nava kishore Manne | c09f747 | 2019-04-15 12:47:48 +0530 | [diff] [blame] | 231 | 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 Manne | 01c54e6 | 2021-06-26 21:22:48 +0530 | [diff] [blame] | 237 | config 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 Tull | fab6266 | 2015-10-07 16:36:29 +0100 | [diff] [blame] | 246 | endif # FPGA |