This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Execute application code from bank 1?

Hello to the Nordic community!

A rather theoretical question: Would it be possible to have a system, comprising of a SoftDevice + Application + Custom Bootloader, where the application could reside in either "Bank 0" or "Bank 1".

I am implying that if the latest, prior to FOTA, version of the application is in Bank 1, then the previous one is still in Bank 0.

The ability to revert to a previous version of the firmware, as signaled by the new application itself and actually performed by the bootloader, seems to be a nice fallback mechanism, don't you think?

Parents
  • Hi Raccon,

    our Secure Bootloader (SDK v12.x.x and newer) and our Legacy bootloader(SDK v11.0.0 and older) both perform dual bank updates, i.e. the new firmware image is placed in bank 1 and its integrity is verified by the bootloader before it overwrites the old application located in bank 0. So if the update for some reason fails it will revert back to the old application in bank 0.

    It would be possible to modify the bootloader so that it jumps to the new application after the integrity chech(crc check) and then have the new application pass execution back to the bootloader after perform some other check to signal the swap. However, I think this is just making our existing solution more complicated. If you want to implement some additional checks before the swap is performed, then I suggest that you implement them in our bootloader and not in the new application.

    Best regards

    Bjørn

Reply Children
No Data
Related