nRF5340 FOTA using external spi flash

Hi,

We have a project using nRF5340,and must consider upgrading for it. I see nRF5340 netcore has SPI peripheral,can nRF5340 upgrading using external spi flash?
This post shows i can't update the network core via QSPI, because of the network core doesn't have access to the QSPI
peripheral.

Here is my upgrade idea:
1. Download OTA packet to spi flash memory by any ways.
2. Verify OTA packet and notify B0n start upgrading.
3. B0n get OTA packet via QSPI.
4. Start
upgrading and reset sysytem to boot new image.

Some details need to be confirmed:
1. I hope to upgrade appcore and netcore via spi flash, can the two core have access to the same spi flash?
2. What is another core doing when the one is upgrading, only waiting or processing its own things?
3. Image reversion,the two core use the same image slot. How does image reverse?

Best regards!

yang
  • Hi

    By "upgrading it" do you mean doing a Device Firmware upgrade over the air? Multi image DFU is explained here in the nRF Connect SDK. Please check it out, as it should indeed be possible to do DFU for both NET and APP cores on the nRF5340.

    Best regards,

    Simon

  • Hi:

    Thank you for your reply.

    By "upgrading it" do you mean doing a Device Firmware upgrade over the air?

    Yes. 

    I want to confirm these three points.

    1. I hope to upgrade appcore and netcore via spi flash, can the two core have access to the same spi flash?
    > 2. What is another core doing when the one is upgrading, only waiting or processing its own things?
    > 3. Image reversion,the two core use the same image slot. How does image reverse?

    I see nRF5340 netcore has SPI peripheral,so i want to  do a Device Firmware upgrade via spi flash not appcore flash. 

    Best regards,

    yang

  • During the boot process, the network core bootloader Bon and MCUboot interact using shared SRAM including "netcore firmware".

    I want the B0n to get the firmware through the spi flash instead of the shared SRAM. 

  • Hi

    1. Yes, a SPI flash connected to the nRF53 (app core) it can forward NET core firmware to the NET core to do the DFU from the SPI flash to the NET core, and then the app core afterwards.

    2. I think you only can update one core at a time from the same SPI peripheral, so one will be waiting for the other to finish I imagine.

    3. I'm not sure I understand this question. You will need to have more than one image for your different cores, etc. https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/mcuboot/design.html#image-slots 

    Best regards,

    Simon

  • Hi 

    > 1. Yes, a SPI flash connected to the nRF53 (app core) it can forward NET core firmware to the NET core to do the DFU from the SPI flash to the NET core, and then the app core afterwards.

    Do you mean app core get NET core firmware from spi flash, and then send it to NET core over shared SRAM?

    Maybe I didn't describe it clearly, english is not my native language.

    About this case, my idea is NET core only get the "upgrade" command from app core over shared SRAM, then the NET core get NET core firmware from spi flash directly. 

    NET core has its own bootloader named B0n, and SPI peripherals it can be accessed.

    This problem can be equivalent to, does B0n can get firmware from its own SPI peripherals?

    I'm not sure I understand this question. You will need to have more than one image for your different cores,

    In this case, I see multi-image DFU allows the updating of both the application core and the network core in one go.

    But app core firmware and NET core firmware use the same image slot. So when the app core is updated, the old app core firmware will be deleted when the NET core is updating. 

    So how does app core reverse in this status?

    Best regards,

    HuYang

Related