This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

[NRF52] Question about the MBR and SD dependence

Hey folks,

Is there any dependence between the MBR and the SD version? The reason I ask is because we are working on a product that will be able to update the softdevice as well as the app portions of the image while ideally retaining the MBR.

Do you guys see any issues with this method? We are currently running the 2.0.0 version of the 332 SD with the 2.0.0 MBR. I was going to try downgrading just the first page of flash to the old MBR, but figured I would pose the question in parallel.

  • No, the MBR is SoftDevice independent, so the approach you're describing should work just fine. In fact, this is how we do it in our bootloader, the MBR is never updated during DFU, just the Softdevice.

    -Bjørn

  • I have a similar question and would like clarification. The MBR and the SD are packaged/delivered together in the same binary.

    1. If there is no dependency, then why package them together?
    2. How exactly are the MBR and SD linked/coupled? Is it simply via configuration registers that can be updated if necessary or is there anything in actual executable code that is directly linked into the MBR regarding the SD?

    Thanks,

  • Q1: Ease of use. All exceptions are prcessed by the MBR first and then forwarded to the SoftDevice or Bootlaoder. If you only flash the SoftDevice without the MBR, then the exeptions wil not be forwarded to the correct location.

    Q2: The MBR simply forwards exceptions to the SoftDevice or the bootloader, see this section in the SoftDevice Specification. You pass execution, using SV calls,see the API doc, to the MBR during Bootloader and SoftDevice updates and the MBR will then perform the swap operation, i.e. swap the old image with the new.

  • Thanks for the reply, but let me be more specific. Is it possible to update the SD while leaving the MBR intact and if so, what are the limitations to this? In other words, is the MBR for a given SoftDevice (such as 132) guaranteed to remain compatible with future versions of that SoftDevice (other than changing some configuration register for address forwarding, etc.)? We would like to have the ability to update the SoftDevice in the field while leaving the MBR and our custom bootloader untouched. This is with the goal of always maintaining valid working software in the device regardless of a functional SoftDevice or not.

  • Yes, the MBR is never updated during a Device Firmware Update when using the bootloader from our SDK. Because we never update the MBR we also guarantee that the MBR will be compatible with all future SD versions. Leaving the MBR intact is therefore no issue, but you will have to update the bootloader so that its compatible with the API of the new SoftDevice.

Related