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.

MSPM0L1306: mcuboot cannot put higher version image in primary slot

Part Number: MSPM0L1306

Hi folks,

Recently, I am using the example of boot_application. However, I found a issue on it:

I changed the example project of bim_sample_image setting, to set the primary slot configuration having higher version number (-version 2.0.0)

Then I flashed boot_application to offset 0, primary to 0x5400, secondary to 0xa800. I observed that flashing red LED which indicates boot fail.

On another way, I have another project which nearly copy these configurations but the dual-slot images equip with OTA functionality. I did following:

  1. I flashed two slots with ver0, and device boot up from slot 0. (green led)
    1. debug return ver0-slot0.
  2. I make an OTA to ver1. (log showing that it used slot 1 image)
    1. OTA success, no error reported.
    2. device reboot, and boot up slot1 (showing blue LED)
    3. debug return ver1-slot1
  3. I make an OTA to ver2. (log showing that it used slot 0 image)
    1. OTA success, no error reported.
    2. device reboot and boot up fail (flashing RED)
  4. I manually (and only) flash slot 1 to ver 2
    1. device boot up slot0 (showing green LED)
    2. debug return ver2-slot0
  5. I manually (and only) flash slot 0 to ver 1
    1. device boot up slot1 (showing blue LED)
    2. debug return ver2-slot1

Hence, I believe that it might have limitation that primary slot cannot have higher version than secondary slot. Is this true? Do we have resolution on it? (without two same version OTA, to flush the two slots to same version)

  • Hey Tiger,

    I got a bit lost at step 4.  In this step, are you saying a version 2 is programmed into both Slot 0 and 1?  I see "Device boot up slot 1.  Debug return ver2-slot0"

    What if you just manually program your two images?  Does this higher version number cause it to fail?  

    Thanks,

    JD

  • In step 4, I manually program the slot1 area with ver2 app. Device booted from slot 0 finally.

    Yes, higher version on primary slot cause the fail. Not matter I program them in batch (build the whole flash image by combining bld+slot0+slot1 first, then flash), or flash them individually, or OTA.

  • For any future readers, I worked with Tiger offline and a bug was found in the open source MCUBoot code.  This code will be updated in the MSPM0 SDK and included in the next release, sometime near the end of 2023.

    Thanks,

    JD