14.4.1 Holding Registers
The RoT Holding Registers store eFuse values that auto-loaded on a POR or when the EN_LD_ALL/EN_LD register bits are set to perform a manual load operation.
- Unique ID
- 16-bit device ID
- 256-bit Storage Root Key (SRK)
- 384-bit public boot key
- 15-bit lifecycle counter
- 255-bit anti-rollback counter
- Security/RoT configuration
The holding registers are governed by their read and write access permissions. The holding registers are loaded from their corresponding fuses if any of the following conditions are met:
- After a POR during the Auto-Load state
- Explicit FW setting of EN_LD_ALL or EN_LD bits
- After fuse programming if EN_LD_ALL or EN_LD bits are set in the same cycle as EN_PGM being set
The above scheme minimizes the power and boot time associated with an eFuse load operation.
Holding registers can also be written by firmware dictated by the write locks as specified in the following table.
| Secure Element | Size in Bits | Provisioner | To Program Lock |
|---|---|---|---|
| Unique ID | 128 | MCHP | Yes |
| Device ID | 16 | MCHP | Yes |
| SECCFG | 32 | Code signer (MCHP, 3rd Parties, Customers) | No |
| Anti Rollback Counter | 255 | Code signer (MCHP, 3rd Parties, Customers) | No |
| Life Cycle Counter | 15 | Code signer (MCHP, 3rd Parties, Customers) | No |
| Secure Boot Key | 384 | Code signer (MCHP, 3rd Parties, Customers) | Yes |
| Storage Root Key | 256 | MCHP | Yes |
All the holding registers are reset by POR. All the regular SFRs in the macro are reset by a system reset signal unless specifically mentioned otherwise.
