SLAAEQ5 March   2025 MSPM0C1103 , MSPM0C1104 , MSPM0C1104-Q1 , MSPM0C1105 , MSPM0C1106 , MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G1518 , MSPM0G1519 , MSPM0G3105 , MSPM0G3105-Q1 , MSPM0G3106 , MSPM0G3106-Q1 , MSPM0G3107 , MSPM0G3107-Q1 , MSPM0G3505 , MSPM0G3505-Q1 , MSPM0G3506 , MSPM0G3506-Q1 , MSPM0G3507 , MSPM0G3507-Q1 , MSPM0G3518 , MSPM0G3518-Q1 , MSPM0G3519 , MSPM0G3519-Q1 , MSPM0H3216 , MSPM0L1105 , MSPM0L1106 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2228 , MSPM0L2228-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Cyber Security Requirement Introduction
    1. 1.1 Cyber Security Requirement for MSPM0
  5. 2MSPM0 Debug Register Introduction
  6. 3Implementation
    1. 3.1 Debugger with Mailbox
    2. 3.2 MCU
      1. 3.2.1 Usage and Configuration of Nonmain
      2. 3.2.2 MSPM0 Software Implementation
  7. 4Execution
    1. 4.1 First Time Flashing
    2. 4.2 Access to Locked MCU
  8. 5How to Customize Passwords
    1. 5.1 Password
    2. 5.2 Password Length
  9. 6Summary
  10. 7References

Cyber Security Requirement for MSPM0

Based on cybersecurity, automobile manufacturers put forward the following requirements for MCU chips:

  1. Need to disable SWD once power up, and only with password can access.
  2. No other communication and external trigger can be used, which means BSL is not allowed in this situation.
  3. Factory reset can not be used.

Based on this requirement, commonly-used automotive MCUs have integrated hardware to support changing the debug access mode to the encryption mode. The G and L series of MSPM0 has the BOOTCFG0 register to support that.

Table 1-1 BOOTCFG0 Field Descriptions for L and G Series
Bit Field Type Reset Description
31-16 SWDP_MODE R/W AABBh The serial wire debug port (SW-DP) access policy. This policy sets whether any communication is allowed with the device via the SWD pins (to any DAP). When disabled, no SWD communication is possible regardless of the configuration of the DEBUGACCESS field.
5566h = The SW-DP is fully disabled and no device access is possible via the SW-DP (0x5566 and all other values NOT 0xAABB).
AABBh = The SW-DP is enabled and device access is set by the additional policies in NONMAIN.
15-0 DEBUGACCESS W AABBh The debug access policy for accessing the AHB-AP, ET-AP, and PWR-AP debug access ports. Note that if SWDP_MODE is set to DISABLED, then the value of this field is ignored and the debug port remains fully locked.
5566h = Access to AHB-AP, ET-AP, and PWR-AP via SWD is disabled (0x5566 and all other values NOT 0xCCDD or 0xAABB).
AABBh = Access to AHB-AP, ET-AP, and PWR-AP via SWD is enabled.
CCDDh = Access to AHB-AP, ET-AP, and PWR-AP via SWD is only enabled when the correct password is provided via the DSSM before BCR execution.
Table 1-2 BOOTCFG0 Register Field Descriptions for C Series
Bit Field Type Reset Description
31-16 SWDP_MODE R/W AABBh The serial wire debug port (SW-DP) access policy. This policy sets whether any communication is allowed with the device via the SWD pins (to any DAP). When disabled, no SWD communication is possible regardless of the configuration of the DEBUGACCESS field.
AABBh = Enabled;
FFFFh = Disabled (all other values).
15-0 DEBUGACCESS W AABBh The debug access policy for accessing the AHB-AP, ET-AP, and PWR-AP debug access ports. Note that if SWDP_MODE is set to DISABLED, then the value of this field is ignored and the debug port remains fully locked.
AABBh = Access to AHB-AP, ET-AP, and PWR-AP via SWD is enabled;
FFFFh = Access to AHB-AP, ET-AP, and PWR-AP via SWD is disabled (all other values).

However, for some low-cost MCU like MSPM0 C series, this function is cut off because of cost. This application note explains how to implement encryption debugging through software to make this type of MCU without hardware support also meet the cybersecurity requirements.

Also, not only C but L and G series can also use this software method for a more flexible application.