MCU_PORz and PORz must be held low until:
- All supplies have ramped to proper levels
- WKUP_HFOSC0 has a stable amplitude that propagates clocks into the core
If the supplies and clock are already stable, MCU_PORz and/or PORz must be held active (low) for a minimum of 1.2 µs.
- When MCU_PORz is asserted low, WKUP_CTRL_MMR0 and MCU_CTRL_MMR0 registers are reset; a bit within the WKUP_CTRL_MMR0 registers is reset which allows PORz to propagate to the MAIN domain without delay. In the MAIN domain, CTRL_MMR0 registers are reset.
- The MCU_BOOTMODE and BOOTMODE pins are latched on the
rising edge of MCU_PORz.
- The release of MCU_PORz begins a read of fuse values to register files; several different chains of e-fuse values are registered in parallel read sequences. Values are consumed by different blocks at various points in this sequence. In parallel and based upon the release of PORz, the MAIN domain e-fuse controller initiates a read of its e-fuse values.
- LBIST/PBIST checks of the WKUP_DMSC0 and MCU_R5FSS0 cores and memories are run in the WKUP/MCU domain; in the MAIN domain, the BIST engines are controlled by the application software.
- WKUP_PSC0 is initialized (and PSC0 in the MAIN domain is initialized); concretely, the PSC modules (both WKUP_PSC0 and PSC0) configure default power states and LPSC (clocking) states.
- After power domain and clock domain initialization is completed, PSC modules release resets to the device (MOD_POR_RST, MOD_G_RST).
- WKUP_DMSC0 is removed from reset; WKUP_DMSC0 ROM code execution begins. At this time MCU_RESETSTATz is de-asserted.
- WKUP_DMSC0 executes WKUP_DMSC0 ROM.
- Configures MCU_PLL0, MCU_PLL0_HSDIV1, and WKUP_PLLCTRL0 (proper clock frequency for MCU_R5FSS0).
- Configures firewalls and message manager.
- Uses the message manager to pass Boot info to MCU_R5FSS0 ROM.
- Based upon
MCU_BOOTMODE[06],
- if MCU_BOOTMODE[06] = 0,
the user has requested a normal boot. Wait for MAIN to be released from
reset (duration limited by WKUP_DMSC0 timeout).
- if MCU_BOOTMODE[06] = 1,
MCU-Only boot is requested. There is no timeout nor dependency upon MAIN
release from power on reset.
- MCU_R5FSS0_CORE0 is released from reset and begins to execute ROM
- Based upon the value of MCU_BOOTMODE pins (and MAIN
domain BOOTMODE pins if MCU_BOOTMODE[06] = 0), the R5F ROM code
configures peripherals and PLLs to enable loading the external
code.
- Secondary boot-loader is loaded from external memory
- MCU ROM requests WKUP_DMSC0 for loaded code
authentication
- WKUP_DMSC0 stops clocks to MCU_R5FSS0
- WKUP_DMSC0 issues an MCU_R5FSS0 reset
- MCU_R5FSS0_CORE0 begins executing secondary boot-loader.
At the end of this sequence, MCU_R5FSS0 is executing the secondary bootloader. The control of the device now passes to the customer code.
Note: On warm resets (except those caused by a VTM Thermal over-temperature), the output of various PLLs are either bypassed or left unaffected. For more details, see Section 5.3.7, PLL Behavior on Reset.
Note: Reset Isolated domains are isolated during a MCU_RESETz (or any warm reset) event.