2.4.3 User Secure Boot
(Ask a Question)This mode allows users to implement their own custom secure boot, and the user secure boot code is placed in the sNVM. The sNVM is a 56 Kbytes non-volatile memory that can be protected by the built-in physically unclonable function (PUF). This boot method is considered secure because sNVM pages marked as ROM are immutable. On power-up, the System Controller copies the user secure boot code from sNVM to Data Tightly Integrated Memory (DTIM) of the E51 Monitor core. E51 starts executing the user secure boot code.
If the size of the user secure boot code is more than the size of the DTIM, then the user needs to split the boot code into two stages. The sNVM may contain the next stage of the user boot sequence, which may perform authentication of the next boot stage using the user authentication/decryption algorithm.
If authenticated or encrypted pages are used, then the same USK key (that is, U_MSS_BOOT_SNVM_USK) must be used for all authenticated/encrypted pages.
If authentication fails, the MSS Core Complex can be placed in reset, and the BOOT_FAIL tamper flag can be raised. This mode is implemented using the U_MSS_BOOTMODE=2 boot option.
| Offset (bytes) | Size (bytes) | Name | Description |
|---|---|---|---|
| 0 | 1 | U_MSS_BOOT_SNVM_PAGE | Start page in SNVM |
| 1 | 3 | RESERVED | For alignment |
| 4 | 12 | U_MSS_BOOT_SNVM_USK | For authenticated/encrypted pages |
The following figure shows the user secure boot flow.
