SLAAE88D December   2022  – September 2025 MSPM0C1105 , MSPM0C1106 , MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G3105 , MSPM0G3106 , MSPM0G3107 , MSPM0G3505 , MSPM0G3506 , MSPM0G3507 , MSPM0H3216 , MSPM0L1105 , MSPM0L1106 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1 Introduction
    1. 1.1 Bootloader Concept
    2. 1.2 MSPM0 Bootloader Structure
      1. 1.2.1 ROM-Based BSL
      2. 1.2.2 ROM-Based BSL With Flash-Based Plug-In Interface
      3. 1.2.3 Flash-Based Secondary BSL
    3. 1.3 MSPM0 BSL Features and Demos Summary
  5. 2BSL Host Implementation Summary
  6. 3BSL Configuration in Non-Main (Configuration NVM)
    1. 3.1 Non-Main Introduction
    2. 3.2 Example – Disable PA18 BSL Invoke Pin With Sysconfig
  7. 4Bootloader Host
    1. 4.1 MCU Host Code Introduction
      1. 4.1.1 Hardware Connection
      2. 4.1.2 TXT to Header File Conversion
      3. 4.1.3 Step-by-Step Using the Demo
    2. 4.2 PC Host Example
      1. 4.2.1 Prepare the Image File and Password File
      2. 4.2.2 Steps to Using the GUI
  8. 5Bootloader Target
    1. 5.1 Default ROM-Based BSL
      1. 5.1.1 UART Interface
      2. 5.1.2 I2C Interface
    2. 5.2 Flash-Based Plug-In Interface Demos
      1. 5.2.1 UART Interface
        1. 5.2.1.1 Step by Step Using the Demo
        2. 5.2.1.2 How to Debug the Plug-In Interface Code
      2. 5.2.2 I2C Interface
      3. 5.2.3 SPI Interface
      4. 5.2.4 CAN Interface
    3. 5.3 Secondary BSL Demo
      1. 5.3.1 Flash-Based Secondary BSL Start From 0x1000
      2. 5.3.2 Flash-Based Secondary BSL Start From 0x0000
        1. 5.3.2.1 Flash-Based 0x0 Address BSL Demo for MSPM0C
        2. 5.3.2.2 Live Firmware Update
  9. 6Common Questions
    1. 6.1 Linker File Modification
    2. 6.2 Factory Reset by CCS to Recover Device
  10. 7References
  11. 8Revision History

MSPM0 BSL Features and Demos Summary

Table 1-3 MSPM0 BSL Features Summary
Device Family M0C1104/3 M0C1106/5 M0H3216/5 MSPM0L MSPM0G
BSL General BSL memory type Flash Flash ROM ROM
BSL memory size >3.5K >3.9K 5K 5K
User configuration in Non-main flash
UART
I2C
Plug-In interface demos UART
I2C
SPI
CAN
BSL Invoke GPIO Invoke
Blank device detection
Software Invoke
Invoke detection in ROM support
Hardware Tools XDS110 with UART
Software Tools MSPM0_BSL_GUI in SDK
Uniflash
Security 256 bits password protected

There are some BSL code examples in the SDK and can be summarized, as shown in Table 1-4.

Table 1-4 MSPM0 BSL Demos summary
Demo Type Demo Name Using Case
Target side demos Plug-in interface demos bsl_spi_flash_interface When ROM-based communication interface configuration or type not meet with requirement (need UART1 module as interface or need SPI) and TI’s default BSL protocol can be used
bsl_uart_flash_interface
bsl_i2c_flash_interface
bsl_can_flash_interface
Secondary BSL demo secondary_bsl (uart/i2c/spi/can)

flash_bsl(for MSPM0C)

When TI’s default BSL protocol cannot meet with requirements, this re-used the same trigger condition of ROM-based BSL except the flash_bsl demo for MSPM0C.
Application demo bsl_software_invoke_app_demo (uart/i2c/spi/can) Application example code can be co-work with ROM-based BSL or flash-based secondary BSL demo or flash-based interface plug-in demos, this also include software trigger function.
Host side demos MCU or processor as host bsl_host_mcu_to_m0x_target (uart/i2c/spi/can) When MCU or processor as host and follow TI’s default BSL protocol. This can be used with ROM BSL and default secondary BSL demos.
PC as host MSPM0_BSL_GUI/Uniflash When PC as host with UART and follow TI’s default BSL protocol. That means this can be used for ROM based UART BSL or default UART plug-in interface demo or default secondary BSL UART demo.
Table 1-5 MSPM0 BSL Demos Co-Work - MCU as Host
Target side Host side
Memory location BSL code demo Application code demo MCU/Processor Host
ROM BSL ROM / bsl_software_invoke_app_demo (uart/i2c/spi/can) bsl_host_mcu_to_m0x_target (uart/i2c/spi/can)
Plug-In interface demos Main Flash (Need co-work with ROM BSL) bsl_spi_flash_interface
bsl_uart_flash_interface
bsl_i2c_flash_interface
bsl_can_flash_interface
Secondary BSL demo Main Flash secondary_bsl (uart/i2c/spi/can)
Table 1-6 MSPM0 BSL Demos Co-Work - PC as host
Target side Host side
Memory location BSL code demo Application code demo PC Host
ROM BSL ROM / bsl_software_invoke_app_demo (uart/i2c/spi/can) MSPM0_BSL_GUI/Uniflash
Plug-In interface demos Main Flash (Need co-work with ROM BSL) bsl_spi_flash_interface N/A
bsl_uart_flash_interface MSPM0_BSL_GUI/Uniflash
bsl_i2c_flash_interface N/A
bsl_can_flash_interface N/A
Secondary BSL demo Main Flash secondary_bsl (uart/i2c/spi/can) N/A