mirror of
https://github.com/torvalds/linux.git
synced 2026-07-30 11:11:26 +02:00
firmware: stratix10-svc: change get provision data to async SMC call
Change INTEL_SIP_SMC_FCS_GET_PROVISION_DATA's SMC call to async from sync to avoid long runtime which may cause the watchdog timeout issue. Signed-off-by: Richard Gong <richard.gong@intel.com> Signed-off-by: Siew Chin Lim <elly.siew.chin.lim@intel.com> Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
This commit is contained in:
parent
3f7fd751d8
commit
4b0a320163
|
|
@ -463,6 +463,7 @@ static void svc_thread_recv_status_ok(struct stratix10_svc_data *p_data,
|
||||||
case COMMAND_FCS_SEND_CERTIFICATE:
|
case COMMAND_FCS_SEND_CERTIFICATE:
|
||||||
case COMMAND_FCS_DATA_ENCRYPTION:
|
case COMMAND_FCS_DATA_ENCRYPTION:
|
||||||
case COMMAND_FCS_DATA_DECRYPTION:
|
case COMMAND_FCS_DATA_DECRYPTION:
|
||||||
|
case COMMAND_FCS_GET_PROVISION_DATA:
|
||||||
cb_data->status = BIT(SVC_STATUS_OK);
|
cb_data->status = BIT(SVC_STATUS_OK);
|
||||||
break;
|
break;
|
||||||
case COMMAND_RECONFIG_DATA_SUBMIT:
|
case COMMAND_RECONFIG_DATA_SUBMIT:
|
||||||
|
|
@ -491,7 +492,6 @@ static void svc_thread_recv_status_ok(struct stratix10_svc_data *p_data,
|
||||||
cb_data->kaddr2 = &res.a2;
|
cb_data->kaddr2 = &res.a2;
|
||||||
break;
|
break;
|
||||||
case COMMAND_FCS_RANDOM_NUMBER_GEN:
|
case COMMAND_FCS_RANDOM_NUMBER_GEN:
|
||||||
case COMMAND_FCS_GET_PROVISION_DATA:
|
|
||||||
case COMMAND_POLL_SERVICE_STATUS:
|
case COMMAND_POLL_SERVICE_STATUS:
|
||||||
cb_data->status = BIT(SVC_STATUS_OK);
|
cb_data->status = BIT(SVC_STATUS_OK);
|
||||||
cb_data->kaddr1 = &res.a1;
|
cb_data->kaddr1 = &res.a1;
|
||||||
|
|
@ -674,7 +674,7 @@ static int svc_normal_to_secure_thread(void *data)
|
||||||
break;
|
break;
|
||||||
case COMMAND_FCS_GET_PROVISION_DATA:
|
case COMMAND_FCS_GET_PROVISION_DATA:
|
||||||
a0 = INTEL_SIP_SMC_FCS_GET_PROVISION_DATA;
|
a0 = INTEL_SIP_SMC_FCS_GET_PROVISION_DATA;
|
||||||
a1 = (unsigned long)pdata->paddr;
|
a1 = 0;
|
||||||
a2 = 0;
|
a2 = 0;
|
||||||
break;
|
break;
|
||||||
/* for HWMON */
|
/* for HWMON */
|
||||||
|
|
|
||||||
|
|
@ -605,25 +605,21 @@ INTEL_SIP_SMC_FAST_CALL_VAL(INTEL_SIP_SMC_FUNCID_FPGA_CONFIG_COMPLETED_WRITE)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Request INTEL_SIP_SMC_FCS_GET_PROVISION_DATA
|
* Request INTEL_SIP_SMC_FCS_GET_PROVISION_DATA
|
||||||
* Sync call to dump all the fuses and key hashes
|
* Async call to dump all the fuses and key hashes
|
||||||
*
|
*
|
||||||
* Call register usage:
|
* Call register usage:
|
||||||
* a0 INTEL_SIP_SMC_FCS_GET_PROVISION_DATA
|
* a0 INTEL_SIP_SMC_FCS_GET_PROVISION_DATA
|
||||||
* a1 the physical address for firmware to write structure of fuse and
|
* a1-a7 not used
|
||||||
* key hashes
|
|
||||||
* a2-a7 not used
|
|
||||||
*
|
*
|
||||||
* Return status:
|
* Return status:
|
||||||
* a0 INTEL_SIP_SMC_STATUS_OK, INTEL_SIP_SMC_FCS_ERROR or
|
* a0 INTEL_SIP_SMC_STATUS_OK, INTEL_SIP_SMC_FCS_ERROR or
|
||||||
* INTEL_SIP_SMC_FCS_REJECTED
|
* INTEL_SIP_SMC_FCS_REJECTED
|
||||||
* a1 mailbox error
|
* a1-a3 not used
|
||||||
* a2 physical address for the structure of fuse and key hashes
|
|
||||||
* a3 the size of structure
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#define INTEL_SIP_SMC_FUNCID_FCS_GET_PROVISION_DATA 94
|
#define INTEL_SIP_SMC_FUNCID_FCS_GET_PROVISION_DATA 94
|
||||||
#define INTEL_SIP_SMC_FCS_GET_PROVISION_DATA \
|
#define INTEL_SIP_SMC_FCS_GET_PROVISION_DATA \
|
||||||
INTEL_SIP_SMC_FAST_CALL_VAL(INTEL_SIP_SMC_FUNCID_FCS_GET_PROVISION_DATA)
|
INTEL_SIP_SMC_STD_CALL_VAL(INTEL_SIP_SMC_FUNCID_FCS_GET_PROVISION_DATA)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Request INTEL_SIP_SMC_HWMON_READTEMP
|
* Request INTEL_SIP_SMC_HWMON_READTEMP
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user