From c34b2a7a1a38dba88b6b668a81bd07c757525830 Mon Sep 17 00:00:00 2001 From: "Abdul Halim, Muhammad Hadi Asyrafi" Date: Fri, 5 Feb 2021 11:50:58 +0800 Subject: [PATCH] feat(intel): add SMC for enquiring firmware version This command allows non-secure world software to enquire the version of currently running Secure Device Manager (SDM) firmware. This will be useful in maintaining backward-compatibility as well as ensuring software cross-compabitility. Signed-off-by: Abdul Halim, Muhammad Hadi Asyrafi Signed-off-by: Jit Loon Lim Signed-off-by: Sieu Mun Tang Change-Id: Ibc23734d1135db74423da5e29655f9d32472a3b0 --- plat/intel/soc/common/include/socfpga_sip_svc.h | 1 + plat/intel/soc/common/socfpga_sip_svc.c | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/plat/intel/soc/common/include/socfpga_sip_svc.h b/plat/intel/soc/common/include/socfpga_sip_svc.h index 2917d0ae1..de60bc0d2 100644 --- a/plat/intel/soc/common/include/socfpga_sip_svc.h +++ b/plat/intel/soc/common/include/socfpga_sip_svc.h @@ -59,6 +59,7 @@ /* Send Mailbox Command */ #define INTEL_SIP_SMC_MBOX_SEND_CMD 0xC200001E +#define INTEL_SIP_SMC_FIRMWARE_VERSION 0xC200001F #define INTEL_SIP_SMC_HPS_SET_BRIDGES 0xC2000032 diff --git a/plat/intel/soc/common/socfpga_sip_svc.c b/plat/intel/soc/common/socfpga_sip_svc.c index f583a5572..d7733274b 100644 --- a/plat/intel/soc/common/socfpga_sip_svc.c +++ b/plat/intel/soc/common/socfpga_sip_svc.c @@ -435,6 +435,13 @@ static uint32_t intel_rsu_copy_dcmf_status(uint64_t dcmf_stat) } /* Mailbox services */ +static uint32_t intel_smc_fw_version(uint32_t *fw_version) +{ + *fw_version = 0U; + + return INTEL_SIP_SMC_STATUS_OK; +} + static uint32_t intel_mbox_send_cmd(uint32_t cmd, uint32_t *args, unsigned int len, uint32_t urgent, uint32_t *response, @@ -615,6 +622,10 @@ uintptr_t sip_smc_handler(uint32_t smc_fid, status = intel_ecc_dbe_notification(x1); SMC_RET1(handle, status); + case INTEL_SIP_SMC_FIRMWARE_VERSION: + status = intel_smc_fw_version(&retval); + SMC_RET1(handle, status); + case INTEL_SIP_SMC_MBOX_SEND_CMD: x5 = SMC_GET_GP(handle, CTX_GPREG_X5); x6 = SMC_GET_GP(handle, CTX_GPREG_X6);