Changing Requirements - 2023.2 English

Versal Adaptive SoC System Software Developers Guide (UG1304)

Document ID
Release Date
2023.2 English

When a subsystem is using a peripheral node, its requirement on the capability of the node can change. For example, an interface port might go into a low power state, or even be completely powered off, if the interface is not being used. The subsystem can use XPm_SetRequirement to change the capability requirement of the peripheral node. Typically, the subsystem would not release the peripheral node if it will be changing the requirement again in the future.

The following example call changes the requirement for the node argument so it is powered up and accessible to the processor node.

XPm_SetRequirement(node, PM_CAP_ACCESS, 0, REQUEST_ACK_NO);
Important: Setting the requirements of a node to zero is not equivalent to releasing the peripheral node. By releasing the peripheral node, a subsystem might be allowing other subsystems to use the device exclusively.

When multiple subsystems share a peripheral node (this applies mostly to memories), the PMC selects a power state for the peripheral node that satisfies all requirements of the requesting subsystems.

Requirements on a peripheral node include capability as well as latency. Capability requirements may include a top capability state, some intermediate capability states, an inactive state (but with the configuration retained), and off state. Latency requirement specifies the maximum time that the peripheral node has to switch to the top capability state from any other state. If this time limit cannot be met, the PMC will leave the peripheral node in the top capability state regardless of other capability requirements.

For more information about XPM_SetRequirement, see BSP and Libraries Document Collection (UG643).