Clarification on Bootloader Flow: MCUboot_opensource and OTA Examples

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Clarification on Bootloader Flow: MCUboot_opensource and OTA Examples

405 Views
Bhumika18
Contributor I

Hello,

I am working with the NXP SDK for the i.MX RT platform and I noticed that the SDK provides multiple bootloader-related examples, such as mcuboot_opensource and ota_mcuboot_basic.

From my understanding, the boot flow seems to be as follows:

  1. The mcuboot_opensource project is programmed first and acts as the main bootloader.

  2. The ota_mcuboot_basic example is then used to handle firmware updates.

  3. Finally, the OTA process updates the actual user application firmware.

So effectively, there appear to be three components involved:

  • MCUboot bootloader (mcuboot_opensource)

  • OTA update application (ota_mcuboot_basic)

  • Final user application firmware

I would like to confirm if this understanding is correct. Specifically:

  • Is mcuboot_opensource always required as the base bootloader for OTA examples like ota_mcuboot_basic?

  • Does ota_mcuboot_basic act as the main application that gets updated, or is it only a reference example for implementing OTA updates in a custom application?

  • In a real product, would we typically keep MCUboot as the bootloader and replace ota_mcuboot_basic with our own application?

Any clarification on the correct boot flow and how these examples are intended to be used in a production setup would be very helpful.

Thank you.

0 Kudos
Reply
1 Reply

386 Views
RomanVR
NXP Employee
NXP Employee

Hi @Bhumika18, hope you are doing well.

  • Is mcuboot_opensource always required as the base bootloader for OTA examples like ota_mcuboot_basic?
     
    Yes, as it contains the required source code for MCUboot to work properly.

  • Does ota_mcuboot_basic act as the main application that gets updated, or is it only a reference example for implementing OTA updates in a custom application?
     
    It is a reference application that implements OTA updates, therefore you would use the same logic into a custom application to enable OTA updates.
     
  • In a real product, would we typically keep MCUboot as the bootloader and replace ota_mcuboot_basic with our own application?

    Yes, just make sure that you maintain the OTA functionalities of the mentioned example in order to be able to do the OTA in your custom application.

 
Please let me know if this information clears out your doubts.

