On MCU_PORz,
- the WKUP_DMSC0 is powered and clocked;
- the MCU_R5FSS0 is powered but not clocked;
- all processors on the MAIN side are powered down (and clock-gated):
- Dual A72 MPU Sub-systems
- R5FSS
The general behavior for coming out of an MCU_PORz reset is:
- Hardware initialization
ROM Boot Loader (or ROM Code): the purpose of the ROM Boot Loader is to load and check integrity of the Secondary Boot Loader (or application image).
- WKUP_DMSC0 Code executes, setting up MCU_R5FSS0 clocks and configuring security. WKUP_DMSC0 code passes Boot info to MCU_R5FSS0 and releases the MCU_R5FSS0 clocks.
- MCU_R5FSS0 ROM reads
MCU_BOOTMODE pins and if the boot is not specified as MCU-Only, the
MCU_R5FSS0 ROM also reads the BOOTMODE pins. The Bootmode pins define
the peripherals involved in the boot and the associated media (see ROM Code boot
modes). The media holds the secondary boot loader (SBL) or the entire
application image. The WKUP_DMSC0 firmware needs to be incorporated in this
code. For MCU_R5FSS ROM functional description, refer to Initialization.
- Once the Secondary Boot Loader has been verified, the WKUP_DMSC0 issues a clock stop to the MCU_R5FSS0 and resets the MCU_R5FSS0.
Secondary Boot Loader: the secondary boot loader configures the device for application.
The previous description gives the high-level behavior for the MCU_PORz reset. Other resets are almost a subset of this procedure. Section 5.3.6.2, Section 5.3.6.3, Section 5.3.6.4, and Section 5.3.6.5 explain this sequence in more detail.