XilPM Versal ACAP APIs - 2021.2 English

Xilinx Standalone Library Documentation: OS and Libraries Document Collection

Document ID
UG643
Release Date
2021-10-27
Version
2021.2 English

Xilinx Power Management (XilPM) provides the 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 Reference 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 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
XStatus XPm_ClockGetRate
  • const u32 ClockId
  • u32 *const Rate
XStatus 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
XStatus XPm_SetMaxLatency
  • const u32 DeviceId
  • const u32 Latency
XStatus XPm_GetOpCharacteristic
XStatus XPm_InitFinalize
  • void
XStatus XPm_RegisterNotifier
XStatus XPm_UnregisterNotifier
void XPm_InitSuspendCb
void XPm_AcknowledgeCb
  • const u32 Node
  • const XStatus Status
  • const u32 Oppoint
void XPm_NotifyCb
  • const u32 Node
  • const u32 Event
  • const u32 Oppoint
XStatus XPm_FeatureCheck
  • const u32 FeatureId
  • u32 * Version