The following sequence of events occurs during the Cortex® processor boot:
- After power-on-reset (POR), the processor starts execution.
- The processor jumps to the first few lines (FFL) of code in the ROM to determine if the current boot is the first device-init boot or the second MCU boot. The determination is based on the Device-Init flag in a secure register. The Device-Init flag is set while out of POR. The registers in the secure region are accessible only in the device-init mode.
- If the current boot is the first boot, the processor executes the device-init code from ROM.
- At the end of the boot, the processor clears the Device-Init flag and changes the master ID of the processor and the DMA. These registers are part of the secure region.
- The processor resets itself, initiating a second boot.
- During the second boot, the processor rereads the Device-Init flag, the bit is cleared, and the processor obtains a different master ID.
- After executing FFL and the unsecure boot code, the processor jumps to the developer code (application).
- For the rest of the operation (until the next power cycle), the Cortex® mode is designated the MCU. During this phase, access to the secure region is restricted.