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

Bootloader update OTA not working (Application OTA is working)

Hello,

I am tring to do a Bootloader update OTA using the bootlader DFU Dual Bank. Application update OTA is working fine while it is not the case for Bootloader update OTA.

For Bootloader update, I have tried with a Zip file and .bin + .dat files on NRFConnect (Android). In both scenarios, I can see that the file was successfully transferred to the nrf52. However the old bootloader does not get replaced with the new one. I have a led on the boards that tells me which bootloader is active. The leds shows the old boatloader running even that the transfer of the files was successful

SDK Version: 11 Chip: NRF52 softdevice: s132 2.0.0 The files were generated with nrfutil.exe

Application OTA is working perfectly. I just need to replace the bootloader OTA to support the Watchdog.

Any idea why the Bootlader update OTA is not working? and why i am not receiving any error message?

Thank you, Karim

Parents
  • Hi Hung, Thanks for your reply. I may have found the reason of this behavior.

    When flashing the chip and in order to flash only one single code that contains the bootloader+ SD + App, and following some other comments found in the forum I have applied the following modifications:

    bootloader_settings.c:

    • removed this line - uint8_t m_boot_settings[CODE_PAGE_SIZE] attribute ((section(".bootloaderSettings")));

    • added this line - attribute ((section(".bootloaderSettings"))) volatile uint8_t m_boot_settings[CODE_PAGE_SIZE] = {BANK_VALID_APP};

    Removed this from the ld file: / Place the bootloader settings page in flash. / .bootloaderSettings(NOLOAD) : { } > BOOTLOADER_SETTINGS

    Is there a way to update this bootloader either OTA or through SD card? Flashing the bootloader with a programmer is not possible anymore. Thanks

Reply
  • Hi Hung, Thanks for your reply. I may have found the reason of this behavior.

    When flashing the chip and in order to flash only one single code that contains the bootloader+ SD + App, and following some other comments found in the forum I have applied the following modifications:

    bootloader_settings.c:

    • removed this line - uint8_t m_boot_settings[CODE_PAGE_SIZE] attribute ((section(".bootloaderSettings")));

    • added this line - attribute ((section(".bootloaderSettings"))) volatile uint8_t m_boot_settings[CODE_PAGE_SIZE] = {BANK_VALID_APP};

    Removed this from the ld file: / Place the bootloader settings page in flash. / .bootloaderSettings(NOLOAD) : { } > BOOTLOADER_SETTINGS

    Is there a way to update this bootloader either OTA or through SD card? Flashing the bootloader with a programmer is not possible anymore. Thanks

Children
No Data
Related