[SOLVED] JLinkExe loadfile contents match?

I’m using JLinkExe with "loadfile " to upload my programs to the Hifive1-revB. Basics work fine but I noticed an inconsistency.

I had my own program loaded and working fine. If I change that and re-upload it works ok. But if I go to the SDK and try to upload any of their programs (I tried the sifive-welcome) I get:

J-Link: Flash download: Bank 0 @ 0x20000000: Skipped. Contents already match

which does not make sense given this is a completely different program (it’s not even same compiler since I use Rust).

I checked the path to hex file and it points to the correct ones each time. Is this some bug? Is there a way to force re-upload?

Caused by Rust code going directly to 0x20000000 while C/metal uses 0x20000000 for “bootloader” that points to 0x20010000 meaning once the bootloader gets overridden any C hex code will not try to override it back causing the previous 0x20000000 override code to run.