This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSPM0G3507: Secure boot and Boot Image Manager

Part Number: MSPM0G3507

Tool/software:

In mspm0g3507 controller is it possible to add secure boot along with secondary bootloader? what limitations are there? I am referring BIM example code, but it only support Execute in place mode as mentioned in documents. what MCUboot is doing in BIM example code? What exact secure boot policies we can implement on mspm0g3507?

  • Hi, 

    In mspm0g3507 controller is it possible to add secure boot along with secondary bootloader?

    The most possible limitation is from Flash size, but it's OK and workable for MSPM0G3507.

    You can find secure boot in G3519's folder.

    What exact secure boot policies we can implement on mspm0g3507?

    For secure function, almost all software function is supported.

    But there still technical gap between G3519 and G3507.

    Please compare these two device in their website:

    https://www.ti.com/product/MSPM0G3519

    https://www.ti.com/product/MSPM0G3507

    You can also find these two demo's document: https://dev.ti.com/tirex/explore/node?node=A__APjkYg9RWxwM6nRUc3InzA__MSPM0-SDK__a3PaaoK__LATEST

    Regards,

    Helic

  • If i am referring BIM example code and it is having MCUboot files integrated in it. then do i need to use any other bootloader to flash new image?like secondary bootloader?

  • Hi, 

    then do i need to use any other bootloader to flash new image?like secondary bootloader?

    Yes, rather than image update, it is more like a boot routine.

    In G3507's boot application, in main, Boot application has example code for how to start app code and has a structure to show how to handle two app code area.

    There are Flash example in flash_map_backend folder. But now in use.

    You need to use communication interface to receive the app code in boot application, and then program them into Flash.

    Also, a secondary bootloader is a good example for image transfer and image flash. But it follows the BSL protocol.

    Regards,

    Helic

  • It Means MCUboot only do boot functionality means it need images to be preloaded into flash and then MCUboot just perform verification validation and boot into correct firmware. Right? and in i want to write new firmware image into flash then I should have secondary bootloader. so that I can get new image from client device/master device and loaded(flashed) into server/slave device. and if so then how to maintain in flash area? At what address in flash my app code goes and at what address MCUboot and secondary bootloader goes? give me consolidate image how all these things work together for my better understanding? 

  • Hi, 

    It Means MCUboot only do boot functionality means it need images to be preloaded into flash and then MCUboot just perform verification validation and boot into correct firmware. Right?

    Yes, out demo works in this way. You can find app demo here:

    C:\ti\mspm0_sdk_2_03_00_07\examples\nortos\LP_MSPM0G3507\boot_manager\bim_sample_image

    and in i want to write new firmware image into flash then I should have secondary bootloader. so that I can get new image from client device/master device and loaded(flashed) into server/slave device.

    You can refer to secondary BSL or do this jop by your self, actually it only include download image from host, such as using UART, then program code to app code region, such as using driverlib flash API.

    and if so then how to maintain in flash area?

    For Flash area, in CCS, we manager this part in .cmd file.

    Also for demo code in [C:\ti\mspm0_sdk_2_03_00_07\examples\nortos\LP_MSPM0G3507\boot_manager]

    It has already offer a example Flash area manager plan for you, please refer to Boot application document and .cmd file.

    At what address in flash my app code goes and at what address MCUboot and secondary bootloader goes?

    please refer to document https://dev.ti.com/tirex/explore/node?node=A__APjkYg9RWxwM6nRUc3InzA__MSPM0-SDK__a3PaaoK__LATEST

    You can put your own bootloader to boot area, before start app function.

    Also, in SYSCTL, reset cause register will also help boot to confirm whether this is a BSL reset or power on reset.

    give me consolidate image how all these things work together for my better understanding? 

    bim_sample_image use different slot for app1 or app2, means single project can be compiled into two app slot depending on different debug configuration.

    Regards,

    Helic

  • Thank you.  Appreciate your help. I will check and get back if I stuck somewhere Wink.

  • Hi, 

    Feel free to contact me~

    Regards,

    Helic

  • Hi. I am having master device that send me firmware image. example code that is BIM which I am referring is using MCUboot to authenticate and validate image but only do XIP (execute in place) that means it required fw image already to be in a flash memory (did I understood correct?). But due to some limitation I want to apply image authentication and validation on incoming new FW image before loading it into flash what should I do? and is it possible to perform image authentication and validation using MCUboot,before loading it into flash memory?

  • Hi, 

    and is it possible to perform image authentication and validation using MCUboot,before loading it into flash memory?

    Yes, it's possible. All function in boot is defined by user.

    This demo just show a basic routine to help customer quickly handle start app function.

    That means you need to save them in RAM while running boot, please make sure RAM is enough, or you need to cut your image in several section, then verify them separately.

    Regards,

    Helic

  • Hi Helic,

    One question I have, if I want to store some data that keep available even after power cycle. I have seen eeprom emulation example and using that I can be able to utilize some section of flash to store some data but on power on everything erase. what should I do? 

  • Hi, 

    One question I have, if I want to store some data that keep available even after power cycle. I have seen eeprom emulation example and using that I can be able to utilize some section of flash to store some data but on power on everything erase. what should I do? 

    Program flash using CCS will mass erase in default.

    EEPROM emulation demo in MSPM0 SDK works well from my side.

    Please try to locate a range of Flash that won't be influence by your image and test again.

    Also, in CCS debug, you can try wo observe the Memory of MSPM0 in Memory window.

    Regards,

    Helic