Verify the specified parts of the flash CCFG sector, using CRC32, or check that the entire sector is blank (all bytes are 0xFF).
CCFG is divided into four parts, each with an
embedded CRC32 that covers the data:
- Boot configuration part
- Data:
- Ccfg.bootCfg,
excluding Ccfg.bootCfg.crc32
- Embedded CRC32:
- Central part
- Data:
- Ccfg.hwOpts
- Ccfg.misc
- Ccfg.flashProt
- Ccfg.permissions
- Ccfg.hwInitCopyList
- Embedded CRC32:
- User record part
- Data:
- Ccfg.userRecord, excluding Ccfg.userRecord.crc32
- Embedded CRC32:
- Debug configuration part
- Data:
- Ccfg.debugCfg, excluding Ccfg.debugCfg.crc32
- Embedded CRC32:
The command performs one of these checks:
- Check that CCFG is blank (all
bytes are 0xFF).
- Compute and check CRC32 of
data, using only embedded CRCs:
- For all parts of
CCFG, or
- For all parts of CCFG
except the user record part
- Compute and check CRC32 of
data, using both embedded CRCs and expected CRCs (provided in the
command):
- For all parts of
CCFG, or
- For all parts of CCFG
except the user record part
The command result is SUCCESS if all performed checks are successful.
Restrictions
These conditions must be true:
- Fcfg.permissions.allowFlashVerify = 0xA (FCFG_PERMISSION_ALLOW)
- If CCFG is valid:
- Ccfg.permissions.allowFlashVerify= 0xA (CCFG_PERMISSION_ALLOW)
- If SCFG is valid:
- Scfg.permissions.allowFlashVerify= 0xA (SCFG_PERMISSION_ALLOW)
Parameter Words
Table 9-47 Parameter Words| Words | Bits | Field | Value | Description |
|---|
| 0 | 7:0 | cmdId | 0x11 | Command ID |
| 15:8 | respSeqNumber | User
defined | Optional response sequence number, included in the
response header |
| 16 | checkExpCrcs | - | Check CCFG data
also against the expected CRC32 fields the command: - 0: Use only
embedded CRCs
- 1: Use both
embedded CRCs and the expected CRCs
|
| 17 | skipUserRec | - | Skip CRC check of the user record part of
CCFG |
| 30:18 | reserved0 | 0b000000 | Reserved |
| 31 | doBlankCheck | - | Check if the entire CCFG sector is blank (all
bytes are 0xFF), instead of CRC checks |
| 1 | 31:0 | expBootCfgCrc32 | - | Expected CRC32 of
the boot configuration part: - If
checkExpCrcs = 1: Same value as in Ccfg.bootCfg.crc32
- Otherwise:
Don't care
|
| 2 | 31:0 | expCentralCrc32 | - | Expected CRC32 of
the central part: - If
checkExpCrcs = 1: Same value as in Ccfg.crc32
- Otherwise:
Don't care
|
| 3 | 31:0 | expUserRecCrc32 | - | Expected CRC32 of
the user record part: - If
skipUserRec = 0 and checkExpCrcs = 1: Same value as in
Ccfg.userRecord.crc32
- Otherwise:
Don't care
|
| 4 | 31:0 | expDebugCfgCrc32 | - | Expected CRC32 of
the debug configuration part: - If
checkExpCrcs = 1: Same value as in Ccfg.debugCfg.crc32
- Otherwise:
Don't care
|
Response Words
Table 9-48 Response Words| Words | Bits | Field | Value | Description |
|---|
| 0 | 7:0 | cmdId | 0x11 | Command ID, copied from the first command
parameter word |
| 15:8 | respSeqNumber | User
defined | Optional sequence number, copied from the first
command parameter word |
| 23:16 | result | - | Command result.
One of the common results, or: - For
doBlankCheck = 0: CRC32_MISMATCH if any of the performed CRC
checks failed
- For
doBlankCheck = 1: BLANK_CHECK_FAILED if one or more bits in
the CCFG sector are 0
- NOT_ALLOWED
if restrictions are not met
|
| 31:24 | dataWordCount | 0 | Size of additional response data, in number of
32-bit words |
Check Sequence
These checks are performed before command
execution, in the indicated order:
- If any restriction is
violated: Fail with result NOT_ALLOWED