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

Yotta and SDK12 secured bootloader

This is slightly off topic (I also posted this in the mbed forums), but I hope maybe someone here would also know.

My goal is to use the newly secure boot loader that was recently introduced in SDK12. I'm using redbeadlab's programmer (MK20) and their ble nano (for all purposes, this is identical of using nrf51dk). My toolchain is mbed's yotta (I'm using mbed OS 5).

I am having a problem where my program (which previously compiled and ran without any problem using the default s130 softdevice and default bootloader that come with yotta_targets/nordic-nrf51822-gcc), doesn't run anymore after I switch to the secured bootloader or to the v2 of s130 softdevice.

Basically, the steps were:

  1. Create a private key
  2. Generate a public key from the private key
  3. Modify dfu_public_key.c with the public key
  4. Installed micro Ecc
  5. Compiled the bootloader to a hex file.
  6. Modified the CMake/toolchain.cmake to use the new bootloader and also the new soft device (s130_nrf51_2.0.1_softdevice.hex).
  7. Compiled the project and got a nice merged hex that includes everything (app+softdevice+bootloader). However, it doesn't run after I upload it to the board.

Trying to change only bootloader and keep s130_nrf51_1.0.0_softdevice.hex didn't work. Reverting back to the default non secured bootloader and only changing softdevice to s130_nrf51_2.0.1_softdevice.hex also didn't work, which leads me to believe this is the cause of the problem.

I'm using v1.5.0 of mbed-drivers and version 2.7.0 of ble modules.

Am I missing something that needs also to be changed in the memory layout? if so, where?

Does the secured bootloader from SDK 12 work with softdevice S130 from previous SDKs?

Any ideas would be really appreciated. I'm stuck on this.

Parents Reply Children
No Data
Related