The BCR configuration data and BSL configuration data structures in the NONMAIN
memory each include a CRC value corresponding to the CRC digest of the respective
structure. During the device boot process, the BCR will compute the CRC digest of the
data structures and compare it with the stored CRC values before the data contained
within the structures is trusted for use.
BCR Configuration CRC Fail
Handling
In the event that the BCR
configuration data (which contains the SWD policies, BSL enable/disable policy, and
flash memory protection and integrity check policies) fails its CRC check during
boot, a catastrophic boot error results and the following limitations are imposed:
- The error cause will be
logged in the CFG-AP as a boot diagnostic
- The BSL will not be invoked,
even if it was configured to be enabled
- The user application is not
started
- No application debug access
is enabled
- A pending SWD factory reset
command, if enabled or enabled with password, is honored
- A pending TI failure analysis
flow entry, if enabled, is honored
- The boot process will
re-attempt up to 3 times
- If the 2nd or 3rd
attempt pass, the device boots normally
- If the 3rd attempt
does not pass, no further boot attempts are made until the next BOR
or POR
The benefit of the this CRC check is that any bit flips in configuration data,
such as the static write protection configuration (which is a pillar of secure
boot), may be detected with high confidence during the boot process. The fail
handling procedure explicitly prevents the BSL and user application from running,
and the only supported options (SWD factory reset and TI FA) are protected by
16-bit
pattern-match fields.
BSL Configuration CRC Fail
Handling
If the BSL configuration data (which
contains the BSL password and BSL policies) fails the CRC check during BSL
invocation, a catastrophic boot error results and the following limitations are
imposed:
- The error cause is logged in the
CFG-AP as a boot diagnostic
- The BSL is not invoked, even if
it was configured to be enabled
- The user application is not
started
- No application debug access is
enabled
- The boot process re-attempts up
to 3 times
- If the 2nd or 3rd attempt
pass, the device boots normally
- If the 3rd attempt does
not pass, no further boot attempts are made until the next BOR or
POR
The benefit of this CRC check s that
any bit flips in the BSL configuration data may be detected with high confidence
during the invoke process. The failure handling procedure prevents the BSL from
starting with invalid data which could lead to a loss of security.
TI Factory Trim Data CRC Fail
Handling
In addition to the user-specified
configuration data, if the TI factory trim fails its CRC check during boot, a
catastrophic boot error will also result with the following limitations:
- The error cause will be
logged in the CFG-AP as a boot diagnostic
- The BSL will not be invoked,
even if it was configured to be enabled
- The user application is not
started
- No application debug access
is enabled
- A pending TI failure analysis
flow entry, if enabled, is honored
- The boot process will
re-attempt up to 3 times
- If the 2nd or 3rd
attempt pass, the device boots normally
- If the 3rd attempt
does not pass, no further boot attempts are made until the next BOR
or POR