SWCU195A December 2024 – May 2025 CC2744R7-Q1 , CC2745P10-Q1 , CC2745R10-Q1 , CC2745R7-Q1 , CC2755R10
| SACI Command | cmdId | Category | Parameters | Restrictions | Description |
|---|---|---|---|---|---|
| SACI_CMD_MISC_NO_OPERATION | 0x01 | - | - | - | Performs no operation. |
| TI Internal Command | 0x02 | - | - | - | - |
| SACI_CMD_MISC_GET_DIE_ID | 0x03 | Information | - | Tested device only | Get the 128-bit die ID which identifies uniquely the die on the wafer |
| SACI_CMD_MISC_GET_CCFG_USER_REC | 0x04 | Information | - | CCFG valid | Get the user record in CCFG, up to 128 bytes (in increments of 16 bytes) |
| SACI_CMD_HSM_GET_SYS_INFO | 0x22 | Information | - | - |
Get the HSM System Information which includes error state and versioning information |
| SACI_CMD_GET_SECBOOT_HSMFW_UPDATE_STATUS | 0x23 | Information | - | - |
Get the current value of the ROM API status. Useful for debugging Secure Boot update or HSM FW update failures |
| TI Internal Command | 0x05 | - | - | - | - |
| TI Internal Command | 0x06 | - | - | - | - |
| SACI_CMD_DEBUG_REQ_KEY_ID | 0x1D | Debug/control | authLevel | CCFG/SCFG valid and Ccfg.debugCfg.authorization one of (0xA5, 0x5A, 0xC3) | Request key ID for debug auth |
| SACI_CMD_DEBUG_REQ_CHALLENGE | 0x1E | Debug/control | authLevel | CCFG/SCFG valid and Ccfg.debugCfg.authorization one of (0xA5, 0x5A) | Trigger the start of the debug auth process |
| SACI_CMD_DEBUG_SUBMIT_CHALLENGE_RESP | 0x1F | Debug/control |
pubKeyByteCount, signatureByteCount, publicKey, signature |
CCFG/SCFG valid and Ccfg.debugCfg.authorization one of (0xA5, 0x5A) and ongoing debug auth process | Complete the debug auth process |
| SACI_CMD_DEBUG_CLOSE_SESSION | 0x20 | Debug/control | - | - | Close the persistent debug session |
| SACI_CMD_DEBUG_EXIT_SACI_HALT | 0x07 | Debug/control | - | Debugging allowed and valid user application | Exit SACI for debug mode, and wait for the host to setup breakpoints or run/single-step CPU through AHB-AP at the first instruction of the application |
| SACI_CMD_DEBUG_EXIT_SACI_SHUTDOWN | 0x08 | Debug/control | - | Wakeup from shutdown power state due to SWD activity | Exit SACI and re-enter shutdown power state |
| SACI_CMD_FLASH_ERASE_CHIP | 0x09 | Flash programming | retainSelMainSectors, key | Chip erase allowed | Perform chip erase: erases all MAIN and NON-MAIN sectors. Optionally retaining sectors specified by CCFG |
| SACI_CMD_FLASH_ERASE_MAIN_APP | 0x1C | Flash programming |
retainSelMainSectors, key | Chip erase allowed |
Erases all MAIN sectors. Optionally retaining sectors specified by CCFG. Never erases the HSM FW. |
| SACI_CMD_FLASH_PROG_CCFG_SECTOR | 0x0C | Flash Programming |
skipUserRec, key, data | CCFG already erased | Program the entire CCFG sector with option to leave the user record region unprogrammed |
| SACI_CMD_FLASH_PROG_CCFG_USER_REC | 0x0D | Flash programming |
key, data | CCFG.userRecord unprogrammed | Program the user record part of the CCFG sector |
| SACI_CMD_FLASH_PROG_SCFG_SECTOR | 0x1A | Flash programming |
byteCount, key, data | SCFG already erased | Program the entire SCFG sector with option to leave the Scfg.keyRingCfg region unprogrammed |
| SACI_CMD_FLASH_PROG_MAIN_SECTOR | 0x0E | Flash programming |
byteCount, key, firstByteAddr, data | Flash already erased and CCFG/SCFG allows flash programming | Program all or a part of one MAIN sector |
| SACI_CMD_FLASH_PROG_MAIN_PIPELINED | 0x0F | Flash programming |
key, firstSectorAddr | Flash already erased and CCFG/SCFG allows flash programming | Program multiple back-to-back MAIN sectors of flash (full programming speed) |
| SACI_CMD_HSM_FW_PROVISION | 0x21 | Flash programming | huiSize |
None of the following commands during the current SACI session:
|
Provision and/or reprogram the HSM FW |
| SACI_CMD_FLASH_VERIFY_MAIN_SECTORS | 0x10 | Flash programming |
doBlankCheck, firstSectorAddr, byteCount, expCrc32 | Flash erased (blank check only) and CCFG/SCFG allows flash verify |
Verify the contents of one or more whole (with option to exclude last 4 bytes) flash MAIN sectors against supplied CRC32 or check that all sectors are blank (all bytes are 0xFF) |
| SACI_CMD_FLASH_VERIFY_CCFG_SECTOR | 0x11 | Flash programming |
checkExpCrcs, skipUserRec, doBlankCheck, expBootCfgCrc32, expCentralCrc32, expUserRecCrc32, expDebugCfgCrc32 | Flash erased (blank check only) and CCFG/SCFG allows flash verify | Verify the contents of records within the CCFG sector against supplied CRC32 values or check that the CCFG sector is blank (all bytes are 0xFF) |
| SACI_CMD_FLASH_VERIFY_SCFG_SECTOR | 0x1B | Flash programming |
checkExpCrcs, expCrc32 | CCFG/SCFG allows flash verify | Verify the contents of records within the SCFG sector against supplied CRC32 values. |
| TI Internal Command | 0x12 | - | - | - | - |
| TI Internal Command | 0x13 | - | - | - | - |
| SACI_CMD_BLDR_APP_RESET_DEVICE | 0x14 | Debug/control | waitForSwdDisconnect | - | Reset the device and reboot (possibly into SACI again) |
| SACI_CMD_BLDR_APP_EXIT_SACI_RUN | 0x15 | Debug/control | - | A valid application must be present, no flash programming commands in current SACI session | Exit SACI and run application |
| TI Internal Command | 0x16 | - | - | - | - |
| SACI_CMD_MODE_REQ_TOOLS_CLIENT | 0x17 | Test Mode | - | Flash erased or CCFG/SCFG allows tool client mode |
Locks all accesses to flash, erases SRAM and then opens the device for debug access. Used by TI development tools |
| TI Internal Command | 0x18 | - | - | - | - |