XilPM Versal Adaptive SoC APIs - XilPM Versal Adaptive SoC APIs - 2026.1 English - UG643

Standalone Library Documentation: BSP and Libraries Document Collection (UG643)

Document ID
UG643
Release Date
2026-06-23
Version
2026.1 English
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.
Tip: For the complete list of nodeids, refer xpm_nodeid.h file located in the xilpm<version>/versal_commom/common folder.
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_DevIoctl2
  • u32 DeviceId
  • pm_ioctl_id IoctlId
  • const u32 * Payload
  • u32 *const Response
  • u32 PayloadSize
  • u32 ResponseSize
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_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_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
  • const u32 DeviceId
  • const enum XPmOpCharType Type
  • u32 *const Result
XStatus XPm_InitFinalize
  • void
XStatus XPm_RegisterNotifier
XStatus XPm_UnregisterNotifier
void XPm_InitSuspendCb
  • const enum XPmSuspendReason Reason
  • const u32 Latency
  • const u32 State
  • const u32 Timeout
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