Reading and calculating image checksum directly from FPGA
Hi,
We would like to verify the programmed image of a FPGA (MAX10 in this case) by confirming its checksum in-system with e.g our Baseboard Management Controller (i.e. not with an external device or the Quartus programmer). However, we cannot find documentation about how to do this in the Intel archives.
What we have found is that we can use the Intel IP to bridge for instance I2C <-> Avalon-MM <-> CFM (i.e. access the configuration memory), but we could not find documents for the method used to calculate the checksum of the configuration loaded into the CFM (e.g. how Quartus determines the checksum of a POF)
We may be able to read out the CFM contents and just make up our own checksum/verify the image some other way, but would prefer using Intel functionality and the Quartus checksum for simplicity.
Does anyone know how to do this? Or have any suggestions for alternative ways of confirming a programmed image has not been modified?
Thank you for the support
The checksum from programmer or map file uses only the data which will be programmed to the configuration device.
For pof and jic file, there is some information like quartus version and device information in the head and CRC data in the end, which is excluded in checksum.
https://www.intel.com/content/www/us/en/support/programmable/articles/000078447.html
I have not deeply looked into the pof file, but for the jic file, the checksum (shows in programmer) is calculated from the the data after several dot notation, end at before several dot notation. See the attached capture. I think the pof file is the same algorithm as the jic file.
If you want to get the checksum of the entire data of the pof, please use the tcl command.
Thanks,
Ethan