summaryrefslogtreecommitdiffstats
path: root/src/soc/intel/common
diff options
context:
space:
mode:
authorSridahr Siricilla <sridhar.siricilla@intel.com>2021-06-18 10:59:30 +0530
committerTim Wawrzynczak <twawrzynczak@chromium.org>2021-06-21 18:54:39 +0000
commit54b03569c3aaa7f03e0569223e0fb6d42bbdda56 (patch)
tree6467c4d0fcf55ee892c81bb6092e52970cebc9ec /src/soc/intel/common
parent42583de6b8e2692962e2ec86136fe7ae2b42e162 (diff)
downloadcoreboot-54b03569c3aaa7f03e0569223e0fb6d42bbdda56.tar.gz
coreboot-54b03569c3aaa7f03e0569223e0fb6d42bbdda56.tar.bz2
coreboot-54b03569c3aaa7f03e0569223e0fb6d42bbdda56.zip
soc/intel/common: Check CSE Lite RW status
The patch moves CSE Lite RW status check out of CSE RW update logic as the RW sanity check has to be done irrespective of CSE RW update logic is enabled or not. If coreboot detects CSE Lite RW status is not good, the coreboot triggers recovery. TEST=Verified boot on Brya Signed-off-by: Sridahr Siricilla <sridhar.siricilla@intel.com> Change-Id: I582b6cf24f8894c80ab461ca21f7c6e8caa738bc Reviewed-on: https://review.coreboot.org/c/coreboot/+/55619 Reviewed-by: Subrata Banik <subrata.banik@intel.com> Reviewed-by: Furquan Shaikh <furquan@google.com> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/soc/intel/common')
-rw-r--r--src/soc/intel/common/block/cse/cse_lite.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/soc/intel/common/block/cse/cse_lite.c b/src/soc/intel/common/block/cse/cse_lite.c
index f5b4559f6773..b2e70e675224 100644
--- a/src/soc/intel/common/block/cse/cse_lite.c
+++ b/src/soc/intel/common/block/cse/cse_lite.c
@@ -728,9 +728,6 @@ static uint8_t cse_fw_update(const struct cse_bp_info *cse_bp_info)
return cse_trigger_fw_update(cse_bp_info, &source_metadata, &target_rdev);
}
- if (!cse_is_rw_bp_status_valid(cse_bp_info))
- return CSE_LITE_SKU_RW_JUMP_ERROR;
-
return 0;
}
@@ -768,6 +765,9 @@ void cse_fw_sync(void)
cse_trigger_recovery(rv);
}
+ if (!cse_is_rw_bp_status_valid(&cse_bp_info.bp_info))
+ cse_trigger_recovery(CSE_LITE_SKU_RW_JUMP_ERROR);
+
if (!cse_boot_to_rw(&cse_bp_info.bp_info)) {
printk(BIOS_ERR, "cse_lite: Failed to switch to RW\n");
cse_trigger_recovery(CSE_LITE_SKU_RW_SWITCH_ERROR);