Forum Discussion
Altera_Forum
Honored Contributor
15 years agoHi Dan, in the past we had the same requirement with remote firmware update. Our solution now is (similar as described from jakobjones) to use 2 images for FPGA configuration data as well as for the firmware.
The first (safe image) is stored at address 0x0 in the EPCS. The firmware follows the configuration data, we use the default boot copier for that. The second (application image) is stored at a fix address in EPCS64. We use actually 0x240000 for the FPGA configuration data and 0x440000 for the application firmware. For the application I have changed the default boot copier to load programm code from a fixed address. To boot the application image we use the alt_remote_update function. The safe firmware image reads the remote_update status register. In case of power on (status = 0) the remote_update block is configured with the EPCS page address where the application configuration is stored and the watchdog activated. Then the reconfigure input is set to '1'. If reconfigure not succeeds the safe image is loaded again and it is possible to change the application image over the remote interface. It sounds complicated but it works very robustly. An advantage is that you can easy change the firmaware or FPGA image and don't have to make a backup of the last configuration data sector. Jens