This seems related to the checksum of a partition header. Indeed, I've looked at the memory contents of the related header and it is partially filled with zeros, which is consistent with the checksum failure.
This seems a nasty thing to debug.
I've only found a reference to this problem here . The solution is just to remove the optimizations, which actually works. They also claim that this seems fixed in 2018.3.
I've looked at the history and release notes of embeddedsw repo in case a fix was done between 2018.2 and 2018.3, but I haven't found anything directly addressing that problem. Maybe its resolution was just a side effect.
The fact is that I'd like to find the root cause or, at least, being able to run fsbl with optimizations (though I don't like the idea of mixing versions, like embeddedsw 2018.3 with SDK 2018.2). The ideal fix would be to find the root cause and apply the required patch. In fact, I'm really curious about it.
Interestingly enough, I see in the post that they apply a patch using i2c. I do that, too. The same as the code for zcu102. I remember having the same problem with zcu102. Maybe someone has experienced the same with any of the zcu boards?
I know this is a broad question, so any hint or experience regarding it will be useful.