This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Dual bank DFU with external flash

Hi,

I am working on a BLE product that includes a nRF52810 microcontroller.

We are currently using SDK 15.3.0 and Softdevice S112 v6.1. We would like to integrate the Nordic's Secure Bootloader for DFU process.

We are only interested in updating the application. We only have 60kB of flash memory for the application. Updating in dual bank mode is therefore not going to work.

Is it possible to use an external flash memory to store the second bank for the dual bank DFU ?

Regards,

Nathan.

  • Hi Nathan,

    Using external flash for temporarily storing the new firmware is definitely possible, though we do not provide an example for it. There are a few existing threads about this, for instance, this and this.

  • Thank you for your reply. I will have a look at the threads you provided.

    Would you recommand any size or type of external flash for storing the application ? Would a 128kB flash be enough (with no bootloader nor softdevice update planned) ?

    Is it possible to disable in the secure bootloader the ability to update the bootloader and the softdevice ?

  • Hi,

    Nathan O. said:
    Would you recommand any size or type of external flash for storing the application ? Would a 128kB flash be enough (with no bootloader nor softdevice update planned) ?

    Assuming this should only hold an application update, the external flash does not need to be larger than the largest possible application (which is equal to the amount of free space between the SoftDevice and the bootloader).

    Nathan O. said:
    Is it possible to disable in the secure bootloader the ability to update the bootloader and the softdevice ?

    Yes. If you just want to do it in a simple way, you could modify postvalidate_sd_bl() in nrf_dfu_validation.c to always return false. But why would you want to do this? A SoftDevice update may not be possible anyway due to limitations in flash space, but what if for instance a vulnerability is found in the bootloader, and you are unable o update it?

Related