diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/soc/intel/common/block/cse/cse_lite.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/soc/intel/common/block/cse/cse_lite.c b/src/soc/intel/common/block/cse/cse_lite.c index 83f5eb1e84..a3741ccc6a 100644 --- a/src/soc/intel/common/block/cse/cse_lite.c +++ b/src/soc/intel/common/block/cse/cse_lite.c @@ -721,14 +721,20 @@ static enum csme_failure_reason cse_trigger_fw_update(const struct cse_bp_info * { enum csme_failure_reason rv; uint8_t *cbfs_rw_hash; + void *cse_cbfs_rw = NULL; size_t size; const char *area_name = cse_get_source_rdev_fmap(); if (!area_name) return CSE_LITE_SKU_RW_BLOB_NOT_FOUND; - void *cse_cbfs_rw = cbfs_unverified_area_map(area_name, - CONFIG_SOC_INTEL_CSE_RW_CBFS_NAME, &size); + if (CONFIG(SOC_INTEL_CSE_LITE_COMPRESS_ME_RW)) { + cse_cbfs_rw = cbfs_unverified_area_cbmem_alloc(area_name, + CONFIG_SOC_INTEL_CSE_RW_CBFS_NAME, CBMEM_ID_CSE_UPDATE, &size); + } else { + cse_cbfs_rw = cbfs_unverified_area_map(area_name, + CONFIG_SOC_INTEL_CSE_RW_CBFS_NAME, &size); + } if (!cse_cbfs_rw) { printk(BIOS_ERR, "cse_lite: CSE CBFS RW blob could not be mapped\n"); return CSE_LITE_SKU_RW_BLOB_NOT_FOUND; |