The ROM code is the first code executed by the Arm® Cortex®-M55 core(s) after system reset.
The boot ROM code is the initial code executed on Arm® Cortex®-M55 at power-on or reset of the STM32N6 MCU or Arm® Cortex®-M55. This boot ROM code resides in the STM32N6 on-chip boot ROM IP and implements the first stage of a multistage boot sequence.
The main boot ROM code features and functions are:
- Basic system initialization
- Detection of reset source and chip life cycle
- Handling life cycle
- Loading image from a connected flash memory device supporting various types of memory devices
- Downloading image from a host over serial boot interfaces
- Validation of signed images using hardware accelerators for cryptographic functions
- Optional decryption of signed images
- Support of developer mode
- Support of configuration options (customization), mainly via fuses
- Support of ST key provisioning
- Support of SSP, OEM key provisioning
The table below details the possible options for some of these features.
Image loading | Supported flash memories | XSPI serial NOR
XSPI Hyperflash eMMC (up to JEDEC v5.1) on SDMMC1 or SDMMC2 SD-Card (up to SD standard v6.0) on SDMMC1 |
Supported serial interfaces and protocols |
USB : USB DFU 1.1 on USB 2.0 OTG HS UART: STM32 serial protocol on USART1, USART2, UART4 | |
STM32 header | v2.3 | |
Image max size (with STM32 header) | 512 KB | |
Secure boot | FSBL authentication | ECDSA 256 or 384 bits |
Revocation of FSBL authentication key | Up to 8 keys | |
FSBL anti-rollback mechanism | Up to 32 versions | |
FSBL decryption | AES 128 or 256 bits |
For full details, please refer to the User Manual : DM01007578 - UM3234 - "How to proceed with boot ROM on STM32N6 MCUs".