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

MBR and SD dependencies

Hi,

This is a follow-on question to the following: link

I have similar questions and would like further 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 only 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,

Parents
  • Hi JeanMBoones,

    If you read the answer correctly it says MBR and SD versions are independent meaning and only to certain extend (MBR major version). So you can load one MBR+SD combination and upgrade SD later (until it is still compatible with this particular MBR major version number). However SD as compiled won't work with MBR or to be more specific it won't work without some piece of code which forwards interrupt vector table and program counter to proper memory addresses (and that piece of code must sit at offset 0x00000000 because that's where nRF5x ARM chips look for code to execute after reset!).

    So the answers to your questions are:

    1. SD comes with MBR because you need to flash MBR in order to have SD (and then you APP FW on top of it) working.
    2. As said nRF5x chips boot code at address 0x00000000 so MBR only provides quick jump to proper region at the start of SD (and then MBR also provides small set of basic unctions which are available to call if you want to manipulate with flash on top of it, e.g. erase and rewrite all sectors including those occupied by the stack).
Reply
  • Hi JeanMBoones,

    If you read the answer correctly it says MBR and SD versions are independent meaning and only to certain extend (MBR major version). So you can load one MBR+SD combination and upgrade SD later (until it is still compatible with this particular MBR major version number). However SD as compiled won't work with MBR or to be more specific it won't work without some piece of code which forwards interrupt vector table and program counter to proper memory addresses (and that piece of code must sit at offset 0x00000000 because that's where nRF5x ARM chips look for code to execute after reset!).

    So the answers to your questions are:

    1. SD comes with MBR because you need to flash MBR in order to have SD (and then you APP FW on top of it) working.
    2. As said nRF5x chips boot code at address 0x00000000 so MBR only provides quick jump to proper region at the start of SD (and then MBR also provides small set of basic unctions which are available to call if you want to manipulate with flash on top of it, e.g. erase and rewrite all sectors including those occupied by the stack).
Children
No Data
Related