2.9.1.4 NVM Boot Sequence
To identify a valid bootstrap in external non-volatile memory and launch it, the ROM code follows a specific sequence of operations called the “NVM Boot Sequence”.
For a description of the list and order of the NVM used during the NVM Boot Sequence, see Boot Configuration.
- Single Bootstrap (default mode)
- Dual Bootstrap
- Anti-Rollback
The ROM code first initializes the PIOs related to the NVM device. Then, it configures the appropriate peripheral depending on the NVM and tries to access this memory. If the initialization fails, it restores the reset values for the PIO and the peripheral settings, and then tries the same operations on the next NVM in the boot sequence.
If the initialization is successful, the ROM code reads the NVM and determines if it contains a valid bootstrap.
If the NVM does not contain a valid bootstrap, the ROM code restores the reset value for the peripherals and then performs the same operations for the next NVM of the boot sequence.
If a valid bootstrap is found, it is loaded from the NVM into the internal SRAM0 and executed by branching at address 0x0000_0000 after remap.
The code size must be lower than the maximum bootstrap size. See Software Considerations.