Suspend-Resume Flow - 2023.1 English

Versal Adaptive SoC System Software Developers Guide (UG1304)

Document ID
UG1304
Release Date
2023-05-16
Version
2023.1 English

The following figure shows the detailed interactions between different processors for a suspend resume use case.

Figure 1. APU Suspend/Resume Flow

In this example, a peripheral is set up as a wake up source. Each step in the flow is explained as follows:

Suspend Flow

  1. APU saves the CPU context in the DDRMC.
  2. Peripheral is configured to be used as a wake up source.
  3. APU through the TF-A or XilPM client (if APU bare-metal application is running) informs PMC of its intent to suspend. PLM enables WFI interrupt.
  4. Informs PLM of the Wake Up Source.
  5. APU interrupts PSM by going into WFI state. If APU runs a bare-metal application, PSM can be interrupted by using XPm_SuspendFinalize API.
  6. 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

  1. The peripheral (configured by the APU to act as a wake up source) interrupts PSM.
  2. PSM handshakes with PLM to initiate APU power up.
  3. After the handshake, PSM powers up the APU. It disables power gating, deassert reset, and disables clock gating on the APU.
  4. APU resumes context stored in the DDRMC.