mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-08 19:11:53 +00:00
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:
parent
cdca986070
commit
96fe4f6485
3 changed files with 36 additions and 0 deletions
|
@ -9,5 +9,6 @@
|
||||||
int invoke_smc(u32 func_id, u64 *args, int arg_len, u64 *ret_arg, int ret_len);
|
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,
|
int smc_send_mailbox(u32 cmd, u32 len, u32 *arg, u8 urgent, u32 *resp_buf_len,
|
||||||
u32 *resp_buf);
|
u32 *resp_buf);
|
||||||
|
int smc_get_usercode(u32 *usercode);
|
||||||
|
|
||||||
#endif /* _SMC_API_H_ */
|
#endif /* _SMC_API_H_ */
|
||||||
|
|
|
@ -54,3 +54,20 @@ int smc_send_mailbox(u32 cmd, u32 len, u32 *arg, u8 urgent, u32 *resp_buf_len,
|
||||||
|
|
||||||
return (int)resp[0];
|
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;
|
||||||
|
}
|
||||||
|
|
|
@ -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 \
|
#define INTEL_SIP_SMC_MBOX_SEND_CMD \
|
||||||
INTEL_SIP_SMC_FAST_CALL_VAL(INTEL_SIP_SMC_FUNCID_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
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue