Prerequisites:
Factory Reset must be enabled in BCR configuration (either "Enabled" or "Enabled with
Password")
Procedure:
- Invoke the bootloader using
one of the supported invocation methods (GPIO, Application request, or DSSM)
- Establish connection using
the Connection command (CMD_CONNECTION, 0x12)
- Unlock the BSL using the
Unlock Bootloader command (CMD_UNLOCK_BSL, 0x21) with the current password
- Execute Factory Reset command
(CMD_FACTORY_RESET, 0x30) to erase the NONMAIN flash configuration
- This erases both MAIN
flash (application memory) and NONMAIN flash (configuration memory)
- Provide the factory
with a reset password if BCR configuration requires it (default: all
0xFF)
- After factory reset,
the BSL password reverts to default (hash of all 0xFF)
- Prepare the new BSL
configuration structure and calculate CRC32 for the BSL configuration:
- Calculate
CRC32-ISO3309 over the entire configuration structure (excluding the
CRC field itself)
- Use bit-reversed
configuration with initial seed 0xFFFFFFFF
- Configuration
structure size: 76 bytes (from 0x60100C00 to 0x60100C4B)
- Store the calculated
CRC32 value in the CRC field (0x60100C4C)
- Program the new BSL
configuration to NONMAIN flash using the Program Data command
(CMD_PROGRAM_DATA, 0x20):
- Start Address:
0x60100C00
- Data: Complete BSL
configuration structure (80 bytes total, including CRC)
- Confirm the data is
16-byte aligned as required by the Program Data command
- Reset the device to apply the
new configuration
Note:
- The CRC field must be recalculated whenever any configuration field is
modified
- An incorrect CRC results in
catastrophic error and permanent device lockout
- If Factory Reset is not
enabled in BCR configuration, NONMAIN flash programming fails
- Confirm the entire
configuration structure is programmed, not just individual fields