Verify the contents of one or more whole flash MAIN sectors, using CRC32, with option to exclude the last 4 bytes, or check that the sectors are blank (all bytes are 0xFF).
The command perform one of these checks:
- Check that the specified
address range is blank (all bytes are 0xFF).
- Compute and check CRC32 over
a whole number of back-to-back flash MAIN sectors
- This can be used when
the flash programming tool is able to calculate CRC32
- Compute and check CRC32 over
a whole number of back-to-back flash MAIN sectors, minus 4 bytes
- This can be used when
the flash programming tools is unable to calculate CRC32, but the
expected CRC32 is stored in the last 4 bytes of the last sector
The command result is SUCCESS if the performed check is successful. The command result is also SUCCESS if the number of bytes to check is 0.
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-45 Parameter Words| Words | Bits | Field | Value | Description |
|---|
| 0 | 7:0 | cmdId | 0x10 | Command ID |
| 15:8 | respSeqNumber | User defined | Optional response sequence number, included in the
response header |
| 30:16 | reserved0 | 0 | Reserved |
| 31 | doBlankCheck | - | Check if the entire address range is blank (all
bytes are 0xFF), instead of CRC check |
| 1 | 31:0 | firstSectorAddr | - | Address of the first byte of the first
sector |
| 2 | 31:0 | byteCount | - | Number of bytes to
calculate CRC32 over, one of the following: - Whole number
of sectors
- Whole number
of sectors minus 4 bytes
|
| 3 | 31:0 | expCrc32 | - | Expected CRC32 |
Response Words
Table 9-46 Response Words| Words | Bits | Field | Value | Description |
|---|
| 0 | 7:0 | cmdId | 0x10 | 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: - INVALID_ADDRESS_PARAM if the firstSectorAddr parameter is
invalid
- INVALID_SIZE_PARAM if the byteCount parameter is
invalid
- For
doBlankCheck = 0: CRC32_MISMATCH if the calculated CRC32
does not match expCrc32
- For
doBlankCheck = 1: BLANK_CHECK_FAILED if one or more bits in
the address range 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 firstSectorAddr is
invalid: Fail with result INVALID_ADDRESS_PARAM
- If byteCount = 0: Succeed
with result SUCCESS
- If byteCount is invalid: Fail
with result INVALID_SIZE_PARAM
- If any restriction is
violated: Fail with result NOT_ALLOWED