MCU_RESETz release requires:
- All supplies have ramped to proper levels
- WKUP_HFOSC0 has a stable amplitude that propagates clocks into the core
MCU_RESETz must be held active (low) for a minimum of 1.2 µs.
When MCU_RESETz is asserted low, it is also immediately passed to the MAIN domain (similar to MCU_PORz asserting PORz).
- Much of the device is reset. Blocks that are not reset:
- Internal 12.5 MHz oscillator
- External HF oscillator
- Power monitoring circuitry (Bandgap, POR, POK, PGD, PRG)
- I/O cells and I/O pad configuration registers
- SERDES
- efuse Controller/storage
- PLLs
- Voltage Temperature Module
- Global Timebase Counter (GTC)
- Boot Mode Latches
- Debug Components
- PSRAM
Another group of modules is partially reset:
- PSC
- WKUP_DMSC0
- Debug
- STM
- MCU_CPSW0 (CPSW2G)
- CPSW0 (CPSW5G)
- Probe
- When MCU_RESETz is released, PSC modules release MOD_G_RST to the device.
- WKUP_DMSC0 is removed from reset; WKUP_DMSC0 ROM code execution begins. At this time MCU_RESETSTATz is de-asserted.
- WKUP_DMSC0 executes 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
- 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 MCU 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 MCU 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.