zynqmp: pm: Support ATF PM version check
authorRajan Vaja <rajan.vaja@xilinx.com>
Thu, 15 Feb 2018 07:10:54 +0000 (23:10 -0800)
committerJolly Shah <jollys@xilinx.com>
Thu, 15 Mar 2018 17:24:09 +0000 (10:24 -0700)
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 <rajanv@xilinx.com>
plat/xilinx/zynqmp/pm_service/pm_common.h
plat/xilinx/zynqmp/pm_service/pm_svc_main.c

index 5dcbb0d864a7c84902afc971b4c5b3290d4e6ee5..4d03bc0f6faa6c97b4b13e5f76c68f1de411ec23 100644 (file)
 #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
index 4fd69b91f5e6c27daf69c4c36979aabc0abc65e0..518e18fc917d6bc17ab3a987334c880a361e92ef 100644 (file)
@@ -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);