XilPM API Version Detail - 2023.1 English

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

Document ID
UG643
Release Date
2023-05-16
Version
2023.1 English

XilPM EEMI API Version Detail

This section provide details of EEMI API version and the history for PM APIs of XilPM library.

NAME ID Platform Version Description
PM_GET_API_VERSION 0x1 Versal adaptive SoC, Zynq UltraScale+ MPSoC 1 This API is used to request the version number of the API.
PM_SET_CONFIGURATION 0x2 Zynq UltraScale+ MPSoC 1 This API is used to configure the power management framework.
PM_GET_NODE_STATUS 0x3 Versal adaptive SoC, Zynq UltraScale+ MPSoC 1 This API is used to obtain information about current status of a device.
PM_GET_OP_CHARACTERISTIC 0x4 Versal adaptive SoC, Zynq UltraScale+ MPSoC 2 V1 -This API is used to gets operating characteristics of a device.

V2 - Added support of bitmask functionality, user can check the supported "type" first before performing the actual functionality.

PM_REGISTER_NOTIFIER 0x5 Versal adaptive SoC, Zynq UltraScale+ MPSoC 2 V1 -This API is used to register a subsystem to be notified about the device event .

V2 - Added support of event management functionality .

Note: V2 API is only supported in Versal and V1 API is only supported in Zynq UltraScale+ MPSoC.
PM_REQUEST_SUSPEND 0x6 Versal adaptive SoC, Zynq UltraScale+ MPSoC 1 This API is used to send suspend request to another subsystem.
PM_SELF_SUSPEND 0x7 Versal adaptive SoC, Zynq UltraScale+ MPSoC 2 V1 - This API is used to suspend a child subsystem.

V2 - Added support of cpu idle functionality during force powerdown .

Note: V2 API is only supported in Versal and V1 API is only supported in Zynq UltraScale+ MPSoC.
PM_FORCE_POWERDOWN 0x8 Versal adaptive SoC and Zynq UltraScale+ MPSoC 2 V1 -This API is used to Powerdown other processor or node.

V2 - Added support of cpu idle functionality during force powerdown.

Note: V2 API is only supported in Versal and V1 API is only supported in Zynq UltraScale+ MPSoC.
PM_ABORT_SUSPEND 0x9 Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to aborting suspend of a child subsystem.
PM_REQUEST_WAKEUP 0xA Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to start-up and wake-up a child subsystem.
PM_SET_WAKEUP_SOURCE 0xB Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to set wakeup source.
PM_SYSTEM_SHUTDOWN 0xC Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to shutdown or restart the system .
PM_REQUEST_NODE 0xD Versal adaptive SoC and Zynq UltraScale+ MPSoC 2 V1 -This API is used to request the usage of a device.

V2 - Added support of security policy handling during request device.

Note: V2 API is only supported in Versal and V1 API is only supported in Zynq UltraScale+ MPSoC.
PM_RELEASE_NODE 0xE Versal adaptive SoC and Zynq UltraScale+ MPSoC 2 V1 -This API is used to release the usage of a device.

V2 - Added support of security policy handling during request device.

Note: V2 API is only supported in Versal and V1 API is only supported in Zynq UltraScale+ MPSoC.
PM_SET_REQUIREMENT 0xF Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to announce a change in requirement for a specific slave node which is currently in use.
PM_SET_MAX_LATENCY 0x10 Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to set maximum allowed latency for the device.
PM_RESET_ASSERT 0x11 Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to reset or de-reset a device.
PM_RESET_GET_STATUS 0x12 Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to reads the device reset state.
PM_MMIO_WRITE 0x13 Zynq UltraScale+ MPSoC 1 This API is used to writes a value into a register.
Note: This API is deprecated for Versal adaptive SoC.
PM_MMIO_READ 0x14 Zynq UltraScale+ MPSoC 1 This API is used to reads a value from a register.
Note: This API is deprecated for Versal adaptive SoC.
PM_INIT_FINALIZE 0x15 Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to initializes subsystem and releases unused devices.
PM_GET_CHIPID 0x18 Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to request the version and ID code of a chip.
PM_PINCTRL_REQUEST 0x1C Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to requests the pin.
PM_PINCTRL_RELEASE 0x1D Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to releases the pin
PM_PINCTRL_GET_FUNCTION 0x1E Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to reads the pin function.
PM_PINCTRL_SET_FUNCTION 0x1F Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to sets the pin function.
PM_PINCTRL_CONFIG_PARAM_GET 0x20 Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to reads the pin parameter value.
PM_PINCTRL_CONFIG_PARAM_SET 0x21 Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to sets the pin parameter value.
PM_IOCTL 0x22 Versal adaptive SoC and Zynq UltraScale+ MPSoC 2 V1 -This API is used to performs driver-like IOCTL functions on shared system devices. V2 - Added support of bitmask functionality, user can check the supported ID first before performing the actual functionality .
PM_QUERY_DATA 0x23 Versal adaptive SoC and Zynq UltraScale+ MPSoC 2 V1 -This API is used to queries information about the platform resources.

