SPRUJF2A March 2026 – March 2026 AM13E23019
DSSM commands are serviced by the bootcode upon a BOOTRST. If passwords are enabled for DSSM commands, the commands do not execute until the correct password sequence is entered. Refer to Table 33-12for possible DSSM commands and values.
| DSSM Command | Command ID |
|---|---|
| Wait For Debug | 0x03 |
| Invoke BSL | 0x04 |
| Factory Reset | 0x05 |
| Mass Erase | 0x06 |
| Command Debug | 0x07 |
| Get Lifecycle | 0x0A |
| Get Device ID | 0x0B |
| Key Provisioning | 0x0E |
| Convert Bad Device | 0x15 |
| Update Active Key Revision | 0x16 |
| Update Application Revision | 0x17 |
| Data Exchange | 0x77 |
The "Invoke BSL" command invokes the BSL instead of using GPIO.
The "Factory Reset" command erases all contents within MAIN and NONMAIN flash memory. Then NONMAIN memory is re-populated with default contents. This command is useful in the cases of:
The "Mass Erase" command erases all contents within the MAIN memory but NONMAIN remains untouched. This command is useful in the case of:
The "Command Debug" command allows debugger access for a session when debug is locked.
Data exchange is the only DSSM command that does not require a BOOTRST to process the command. This command is used in combination with factory reset, mass erase, or password authentication which do require a password. After sending the initial command to the mailbox and performing a reset, the user must begin sending the password to the TXDATA register. After each word 0x77 must be written to the TXCTL register.
The "Wait for Debug" command resets the peripherals defined by the reset level and then forces the device into the reset handler.
The "Get Lifecycle" command returns the current lifecycle of the device.
The "Get Device ID" command returns the unique ID of the device.
The "Key Provisioning" command provisions AES keys into NONMAIN memory.
The "Convert Bad Device" command designates a device as decommissioned.
The "Update Active Key Revision" command updates the key revision and changes the active key.
The "Update Application Revision" command updates the application revision.
The user can also create a custom DSSM command and perform actions defined by the user. This is done by having the debugger communicate to the M33 core through the TXDATA and TXCTL registers. The core can then receive messages from the debugger and send responses back by using the RXDATA and RXCTL registers for the debugger to read. CPU interrupt events can be configured for activity seen in the TX_DATA buffer, RX_DATA buffer, and DAP connection.