XilPM Versal ACAP APIs - 2021.1 English

Xilinx Standalone Library Documentation OS and Libraries Document Collection (UG643)

Document ID
UG643
Release Date
2021-06-16
Version
2021.1 English

Xilinx Power Management (XilPM) provides Embedded Energy Management Interface (EEMI) APIs for power management on Versal ACAP devices. For more details about EEMI, see the Embedded Energy Management Interface (EEMI) API User Guide (UG1200).

The platform and power management functionality used by the APU/RPU applications is provided by the files in the 'XilPM<version>/versal/client' folder, where '<version>' is the version of the XilPM library.

Table 1. Quick Function Reference
Type Name Arguments
XStatus XPm_InitXilpm
  • XIpiPsu * IpiInst
enum XPmBootStatus XPm_GetBootStatus
  • void
XStatus XPm_GetChipID
  • u32 * IDCode
  • u32 * Version
XStatus XPm_GetApiVersion
  • u32 * Version
XStatus XPm_RequestNode
  • const u32 DeviceId
  • const u32 Capabilities
  • const u32 QoS
  • const u32 Ack
XStatus XPm_ReleaseNode
  • const u32 DeviceId
XStatus XPm_SetRequirement
  • const u32 DeviceId
  • const u32 Capabilities
  • const u32 QoS
  • const u32 Ack
XStatus XPm_GetNodeStatus
XStatus XPm_ResetAssert
  • const u32 ResetId
  • const u32 Action
XStatus XPm_ResetGetStatus
  • const u32 ResetId
  • u32 *const State
XStatus XPm_PinCtrlRequest
  • const u32 PinId
XStatus XPm_PinCtrlRelease
  • const u32 PinId
XStatus XPm_PinCtrlSetFunction
  • const u32 PinId
  • const u32 FunctionId
XStatus XPm_PinCtrlGetFunction
  • const u32 PinId
  • u32 *const FunctionId
XStatus XPm_PinCtrlSetParameter
  • const u32 PinId
  • const u32 ParamId
  • const u32 ParamVal
XStatus XPm_PinCtrlGetParameter
  • const u32 PinId
  • const u32 ParamId
  • u32 *const ParamVal
XStatus XPm_DevIoctl
  • const u32 DeviceId
  • const pm_ioctl_id IoctlId
  • const u32 Arg1
  • const u32 Arg2
  • u32 *const Response
XStatus XPm_ClockEnable
  • const u32 ClockId
XStatus XPm_ClockDisable
  • const u32 ClockId
XStatus XPm_ClockGetStatus
  • const u32 ClockId
  • u32 *const State
XStatus XPm_ClockSetDivider
  • const u32 ClockId
  • const u32 Divider
XStatus XPm_ClockGetDivider
  • const u32 ClockId
  • u32 *const Divider
XStatus XPm_ClockSetParent
  • const u32 ClockId
  • const u32 ParentIdx
XStatus XPm_ClockGetParent
  • const u32 ClockId
  • u32 *const ParentIdx
int XPm_ClockGetRate
  • const u32 ClockId
  • u32 *const Rate
int XPm_ClockSetRate
  • const u32 ClockId
  • const u32 Rate
XStatus XPm_PllSetParameter
XStatus XPm_PllGetParameter
XStatus XPm_PllSetMode
  • const u32 ClockId
  • const u32 Value
XStatus XPm_PllGetMode
  • const u32 ClockId
  • u32 *const Value
XStatus XPm_SelfSuspend
  • const u32 DeviceId
  • const u32 Latency
  • const u8 State
  • const u64 Address
XStatus XPm_RequestWakeUp
  • const u32 TargetDevId
  • const u8 SetAddress
  • const u64 Address
  • const u32 Ack
void XPm_SuspendFinalize
  • void
XStatus XPm_RequestSuspend
  • const u32 TargetSubsystemId
  • const u32 Ack
  • const u32 Latency
  • const u32 State
XStatus XPm_AbortSuspend
XStatus XPm_ForcePowerDown
  • const u32 TargetDevId
  • const u32 Ack
XStatus XPm_SystemShutdown
  • const u32 Type
  • const u32 SubType
XStatus XPm_SetWakeUpSource
  • const u32 TargetDeviceId
  • const u32 DeviceId
  • const u32 Enable
XStatus XPm_Query
  • const u32 QueryId
  • const u32 Arg1
  • const u32 Arg2
  • const u32 Arg3
  • u32 *const Data
int XPm_SetMaxLatency
  • const u32 DeviceId
  • const u32 Latency
XStatus XPm_GetOpCharacteristic
int XPm_InitFinalize
  • void
int XPm_RegisterNotifier
int XPm_UnregisterNotifier
void XPm_InitSuspendCb
void XPm_AcknowledgeCb
  • const u32 Node
  • const XStatus Status
  • const u32 Oppoint
void XPm_NotifyCb
XStatus XPm_FeatureCheck
  • const u32 FeatureId
  • u32 * Version