<crazy_imp>
trabucayre: finally had time to check what was going on - the bitstream file contains a comment section (starting with 0xFF <lots of text> 0xFF). after flashing with the lattice diamond programmer tool, the dump made with openFPGALoader shows that all the comment text was wiped and replaced with 0xff https://imgur.com/imgur-2024-10-18-09-28-02-oJRPcyx . flashing the same bitstream with
<crazy_imp>
openFPGALoader, it strips the whole comment section (but keeps the initial 0xFF) - https://imgur.com/imgur-2024-10-18-09-27-49-r2JWgvT (and it's padded at the end with 0xFF, guess that's the default value of the flash after erasing it)
<crazy_imp>
so the content is the same, but not the hash of the dumped file :)
<crazy_imp>
trabucayre: one more difference between the programmer tool from diamond and openfpgaloader - the latter wipes the SRAM of the ecp5 (only checking with that one right now), no matter if --skip-reset is passed or not (if passed, it wipes it and the fpga doesn't refresh/reload the bitstream from the flash afterwards) - while the programmer tool from diamond simply manipulates the spi flash without
<crazy_imp>
affecting the current state of the fpga (and you have to force it afterwards to refresh the bitstream)
<crazy_imp>
openfpgaloader also wipes the SRAM while dumping the bitstream