arm: socfpga: smc: Add function to get usercode

Add function to send mailbox command via SMC to get usercode from SDM.

Signed-off-by: Siew Chin Lim <elly.siew.chin.lim@intel.com>
Reviewed-by: Ley Foon Tan <ley.foon.tan@intel.com>
This commit is contained in:
Siew Chin Lim 2021-03-25 14:07:45 +08:00 committed by Ley Foon Tan
parent cdca986070
commit 96fe4f6485
3 changed files with 36 additions and 0 deletions

View file

@ -9,5 +9,6 @@
int invoke_smc(u32 func_id, u64 *args, int arg_len, u64 *ret_arg, int ret_len);
int smc_send_mailbox(u32 cmd, u32 len, u32 *arg, u8 urgent, u32 *resp_buf_len,
u32 *resp_buf);
int smc_get_usercode(u32 *usercode);
#endif /* _SMC_API_H_ */

View file

@ -54,3 +54,20 @@ int smc_send_mailbox(u32 cmd, u32 len, u32 *arg, u8 urgent, u32 *resp_buf_len,
return (int)resp[0];
}
int smc_get_usercode(u32 *usercode)
{
int ret;
u64 resp;
if (!usercode)
return -EINVAL;
ret = invoke_smc(INTEL_SIP_SMC_GET_USERCODE, NULL, 0,
&resp, 1);
if (ret == INTEL_SIP_SMC_STATUS_OK)
*usercode = (u32)resp;
return ret;
}

View file

@ -518,4 +518,22 @@ INTEL_SIP_SMC_FAST_CALL_VAL(INTEL_SIP_SMC_FUNCID_FPGA_CONFIG_COMPLETED_WRITE)
#define INTEL_SIP_SMC_MBOX_SEND_CMD \
INTEL_SIP_SMC_FAST_CALL_VAL(INTEL_SIP_SMC_FUNCID_MBOX_SEND_CMD)
/*
* Request INTEL_SIP_SMC_GET_USERCODE
*
* Send mailbox command to get usercode from SDM
*
* Call register usage:
* a0 INTEL_SIP_SMC_GET_USERCODE
* a1-7 not used.
*
* Return status
* a0 INTEL_SIP_SMC_STATUS_OK or INTEL_SIP_SMC_STATUS_ERROR
* a1 User code
* a2-3 not used.
*/
#define INTEL_SIP_SMC_FUNCID_GET_USERCODE 61
#define INTEL_SIP_SMC_GET_USERCODE \
INTEL_SIP_SMC_FAST_CALL_VAL(INTEL_SIP_SMC_FUNCID_GET_USERCODE)
#endif