2.4.3 User Secure Boot

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.

Table 2-6. U_MSS_BOOTCFG Usage in User Secure Boot
Offset (bytes)Size (bytes)NameDescription
01U_MSS_BOOT_SNVM_PAGEStart page in SNVM
13RESERVEDFor alignment
412U_MSS_BOOT_SNVM_USKFor authenticated/encrypted pages

The following figure shows the user secure boot flow.

Figure 2-25. User Secure Boot