Regarding Simultaneous DFU for app core, net core and wifi patch

Hello,

I am working on a custom board with my own custom project. I want to perform DFU for all the images I mentioned. 
The mechanism for the OTA update will be as follows:
1. The OTA binary will be downloaded over the WIFI and stored to the SDCard
2. The OTA binary(from the SDCard) will be written to the respective memory in the flash and verified through my application core(if possible) or any other mechanism which is possible in the device runtime
3. The image will be verified and confirmed to be booted on the next reboot

I need help for the 2nd and 3rd step in the context of APIs and configuration options(already referred to Dev academy and nordic documentation but still in case I miss any).

Important details:
1. The nrf7002ek(for the wifi patch) is on the SPI interface.
2. The toolchain used is ncs v3.0.2(sysbuild and partition manager enabled)

Thanks in advance!  

Parents Reply
  • Ah, like that. Hmm, no not from the SD card itself, but you can have your ota bin/zip containing all 3 images to the SD card and then move the contents of the secondary for each respective partition you should be good to go to do a simultaneous update upon next reboot. 

    Lets say you're using a nRF5340 as the host MCU together with your 7002EK. Then you will have 3 partitions for appcore, netcore and wifi fw patch, and 3 partitions for their secondary slots to store the candidate OTA image where the wifi fw patch may reside in external flash before being loaded into flash. For the update of these 3 images, you can do it simultaneously, and we recommend simultaneous DFU for the nrf5340 anyways. There may be some additional tips w.r.t downloading the image over wifi here https://academy.nordicsemi.com/courses/nrf-connect-sdk-intermediate/lessons/lesson-9-bootloaders-and-dfu-fota/topic/exercise-7-fota-over-wi-fi/ (if you're using AWS then this may be an even better fit than the cellular lwm2m dfu of another mcu sample).

    When you have the images within the respective secondaries, you need to mark the candidate images with the proper status so that they will get swapped (if they get validated by the MCUboot). To do this you can use https://docs.nordicsemi.com/bundle/zephyr-apis-latest/page/group_mcuboot_api.html (boot_write_img_confirmed() and/or boot_write_img_confirmed_multi(image_index))

    After the images are marked as confirmed you should be ready to trigger a multi image swap by reseting the SoC.

    Kind regards,
    Andreas

Children
Related