Hi,
I am trying to use mcuboot to load a version that is stored in my external flash, and I cannot get it to boot. My project is being built using sysbuild and my target is an nrf9161 with an external flash connected through SPI. Tests have been made where the flash could be read from the main application, so physical connections between the memory and the processor should not be an issue for this problem. The SDK version I am using is still the 2.9.1.
The process I am following is that I am building a version which I code using the VERSION file with a version higher than the program I plan to run on the processor. I generate the zephyr.signed.bin file like that and I write it on the flash.
Then, I build another version with a lower version number coded in the VERSION file, and I flash the merged.hex on the processor.
Each version has a print at the beginning where I check if the version that is running is the flashed one or the one that I wrote on the flash, and all the time I am seeing the one that I actively flash on the processor directly. The external flash does have the version because I could read the flash with my J-Link and I could confirm that the version was stored.
I have used the following configuration out of the devacademy examples.
sysbuild.conf:
sysbuild/mcuboot/prj.conf:
I also added to the sysbuild/mcuboot/app.overlay the external flash:
I also tried to use it without the &spi_main definition here and just adding the flash to the chosen and the behavior was the same.
When I generate both the merged.hex as the zephyr.signed.bin I also use this config in the main application to sign the firmwares:
I am also trying to make debug prints on the mcuboot files to try to find out if there is any problem while trying to authenticate, but I have not been able to make any newer logging prints on my console.
There is probably something on the overall configuration that I am missing or any step that I unconsciously missed, so any advice can be useful.
Thank you very much,
Daniel