From f134200f1aac9a8d3ec211e61ba22246e484b04c Mon Sep 17 00:00:00 2001 From: Rajan Vaja Date: Wed, 14 Feb 2018 23:10:54 -0800 Subject: [PATCH] zynqmp: pm: Support ATF PM version check Add SMC call to query ATF PM version. This version can be used by Linux to match with expected version. Signed-off-by: Rajan Vaja --- plat/xilinx/zynqmp/pm_service/pm_common.h | 5 +++++ plat/xilinx/zynqmp/pm_service/pm_svc_main.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/plat/xilinx/zynqmp/pm_service/pm_common.h b/plat/xilinx/zynqmp/pm_service/pm_common.h index 5dcbb0d8..4d03bc0f 100644 --- a/plat/xilinx/zynqmp/pm_service/pm_common.h +++ b/plat/xilinx/zynqmp/pm_service/pm_common.h @@ -19,6 +19,11 @@ #define PAYLOAD_ARG_CNT 6U #define PAYLOAD_ARG_SIZE 4U /* size in bytes */ +#define ZYNQMP_TZ_VERSION_MAJOR 1 +#define ZYNQMP_TZ_VERSION_MINOR 0 +#define ZYNQMP_TZ_VERSION ((ZYNQMP_TZ_VERSION_MAJOR << 16) | \ + ZYNQMP_TZ_VERSION_MINOR) + /** * pm_ipi - struct for capturing IPI-channel specific info * @apu_ipi_id APU IPI agent ID diff --git a/plat/xilinx/zynqmp/pm_service/pm_svc_main.c b/plat/xilinx/zynqmp/pm_service/pm_svc_main.c index 4fd69b91..518e18fc 100644 --- a/plat/xilinx/zynqmp/pm_service/pm_svc_main.c +++ b/plat/xilinx/zynqmp/pm_service/pm_svc_main.c @@ -19,6 +19,7 @@ #include "pm_ipi.h" #define PM_GET_CALLBACK_DATA 0xa01 +#define PM_GET_TRUSTZONE_VERSION 0xa03 /* 0 - UP, !0 - DOWN */ static int32_t pm_down = !0; @@ -355,6 +356,10 @@ uint64_t pm_smc_handler(uint32_t smc_fid, uint64_t x1, uint64_t x2, uint64_t x3, SMC_RET1(handle, (uint64_t)ret | ((uint64_t)value) << 32); } + case PM_GET_TRUSTZONE_VERSION: + SMC_RET1(handle, (uint64_t)PM_RET_SUCCESS | + ((uint64_t)ZYNQMP_TZ_VERSION << 32)); + default: WARN("Unimplemented PM Service Call: 0x%x\n", smc_fid); SMC_RET1(handle, SMC_UNK); -- 2.30.2