V2 - Added support of bitmask functionality, user can check the supported ID first before performing the actual functionality.

PM_CLOCK_ENABLE 0x24 Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to enables the clock.
PM_CLOCK_DISABLE 0x25 Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to disables the clock.
PM_CLOCK_GETSTATE 0x26 Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to reads the clock state.
PM_CLOCK_SETDIVIDER 0x27 Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to sets the divider value of the clock.
PM_CLOCK_GETDIVIDER 0x28 Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to reads the clock divider.
PM_CLOCK_SETRATE 0x29 Versal adaptive SoC 1 This API is used to sets the rate of the clock.
PM_CLOCK_GETRATE 0x2A Versal adaptive SoC 1 This API is used to gets the rate of the clock.
PM_CLOCK_SETPARENT 0x2B Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to sets the parent of the clock.
PM_CLOCK_GETPARENT 0x2C Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to reads the clock parent.
PM_PLL_SET_PARAM 0x30 Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to sets the parameter of PLL clock.
PM_PLL_GET_PARAM 0x31 Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to reads the parameter of PLL clock.
PM_PLL_SET_MODE 0x32 Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to sets the mode of PLL clock.
PM_PLL_GET_MODE 0x33 Versal adaptive SoC and Zynq UltraScale+ MPSoC 1 This API is used to reads the mode of PLL clock.
PM_REGISTER_ACCESS 0x34 Zynq UltraScale+ MPSoC 1 This API is used for register read/write access data .
Note: This API is deprecated for Versal adaptive SoC.
PM_EFUSE_ACCESS 0x35 Zynq UltraScale+ MPSoC 1 This API is used to provides access to efuse memory.
PM_FEATURE_CHECK 0x3F Versal adaptive SoC and Zynq UltraScale+ MPSoC 2 V1 -This API is used to returns supported version of the given API. V2 - Added support of bitmask payload functionality.

XilPM IOCTL IDs Detail

This section provides the details of the IOCTL IDs which are supported across the different platforms and their brief descriptions.
Name ID Platform Description
IOCTL_GET_RPU_OPER_MODE 0 Versal adaptive SoC and Zynq UltraScale+ MPSoC Get RPU mode
IOCTL_SET_RPU_OPER_MODE 1 Versal adaptive SoC and Zynq UltraScale+ MPSoC Set RPU mode
IOCTL_RPU_BOOT_ADDR_CONFIG 2 Versal adaptive SoC and Zynq UltraScale+ MPSoC RPU boot address config
IOCTL_TCM_COMB_CONFIG 3 Versal adaptive SoC and Zynq UltraScale+ MPSoC TCM config
IOCTL_SET_TAPDELAY_BYPASS 4 Versal adaptive SoC and Zynq UltraScale+ MPSoC TAP delay bypass
IOCTL_SET_SGMII_MODE 5 Zynq UltraScale+ MPSoC SGMII mode
IOCTL_SD_DLL_RESET 6 Versal adaptive SoC and Zynq UltraScale+ MPSoC SD DLL reset
IOCTL_SET_SD_TAPDELAY 7 Versal adaptive SoC and Zynq UltraScale+ MPSoC SD TAP delay
IOCTL_SET_PLL_FRAC_MODE 8 Versal adaptive SoC and Zynq UltraScale+ MPSoC Set PLL frac mode
IOCTL_GET_PLL_FRAC_MODE 9 Versal adaptive SoC and Zynq UltraScale+ MPSoC Get PLL frac mode
IOCTL_SET_PLL_FRAC_DATA 10 Versal adaptive SoC and Zynq UltraScale+ MPSoC Set PLL frac data
IOCTL_GET_PLL_FRAC_DATA 11 Versal adaptive SoC and Zynq UltraScale+ MPSoC Get PLL frac data
IOCTL_WRITE_GGS 12 Versal adaptive SoC and Zynq UltraScale+ MPSoC Write GGS
IOCTL_READ_GGS 13 Versal adaptive SoC and Zynq UltraScale+ MPSoC Read GGS
IOCTL_WRITE_PGGS 14 Versal adaptive SoC and Zynq UltraScale+ MPSoC Write PGGS
IOCTL_READ_PGGS 15 Versal adaptive SoC and Zynq UltraScale+ MPSoC Read PGGS
IOCTL_ULPI_RESET 16 Zynq UltraScale+ MPSoC ULPI reset
IOCTL_SET_BOOT_HEALTH_STATUS 17 Versal adaptive SoC and Zynq UltraScale+ MPSoC Set boot status
IOCTL_AFI 18 Zynq UltraScale+ MPSoC AFI
IOCTL_PROBE_COUNTER_READ 19 Versal adaptive SoC Probe counter read
IOCTL_PROBE_COUNTER_WRITE 20 Versal adaptive SoC Probe counter write
IOCTL_OSPI_MUX_SELECT 21 Versal adaptive SoC OSPI mux select
IOCTL_USB_SET_STATE 22 Versal adaptive SoC USB set state
IOCTL_GET_LAST_RESET_REASON 23 Versal adaptive SoC Get last reset reason
IOCTL_AIE_ISR_CLEAR 24 Versal adaptive SoC AIE ISR clear
IOCTL_REGISTER_SGI 25 None Register SGI to ATF
IOCTL_SET_FEATURE_CONFIG 26 Zynq UltraScale+ MPSoC Set runtime feature config
IOCTL_GET_FEATURE_CONFIG 27 Zynq UltraScale+ MPSoC Get runtime feature config
IOCTL_READ_REG 28 Versal adaptive SoC Read a 32-bit register
IOCTL_MASK_WRITE_REG 29 Versal adaptive SoC RMW a 32-bit register
IOCTL_SET_SD_CONFIG 30 Zynq UltraScale+ MPSoC Set SD config register value
IOCTL_SET_GEM_CONFIG 31 Zynq UltraScale+ MPSoC Set GEM config register value
IOCTL_SET_USB_CONFIG 32 Zynq UltraScale+ MPSoC Set USB config register value
IOCTL_AIE_OPS 33 Versal adaptive SoC AIE1/AIEML Run Time Operations
IOCTL_GET_QOS 34 Versal adaptive SoC Get Device QoS value
IOCTL_GET_APU_OPER_MODE 35 Versal adaptive SoC Get APU operation mode
IOCTL_SET_APU_OPER_MODE 36 Versal adaptive SoC Set APU operation mode

