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

Endless loop in MBR after bootloader update from SDK14.1 to SDK 15.0

We have a project running based on the SDK 14.1 on a nRF52DK with S132 5.0. The used bootloader works as expected and also an update of the bootloader works properly. 

After the release of SDK 15 we tried to implement the update the current bootloader based on SDK 14.1 to a bootloader based on SDK 15.0. We adapted our project to use the SDK 15 bootloader. The bootloader itself is working fine if programmed with j-link, but we are not able to update the existing 14.1 based bootloader with the new built SDK 15.0 bootloader. The update looks normal untill the data has been transfered to the device. But after the reset the device never gets into the bootloader code and is bricked.

By looking deeper into the behavior i found out that the firmware continuously executes code in the range of the MBR (< 0x1000). A dump of the flash also showed some data in the MBR params page.

As far as I know the MBR params page should be cleared after a command ahs completed completely. This also matches the theory that something in the MBR doesn't work.

Here is the start of the MBR Params page (Intel HEX Format):
:10E00000DC17511EAAFFFFFF086A00208C43002086
:10E0100000E007001B03000000000000F9FFFFFF05
:10E02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00

Questions:

- What can cause the MBR to end in a endless loop?
- Where is the difference between the SDK14.1 bootloader and the SDK15.0 based bootloader that can cause this different behavior?

Regards Adrian

Parents
  • Hi,

    Are you doing an upgrade from the unmodified 14.1 bootloader to the unmodified 15.0 bootloader (with exception of key pair used for signing)?

    If not, if for instance the bootloader size has changed then a likely scenario may be that the bootloader starts briefly, thinks that a time costly MBR operation is required, and then reboots into the MBR (so that it looks like MBR is running all of the time, but in reality it is 99 % of the time.)

    Not qute able to parse the MBR Params page, but it looks like a copy or compare operation involving the bootloader.

    I may need hex files and DFU zip file for reproducing, and/or flash hex dumps before and after DFU in order to investigate further. You can create a private ticket and post those there if confidential. (Or we can go private with this thread, if needed. Let me know.)

    Regards,
    Terje

  • Hi Terje

    I've created a private ticket with a reference to this one. The files provided there are not for the public, but I guess the results from the issue will be interesting for other Nordic uses as well.

    Regards Adrian

  • HI,

    Thank you. I suggest that we continue the discussion in the private thread, and when we find a solution you may choose to post it here.

    Regards,
    Terje

Reply Children
No Data
Related