Suspend and Power Off:
- Detect normal suspend (LPD on) vs. power off suspend (ZU+ off).
- Saving volatile memory contents and state information.
- Signal external power controller to power down the ZU+
Power On and Resume:
- Power up APU/RPU just like during POR
- Detect resume mode vs. POR.
- Restore volatile memory contents and state information.
When user performs the power-off suspend, the wake-up is triggered from the external entity instead of any SoC peripheral. This wake-up device is referred as NODE_EXTERN in the PMUFW.
When user sets the power-off suspend mode from the Linux user space, Linux will trigger SMC call to ATF to notify that Linux want to enter power-off suspend. So ATF will call set_wakeup_source only for NODE_EXTERN regardless of state of other wakeup sources. The PMUFW will check if NODE_EXTERN is only set for wakeup source then only it will proceed for power-off suspend during suspend procedure.