The following figure shows the detailed interactions between different processors for a suspend resume use case.
Figure 1.
Versal ACAP APU Suspend/Resume
Flow
In this example, a peripheral is set up as a wake up source. Each step is explained as follows:
- Suspend Flow
-
- APU saves the CPU context in DDR.
- Peripheral is configured to be used as a wake up source
- APU through ATF or XilPM client (if APU bare-metal application is running) informs PMC of its intent to suspend. PLM enables WFI interrupt.
- Informs PLM of the Wake Up Source.
- APU interrupts PSM by going into WFI state. If APU runs
a bare-metal application, PSM can be interrupted by using
XPm_SuspendFinalize
API. - After receiving the interrupt, a handshake between PSM and PLM occurs through the IPI. PSM powers down by power implementing power gating, asserting reset to APU and clock gating APU.
- Wake Up Flow
-
- The peripheral (configured by the APU to act as a wake up source) interrupts PSM.
- PSM handshakes with PLM to initiate APU power up.
- After the handshake, PSM powers up the APU. It disables power gating, deassert reset, and disables clock gating on the APU.
- APU resumes context stored in the DDR.