Writing the network core's firmware data to Mcboot_secondary In the application core

Hello,

I already fully understand how nRF5340: Network core bootloader working.

As I wondered in the title, I want to move the application  firmware data of network core to mcuboot_secondary in the application core (maybe running the boot of application core).
This is because I intend to implement a program with two questionable steps:


1. In the boot of application core, move the application firmware data of network core to mcuboot_secondary partition.
a. I learned that the network core bootloader flush the new firmware of network core through SRAM. So my step is actually in the opposite direction, moving the network core firmware data out.


2. Move the new firmware data of network core storaged in mcuboot_secondary to the original location of network core application.


At present, my main question is whether the first step can be achieved in any way?

Thank you in advance.

BR

Kevin

  • Hi,

    I'm not really sure what you are trying to achieve here. Could you explain it in a bit more details, including the motivation behind it?

    The copy from network core flash to shared SRAM would have to be done by the bootloader on the network core, and I'm not sure that the network core bootloader has that functionality.

  • Thanks for your reply.

    I am using the differential OTA function of a third party and want to update the firmware content of network Core.

    This upgrade process needs to be completed in the boot layer.


    So as far as I know, nrf5340 has only two boot, one is the mcuboot in app core; The other is network core bootloader.
    In mcuboot, the third-party OTA has done a good job in the differential upgrade of the application layer of the app core. They think they can do the same differential upgrade of the network core in mcuboot also.


    Because the differential upgrade needs to be based on the original firmware, the application layer firmware of network core needs to be available in mcuboot, which leads to the first problem I mentioned above:

    In the boot of application core, move the application firmware data of network core to mcuboot_secondary partition.

    I hope this expression can help you understand what I'm doing.

    So my question is, is this possible?

  • I understand. It sounds like it should be possible, but not with the default network core bootloader.

    You would have to write your own bootloader for the network core with this functionality. Our network core bootloader is by default only capable of writing an image from the shared sram to the network core flash.

    I think it should be possible to add your desired functionality to the network core bootloader by having it write the image into the shared sram in the same way mcuboot does.

    From the mcuboot side, I believe it would require a function similar to network_core_update(), but instead of the network core bootloader copying from the shared sram to flash, it would be copying from flash to the shared sram.
    On the network core bootloader side, you would need all the new functions, and also some way of knowing which mode it is in.

  • Right, it looks like I'm really going to implement this myself, and I believe I can do it as long as the environment is configured correctly.

    Thanks anyway.

Related