From: Jit Loon Lim Date: Mon, 27 Mar 2023 07:19:53 +0000 (+0800) Subject: fix(intel): flash dcache before mmio read X-Git-Tag: baikal/aarch64/sdk5.10~1^2~104^2 X-Git-Url: https://git.baikalelectronics.ru/?a=commitdiff_plain;h=731622fe757ab2bcc0492ad27bafecf24206ddac;p=arm-tf.git fix(intel): flash dcache before mmio read Flash dcache before mmio read to avoid reading old/previous value. Signed-off-by: Jit Loon Lim Change-Id: Ifd5a63a3c0f20b3e673be62ff5c3b6c4cf69df51 --- diff --git a/plat/intel/soc/common/sip/socfpga_sip_fcs.c b/plat/intel/soc/common/sip/socfpga_sip_fcs.c index 0166eb726..508043ff7 100644 --- a/plat/intel/soc/common/sip/socfpga_sip_fcs.c +++ b/plat/intel/soc/common/sip/socfpga_sip_fcs.c @@ -283,6 +283,7 @@ uint32_t intel_fcs_decryption(uint32_t src_addr, uint32_t src_size, uint32_t load_size; uintptr_t id_offset; + inv_dcache_range(src_addr, src_size); /* flush cache before mmio read to avoid reading old values */ id_offset = src_addr + FCS_OWNER_ID_OFFSET; fcs_decrypt_payload payload = { FCS_DECRYPTION_DATA_0, @@ -392,6 +393,7 @@ int intel_fcs_decryption_ext(uint32_t session_id, uint32_t context_id, return INTEL_SIP_SMC_STATUS_REJECTED; } + inv_dcache_range(src_addr, src_size); /* flush cache before mmio read to avoid reading old values */ id_offset = src_addr + FCS_OWNER_ID_OFFSET; fcs_decrypt_ext_payload payload = { session_id, @@ -822,6 +824,7 @@ int intel_fcs_get_crypto_service_key_info(uint32_t session_id, uint32_t key_id, CMD_CASUAL, (uint32_t *) dst_addr, &resp_len); if (resp_len > 0) { + inv_dcache_range(dst_addr, (resp_len * MBOX_WORD_BYTE)); /* flush cache before mmio read to avoid reading old values */ op_status = mmio_read_32(dst_addr) & FCS_CS_KEY_RESP_STATUS_MASK; }