Support for non-simultaneous multi-image update with external flash (nRF5340)

Hello,

I've seen multiple posts related to this question, but they're not very recent so I wanted to check if there's an updated answer.

Are non-simultaneous multi-image updates supported (or even possible) with secondary images being stored in external SPI flash?

To preface, I'm looking to implement non-simultaneous updates for the application core and network core of the nRF5340 with the swap-using-move algorithm (not overwrite only), having secondary images for both cores stored in external flash. I'm not using Device Manager, mcumgr, or SMP. I'm performing an FOTA transfer over WiFi and hoping to use MCUboot to manage updates once image download is complete.

I've found 3 posts that are specifically relevant to this question:

  • This post, where a custom image hook was suggested, but that required modifying the SDK (which I'm trying to avoid) and the original poster never fully confirmed whether the suggested solution worked. Also that post was from 3 years ago and not using sysbuild, so I'm not sure how relevant it is to the current build system.

  • This post, that has a response from 9 months ago stating: 

"Unfortunately, one of the developers has confirmed that it's currently not possible to update the network core from external flash unless simultaneous updates are enabled."

However the creator of that post ending up finding a workaround, but they used a custom SMP application, commenting: 

"So it seems it's possible to update only one of the cores or both at the same time. I'm not sure if this behaviour is documented anywhere."

They provided no further details.

  • Finally, this post, but it is using overwrite-only and relies on mcumgr; also I can't see any of the replies to it.

Some additional information I've gathered:

In the 2.8.0 release notes, the addition of SB_CONFIG_MCUBOOT_NRF53_MULTI_IMAGE_UPDATE is mentioned for the purpose of supporting "updating the network core on the nRF5340 SoC from external flash". But in the sysbuild CMakeLists.txt with the most recent NCS version, selecting SB_CONFIG_MCUBOOT_NRF53_MULTI_IMAGE_UPDATE automatically sets CONFIG_NRF53_MULTI_IMAGE_UPDATE for MCUboot, which is defined to support "updating app core and net core in a single operation" - which I assume implies a simultaneous update.

I haven't seen any recent mention or implementation of supporting non-simultaneous updates from external flash, but I'm not sure if perhaps I missed it or it hasn't been documented yet.

Thank you!

Related