
AN5056 Rev 8 5/5
AN5056 List of figures
5
List of figures
Figure 1. SBSFU project structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Figure 2. Memory mapping example (NUCLEO-L476RG). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Figure 3. Linker file architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Figure 4. Mapping constraints with MPU isolation (NUCLEO-G071RB example) . . . . . . . . . . . . . . . 12
Figure 5. Mapping constraints for user application execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Figure 6. SBSFU regions (NUCLEO-L476RG mapping_sbsfu.icf) . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Figure 7. Firmware image slot definitions (NUCLEO-L476RG mapping_fwimg.icf). . . . . . . . . . . . . . 14
Figure 8. Firewall configuration constraint on dual bank products . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Figure 9. Firewall configuration after bank swap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Figure 10. SECoreBin specific linker file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Figure 11. SBSFU specific linker file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Figure 12. UserApp specific linker file (NUCLEO-L476RG example) . . . . . . . . . . . . . . . . . . . . . . . . . 17
Figure 13. Multiple image configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Figure 14. STM32H7 Series dual-core adaptation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Figure 15. SBSFU configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Figure 16. Switching the cryptographic scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Figure 17. STM32L4 Series and STM32L0 Series security configuration (app_sfu.h) . . . . . . . . . . . . 23
Figure 18. STM32F4 Series, STM32F7 Series and STM32L1
Series security configuration (app_sfu.h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Figure 19. STM32G0 Series, STM32G4 Series, and STM32H7 Series
security configuration (app_sfu.h). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Figure 20. STM32WB Series security configuration (app_sfu.h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Figure 21. Option Bytes management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Figure 22. New firmware encryption-key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Figure 23. New private/public keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Figure 24. Key provisioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Figure 25. KMS specificities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Figure 26. STSAFE-A110 pairing keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Figure 27. Compiler optimizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Figure 28. Memory mapping adaptations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Figure 29. Checking the WRP protection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Figure 30. Debugging inside SECoreBin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Figure 31. User’s cryptographic scheme implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Figure 32. Example of memory mapping optimization on NUCLEO-G071RB – 2 images . . . . . . . . . 37
Figure 33. IDE adaptations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Figure 34. Boot time. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Figure 35. Vector table position update (NUCLEO-L476RG example) . . . . . . . . . . . . . . . . . . . . . . . . 40
Figure 36. User application binary file length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Figure 37. IDE adaptations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Figure 38. Free Flash pages (NUCLEO-L476RG example) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Figure 39. UserApp firmware download overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Figure 40. Firmware version change . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Figure 41. Validation menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46