fix(intel): extend SDM command to return the SDM firmware version
Updates intel_smc_fw_version function to read SDM firmware version in major/minor ACDS release number. Update CONFIG_STATUS Response Data [1] bit0-23. Return INTEL_SIP_SMC_STATUS_ERROR if unexpected firmware version is being retrieved. Signed-off-by: Sieu Mun Tang <sieu.mun.tang@intel.com> Signed-off-by: Jit Loon Lim <jit.loon.lim@intel.com> Change-Id: I018ccbb961786a75dc6eb873b0f232e71341e1d2
This commit is contained in:
parent
c34b2a7a1a
commit
c026dfe38c
|
@ -145,6 +145,10 @@
|
|||
#define RSU_VERSION_ACMF BIT(8)
|
||||
#define RSU_VERSION_ACMF_MASK 0xff00
|
||||
|
||||
/* Config Status Macros */
|
||||
#define CONFIG_STATUS_WORD_SIZE 16U
|
||||
#define CONFIG_STATUS_FW_VER_OFFSET 1
|
||||
#define CONFIG_STATUS_FW_VER_MASK 0x00FFFFFF
|
||||
|
||||
/* Mailbox Function Definitions */
|
||||
|
||||
|
|
|
@ -437,7 +437,22 @@ 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;
|
||||
int status;
|
||||
unsigned int resp_len = CONFIG_STATUS_WORD_SIZE;
|
||||
uint32_t resp_data[CONFIG_STATUS_WORD_SIZE] = {0U};
|
||||
|
||||
status = mailbox_send_cmd(MBOX_JOB_ID, MBOX_CONFIG_STATUS, NULL, 0U,
|
||||
CMD_CASUAL, resp_data, &resp_len);
|
||||
|
||||
if (status < 0) {
|
||||
return INTEL_SIP_SMC_STATUS_ERROR;
|
||||
}
|
||||
|
||||
if (resp_len <= CONFIG_STATUS_FW_VER_OFFSET) {
|
||||
return INTEL_SIP_SMC_STATUS_ERROR;
|
||||
}
|
||||
|
||||
*fw_version = resp_data[CONFIG_STATUS_FW_VER_OFFSET] & CONFIG_STATUS_FW_VER_MASK;
|
||||
|
||||
return INTEL_SIP_SMC_STATUS_OK;
|
||||
}
|
||||
|
@ -624,7 +639,7 @@ uintptr_t sip_smc_handler(uint32_t smc_fid,
|
|||
|
||||
case INTEL_SIP_SMC_FIRMWARE_VERSION:
|
||||
status = intel_smc_fw_version(&retval);
|
||||
SMC_RET1(handle, status);
|
||||
SMC_RET2(handle, status, retval);
|
||||
|
||||
case INTEL_SIP_SMC_MBOX_SEND_CMD:
|
||||
x5 = SMC_GET_GP(handle, CTX_GPREG_X5);
|
||||
|
|
Loading…
Reference in New Issue