Boot and root secure services (RSS)
The RSS is embedded in the secure information block, part of the secure flash memory area and is programmed during ST production. For more details, refer to the document AN5347_General-info.html#id_13614__entry_kq3_jtd_wkb, AN5347_General-info.html#id_13614__entry_vrc_1mc_4qb, or AN5347_General-info.html#id_13614__entry_t3w_t4m_g2c.
The RSS enables for example the secure firmware installation (SFI) thanks to the RSS extension firmware (RSSe SFI). This feature allows the customers to protect the confidentiality of the firmware to be provisioned into the STM32 device, when the production is subcontracted to a non-trusted third party. Refer to the application note Overview secure firmware install (SFI) (AN4992) for more details.
| RDP level | Boot address |
|---|---|
| 0 | Any boot address |
| 0.5 | Only RSS or secure flash memory |
| 1 | |
| 2 |
When TrustZone is enabled by setting the TZEN option bit, the boot space must be in a secure area.
For STM32L5/U5, SECBOOTADD0[24:0] option bytes are used to select the boot secure memory address. To increase the security and establish a root of trust (RoT), a unique boot entry option must be selected regardless the other boot options. This is done by setting the BOOT_LOCK option bit in the FLASH_SECBOOTADD0R register. This bit must only be set by a secure access.
For STM32U3, ADD[24:0] option bytes in the SBOOT0R register are used to select the boot secure memory address. To increase the security and establish a root of trust (RoT), a unique boot entry option must be selected regardless the other boot options. This is done by setting the BOOT_LOCK option bit in the FLASH_SBOOT0R register. This bit must only be set by a secure access.
For STM32L5, the BOOT_LOCK option bit, once set, cannot be cleared. The unique boot entry address is the address programmed in SECBOOTADD0[24:0] option bytes. For STM32U5/U3, BOOT_LOCK can only be cleared in RDP level 0.

