Typical Power Management API Call Flow - 2021.2 English

Zynq UltraScale+ MPSoC Software Developer Guide

Document ID
Release Date
2021.2 English

Any entity involved in power management is referred to as a node. The following sections describe how the power management framework (PMF) works with slave nodes allocated to the APU and the RPU.

Generally, the APU or the RPU inform the power management controller about their usage of a slave node, by requesting for it. They then inform the power management controller about the capability requirement needed from the slave node. At this point, the power management controller powers up the slave node so that it can be initialized by the APU or the RPU.

Requesting and Releasing Slave Nodes

When a PU requires a slave node, either peripheral or memory, it must request that slave node using the power management API. After the slave node has performed its function and is no longer required, it may be released, allowing the slave node to be powered off.

The following figure shows the call flow for a use-case in which the APU and the RPU are sharing an OCM memory bank, ocm0.
Figure 1. PM Framework Call Sequence for APU and RPU Sharing an OCM Memory Bank
Note: The ocm0 memory remains powered on after the APU calls XStatus XPm_ReleaseNode, because the RPU has also requested the same slave node. It is after the RPU also releases the ocm0 node that the PMU powers off the ocm0 memory.

Processor Unit Suspend and Resume

To allow a processor unit (PU) to be powered off, as opposed to just entering an idle state, an external entity is required to take care of the power-down and power-up transitions. For the Zynq UltraScale+ MPSoC, the platform management unit (PMU) is the responsible entity for performing all power state changes.

The processor unit (PU) notifies the PMU that a power state transition is being requested. The following figure illustrates the process.

Figure 2. APU Suspend and Resume Procedure

The Self-Suspending a CPU/PU section in Implementing Power Management on a Processor Unit provides more details on the suspend or resume procedure. Each PU usually depends on a number of slave nodes to be able to operate.