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

How is the Bootloader safely copied during a BLE DFU?

SDK: 15.2.0

Reference documentation: http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v15.2.0/lib_bootloader_dfu_banks.html?cp=4_0_0_3_5_1_2 

Hello,

I have extensively researched the SDK documentation and Nordic forums but cannot find the answers the the following questions. Forgive me if I overlooked something in the documentation.

1. In a dual-bank BLE DFU, how is the bootloader updated when the bootloader itself is responsible for performing the update?

I understand that the new bootloader is stored in free flash memory when downloaded, but what is responsible for copying the new bootloader to the location of the old bootloader?

What happens if the device loses power during the copy of the bootloader?

2. For a single bank BLE DFU, is the bootloader copy process the same as a dual-bank DFU? It seems that older SDK's did not support single-bank DFU and SoftDevice updates but the newer SDK's do. The only difference that I see is that the application is deleted to make room for the bootloader and SoftDevice download. After the update, the application must be restored.

My assumption was that the bootloader was copied to RAM so that the old bootloader could be updated but I have read that this isn't the case.

Thanks for your help!

Derek

  • Hi Derek,

    I am sorry for the late reply (I am out of office).

    droberson said:
    Sorry to keep asking but something doesn't make sense here. Either the documentation and diagram is completely wrong or you can in fact perform a SoftDevice and Bootloader update in single-bank mode.

    If your definition of dual bank is on the system as a whole, then I see that you could call this something else. Looking at it from a pure SoftDevice and/or bootloader perspective (which is what is important for not bricking the device), we see it as dual bank for the reason I have descried. It seems from your last post that you have a correct understanding of how this works, so I guess this is mostly a matter of semantics.

  • No worries! Thanks for your reply. I guess I will have to test out the DFU to know for sure since I am still a bit confused due to the documentation inconsistencies and the difference between single and dual-bank.

    Thanks for your help!

Related