XilPM QUERY IDs Detail

This section provides the details of the QUERY IDs which are supported across the different platforms and their brief descriptions.
Name ID Platform Description
XPM_QID_INVALID 0 Versal adaptive SoC and Zynq UltraScale+ MPSoC Invalid Query ID
XPM_QID_CLOCK_GET_NAME 1 Versal adaptive SoC and Zynq UltraScale+ MPSoC Get clock name
XPM_QID_CLOCK_GET_TOPOLOGY 2 Versal adaptive SoC and Zynq UltraScale+ MPSoC Get clock topology
XPM_QID_CLOCK_GET_FIXEDFACTOR_PARAMS 3 Versal adaptive SoC and Zynq UltraScale+ MPSoC Get clock fixedfactor parameter
XPM_QID_CLOCK_GET_MUXSOURCES 4 Versal adaptive SoC and Zynq UltraScale+ MPSoC Get clock mux sources
XPM_QID_CLOCK_GET_ATTRIBUTES 5 Versal adaptive SoC and Zynq UltraScale+ MPSoC Get clock attributes
XPM_QID_PINCTRL_GET_NUM_PINS 6 Versal adaptive SoC and Zynq UltraScale+ MPSoC Get total pins
XPM_QID_PINCTRL_GET_NUM_FUNCTIONS 7 Versal adaptive SoC and Zynq UltraScale+ MPSoC Get total pin functions
XPM_QID_PINCTRL_GET_NUM_FUNCTION_GROUPS 8 Versal adaptive SoC and Zynq UltraScale+ MPSoC Get total pin function groups
XPM_QID_PINCTRL_GET_FUNCTION_NAME 9 Versal adaptive SoC and Zynq UltraScale+ MPSoC Get pin function name
XPM_QID_PINCTRL_GET_FUNCTION_GROUPS 10 Versal adaptive SoC and Zynq UltraScale+ MPSoC Get pin function groups
XPM_QID_PINCTRL_GET_PIN_GROUPS 11 Versal adaptive SoC and Zynq UltraScale+ MPSoC Get pin groups
XPM_QID_CLOCK_GET_NUM_CLOCKS 12 Versal adaptive SoC and Zynq UltraScale+ MPSoC Get number of clocks
XPM_QID_CLOCK_GET_MAX_DIVISOR 13 Versal adaptive SoC and Zynq UltraScale+ MPSoC Get max clock divisor
XPM_QID_PLD_GET_PARENT 14 Versal adaptive SoC Get PLD parent

XilPM GET_OP_CHAR IDs Detail

This section provides the details of the GET_OP_CHAR IDs which are supported across the different platforms and their brief descriptions.
Name ID Platform Description
PM_OPCHAR_TYPE_POWER 1 Zynq UltraScale+ MPSoC Operating characteristic ID power
PM_OPCHAR_TYPE_TEMP 2 Versal adaptive SoC Operating characteristic ID temperature
PM_OPCHAR_TYPE_LATENCY 3 Versal adaptive SoC, Zynq UltraScale+ MPSoC Operating characteristic ID latency