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

using DFU to update softdevice

I'm using nRF52 + s132v2.0.0 + SDK11.0.0. I want to be able to update to s132v4.0.2 (or so) + SDK13.0.0 via DFU. I'm planning on modifying the bootloader start address to 0x77000 with size 0x7000 (to allow for a slight modification which required a page).

The bootloader project in SDK11 shows two IRAM regions and requires nrfjprog to program the bootloader (so that the UICR is properly programmed). What is different about the secure bootloader in regards to flashing it, and why is there is a different IRAM1 start region between the two? Could you kindly explain the calculation used (or provide a link) to determine the IRAM1/2 start and size for the bootloaders? Other than the issues of using the same bootloader start address and the page alignment described here, are there any issues I should be aware of due to different RAM regions?

  • Hi Tosa,

    The 2 RAM regions in the bootloader RAM setting in SDK v11 is to support the bond forwarding feature of that bootloader. So that we can reserve the RAM area to store bond information and can forward the bond information from application to the bootloader. The bootloader then can use that bond information in IRAM2 to reload the bond information (the LTK key for bonding).

    On Secure DFU from SDK v12, that feature is removed. Now we simply change the address of the bootloader (+1 in the default address) and let the phone connect to the bootloader as a new device.

    IRAM1 in SDK v11 is different from IRAM1 in SDK v12 and later because the softdevices are different and the requirement for RAM reserved for the softdevice are different. Also when you change the configuration (such as different number of central/peripheral, bandwidth) the RAM reserving for softdevice also change.

Related