diff options
author | Sandrine Bailleux <sandrine.bailleux@arm.com> | 2022-12-19 08:37:23 +0100 |
---|---|---|
committer | TrustedFirmware Code Review <review@review.trustedfirmware.org> | 2022-12-19 08:37:23 +0100 |
commit | ff4a2c17eb85dcb3f9cec64d4dd100bb43da844a (patch) | |
tree | adf29ed2007e47efa8325a1c123720393499787f /plat/intel | |
parent | 6952ce49c29be021eb07159c2f472e9e23633135 (diff) | |
parent | 76ed32236aa396cb0e15eb049bea03710ca1992d (diff) | |
download | arm-trusted-firmware-ff4a2c17eb85dcb3f9cec64d4dd100bb43da844a.tar.gz |
Merge "fix(intel): add mailbox error return status for FCS_DECRYPTION" into integration
Diffstat (limited to 'plat/intel')
-rw-r--r-- | plat/intel/soc/common/include/socfpga_mailbox.h | 4 | ||||
-rw-r--r-- | plat/intel/soc/common/sip/socfpga_sip_fcs.c | 5 | ||||
-rw-r--r-- | plat/intel/soc/common/socfpga_sip_svc.c | 5 |
3 files changed, 12 insertions, 2 deletions
diff --git a/plat/intel/soc/common/include/socfpga_mailbox.h b/plat/intel/soc/common/include/socfpga_mailbox.h index 3ab6f522e..3abf39dca 100644 --- a/plat/intel/soc/common/include/socfpga_mailbox.h +++ b/plat/intel/soc/common/include/socfpga_mailbox.h @@ -129,6 +129,10 @@ #define MBOX_BUSY -5 #define MBOX_TIMEOUT -2047 +/* Key Status */ +#define MBOX_RET_SDOS_DECRYPTION_ERROR_102 -258 +#define MBOX_RET_SDOS_DECRYPTION_ERROR_103 -259 + /* Reconfig Status Response */ #define RECONFIG_STATUS_STATE 0 #define RECONFIG_STATUS_PIN_STATUS 2 diff --git a/plat/intel/soc/common/sip/socfpga_sip_fcs.c b/plat/intel/soc/common/sip/socfpga_sip_fcs.c index f18c3e4f7..3b0b37029 100644 --- a/plat/intel/soc/common/sip/socfpga_sip_fcs.c +++ b/plat/intel/soc/common/sip/socfpga_sip_fcs.c @@ -411,7 +411,10 @@ int intel_fcs_decryption_ext(uint32_t session_id, uint32_t context_id, (uint32_t *) &payload, payload_size, CMD_CASUAL, resp_data, &resp_len); - if (status < 0) { + if (status == MBOX_RET_SDOS_DECRYPTION_ERROR_102 || + status == MBOX_RET_SDOS_DECRYPTION_ERROR_103) { + *mbox_error = -status; + } else if (status < 0) { *mbox_error = -status; return INTEL_SIP_SMC_STATUS_ERROR; } diff --git a/plat/intel/soc/common/socfpga_sip_svc.c b/plat/intel/soc/common/socfpga_sip_svc.c index a20e61c76..79f743f5d 100644 --- a/plat/intel/soc/common/socfpga_sip_svc.c +++ b/plat/intel/soc/common/socfpga_sip_svc.c @@ -611,7 +611,10 @@ uint32_t intel_smc_service_completed(uint64_t addr, uint32_t size, *ret_size = resp_len * MBOX_WORD_BYTE; flush_dcache_range(addr, *ret_size); - if (status != MBOX_RET_OK) { + if (status == MBOX_RET_SDOS_DECRYPTION_ERROR_102 || + status == MBOX_RET_SDOS_DECRYPTION_ERROR_103) { + *mbox_error = -status; + } else if (status != MBOX_RET_OK) { *mbox_error = -status; return INTEL_SIP_SMC_STATUS_ERROR; } |