Best Regards!
0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2321112%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EClarification%20on%20Bootloader%20Flow%3A%20MCUboot_opensource%20and%20OTA%20Examples%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2321112%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%2C%3C%2FP%3E%3CP%3EI%20am%20working%20with%20the%20NXP%20SDK%20for%20the%20i.MX%20RT%20platform%20and%20I%20noticed%20that%20the%20SDK%20provides%20multiple%20bootloader-related%20examples%2C%20such%20as%20%3CSTRONG%3Emcuboot_opensource%3C%2FSTRONG%3E%20and%20%3CSTRONG%3Eota_mcuboot_basic%3C%2FSTRONG%3E.%3C%2FP%3E%3CP%3EFrom%20my%20understanding%2C%20the%20boot%20flow%20seems%20to%20be%20as%20follows%3A%3C%2FP%3E%3COL%3E%3CLI%3E%3CP%3EThe%20%3CSTRONG%3Emcuboot_opensource%3C%2FSTRONG%3E%20project%20is%20programmed%20first%20and%20acts%20as%20the%20main%20bootloader.%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3EThe%20%3CSTRONG%3Eota_mcuboot_basic%3C%2FSTRONG%3E%20example%20is%20then%20used%20to%20handle%20firmware%20updates.%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3EFinally%2C%20the%20OTA%20process%20updates%20the%20actual%20user%20application%20firmware.%3C%2FP%3E%3C%2FLI%3E%3C%2FOL%3E%3CP%3ESo%20effectively%2C%20there%20appear%20to%20be%20three%20components%20involved%3A%3C%2FP%3E%3CUL%3E%3CLI%3E%3CP%3EMCUboot%20bootloader%20(mcuboot_opensource)%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3EOTA%20update%20application%20(ota_mcuboot_basic)%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3EFinal%20user%20application%20firmware%3C%2FP%3E%3C%2FLI%3E%3C%2FUL%3E%3CP%3EI%20would%20like%20to%20confirm%20if%20this%20understanding%20is%20correct.%20Specifically%3A%3C%2FP%3E%3CUL%3E%3CLI%3E%3CP%3EIs%20%3CSTRONG%3Emcuboot_opensource%3C%2FSTRONG%3E%20always%20required%20as%20the%20base%20bootloader%20for%20OTA%20examples%20like%20%3CSTRONG%3Eota_mcuboot_basic%3C%2FSTRONG%3E%3F%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3EDoes%20%3CSTRONG%3Eota_mcuboot_basic%3C%2FSTRONG%3E%20act%20as%20the%20main%20application%20that%20gets%20updated%2C%20or%20is%20it%20only%20a%20reference%20example%20for%20implementing%20OTA%20updates%20in%20a%20custom%20application%3F%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3EIn%20a%20real%20product%2C%20would%20we%20typically%20keep%20MCUboot%20as%20the%20bootloader%20and%20replace%20%3CSTRONG%3Eota_mcuboot_basic%3C%2FSTRONG%3E%20with%20our%20own%20application%3F%3C%2FP%3E%3C%2FLI%3E%3C%2FUL%3E%3CP%3EAny%20clarification%20on%20the%20correct%20boot%20flow%20and%20how%20these%20examples%20are%20intended%20to%20be%20used%20in%20a%20production%20setup%20would%20be%20very%20helpful.%3C%2FP%3E%3CP%3EThank%20you.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2321478%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Clarification%20on%20Bootloader%20Flow%3A%20MCUboot_opensource%20and%20OTA%20Examples%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2321478%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F258069%22%20target%3D%22_blank%22%3E%40Bhumika18%3C%2FA%3E%2C%26nbsp%3Bhope%20you%20are%20doing%20well.%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%3CEM%3EIs%20mcuboot_opensource%20always%20required%20as%20the%20base%20bootloader%20for%20OTA%20examples%20like%20ota_mcuboot_basic%3F%3C%2FEM%3E%3CBR%20%2F%3E%26nbsp%3B%3CBR%20%2F%3EYes%2C%20as%20it%20contains%20the%20required%20source%20code%20for%20MCUboot%20to%20work%20properly.%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FLI%3E%0A%3CLI%3E%3CEM%3EDoes%20ota_mcuboot_basic%20act%20as%20the%20main%20application%20that%20gets%20updated%2C%20or%20is%20it%20only%20a%20reference%20example%20for%20implementing%20OTA%20updates%20in%20a%20custom%20application%3F%3C%2FEM%3E%3CBR%20%2F%3E%26nbsp%3B%3CBR%20%2F%3EIt%20is%20a%20reference%20application%20that%20implements%20OTA%20updates%2C%20therefore%20you%20would%20use%20the%20same%20logic%20into%20a%20custom%20application%20to%20enable%20OTA%20updates.%3CBR%20%2F%3E%26nbsp%3B%3C%2FLI%3E%0A%3CLI%3E%3CEM%3EIn%20a%20real%20product%2C%20would%20we%20typically%20keep%20MCUboot%20as%20the%20bootloader%20and%20replace%20ota_mcuboot_basic%20with%20our%20own%20application%3F%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FEM%3EYes%2C%20just%20make%20sure%20that%20you%20maintain%20the%20OTA%20functionalities%20of%20the%20mentioned%20example%20in%20order%20to%20be%20able%20to%20do%20the%20OTA%20in%20your%20custom%20application.%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%26nbsp%3B%3CBR%20%2F%3EPlease%20let%20me%20know%20if%20this%20information%20clears%20out%20your%20doubts.%3C%2FP%3E%3C%2FLINGO-BODY%3E