xilinx: versal: Add get_api_version support
Add support for EEMI API get_api_verion. Signed-off-by: Tejas Patel <tejas.patel@xilinx.com> Signed-off-by: Jolly Shah <jolly.shah@xilinx.com> Change-Id: Ic1ef90a194ae6164994a7fc5d8ff0b7b192636fe
This commit is contained in:
parent
c73a90e571
commit
95794c7323
|
@ -67,4 +67,5 @@ BL31_SOURCES += lib/cpus/aarch64/cortex_a53.S \
|
|||
plat/xilinx/versal/versal_gicv3.c \
|
||||
plat/xilinx/versal/versal_ipi.c \
|
||||
plat/xilinx/versal/pm_service/pm_svc_main.c \
|
||||
plat/xilinx/versal/pm_service/pm_api_sys.c \
|
||||
plat/xilinx/versal/pm_service/pm_client.c
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
* Copyright (c) 2019, Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
/*
|
||||
* Versal system level PM-API functions and communication with PMC via
|
||||
* IPI interrupts
|
||||
*/
|
||||
|
||||
#include <pm_common.h>
|
||||
#include <pm_ipi.h>
|
||||
#include "pm_api_sys.h"
|
||||
#include "pm_client.h"
|
||||
|
||||
/*********************************************************************
|
||||
* Target module IDs macros
|
||||
********************************************************************/
|
||||
#define LIBPM_MODULE_ID 0x2
|
||||
#define LOADER_MODULE_ID 0x7
|
||||
|
||||
/**
|
||||
* Assigning of argument values into array elements.
|
||||
*/
|
||||
#define PM_PACK_PAYLOAD1(pl, mid, arg0) { \
|
||||
pl[0] = (uint32_t)((uint32_t)((arg0) & 0xFF) | (mid << 8)); \
|
||||
}
|
||||
|
||||
/* PM API functions */
|
||||
|
||||
/**
|
||||
* pm_get_api_version() - Get version number of PMC PM firmware
|
||||
* @version Returns 32-bit version number of PMC Power Management Firmware
|
||||
*
|
||||
* @return Returns status, either success or error+reason
|
||||
*/
|
||||
enum pm_ret_status pm_get_api_version(unsigned int *version)
|
||||
{
|
||||
uint32_t payload[PAYLOAD_ARG_CNT];
|
||||
|
||||
/* Send request to the PMC */
|
||||
PM_PACK_PAYLOAD1(payload, LIBPM_MODULE_ID, PM_GET_API_VERSION);
|
||||
return pm_ipi_send_sync(primary_proc, payload, version, 1);
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
/*
|
||||
* Copyright (c) 2019, Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef PM_API_SYS_H
|
||||
#define PM_API_SYS_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/**********************************************************
|
||||
* PM API function declarations
|
||||
**********************************************************/
|
||||
|
||||
enum pm_ret_status pm_get_api_version(unsigned int *version);
|
||||
|
||||
#endif /* PM_API_SYS_H */
|
|
@ -22,6 +22,9 @@
|
|||
#define XPM_DEVID_ACPU_0 APU_DEVID(XPM_NODEIDX_DEV_ACPU_0)
|
||||
#define XPM_DEVID_ACPU_1 APU_DEVID(XPM_NODEIDX_DEV_ACPU_1)
|
||||
|
||||
/* PM API ids */
|
||||
#define PM_GET_API_VERSION 1U
|
||||
|
||||
/*********************************************************************
|
||||
* Enum definitions
|
||||
********************************************************************/
|
||||
|
|
Loading…
Reference in New Issue