Notes on preparing development boards simoninns/DomesdayDuplicator
Before we can use this, we need to flash a couple of development boards.
For the DE0-Nano, I could use a distribution of Intel’s Quartus Prime Lite that in the Arch AUR as aur/quartus-free. There are some USB udev rules to add for the board. It’s a bit complicated, because you need to flash the application software to an on-board chip (EPCS64) that will pass the application to the FPGA on boot (otherwise, the application does not persist over power cycles).
For the Cypress FX3, it’s a bit more complicated. The SDK that the vendor ships uses Qt4 but some user has modified it to work with Qt5 (https://github.com/Ho-Ro/cyusb_linux). Arch AUR provides aur/cyusb-git which is a lightly patched version that worked for me on Arch Linux, but did not pick up the shared libraries (so at the moment, I’m using LD_LIBRARY_PATH on the command line). The .img file with the firmware on it is in one of the older Releases on GitHub, so you need to hunt for that that there; it seems like a right pain to (cross-)compile this as there is a dependency on Eclipse. The other thing that is not mentioned in the DomesdayDuplicator documentation for flashing the FX3 is that you may need to first flash a flasher application to the board’s RAM, before you can flash the actual FX3 application to the persistent EEPROM (over I2C). The flasher is distributed with the FX3 SDK as cyfxflashprog.img and can also be flashed using the cyusb GUI.