summaryrefslogtreecommitdiff
path: root/src/soc/intel/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel/common')
-rw-r--r--src/soc/intel/common/block/cse/cse_lite.c6
-rw-r--r--src/soc/intel/common/block/include/intelblocks/cse.h3
2 files changed, 9 insertions, 0 deletions
diff --git a/src/soc/intel/common/block/cse/cse_lite.c b/src/soc/intel/common/block/cse/cse_lite.c
index 8f4afae8ef..9866d55d78 100644
--- a/src/soc/intel/common/block/cse/cse_lite.c
+++ b/src/soc/intel/common/block/cse/cse_lite.c
@@ -378,6 +378,11 @@ __weak void cse_board_reset(void)
/* Default weak implementation, does nothing. */
}
+__weak void cse_fw_update_misc_oper(void)
+{
+ /* Default weak implementation, does nothing. */
+}
+
/* Set the CSE's next boot partition and issues system reset */
static enum cb_err cse_set_and_boot_from_next_bp(enum boot_partition_id bp)
{
@@ -784,6 +789,7 @@ static enum csme_failure_reason cse_trigger_fw_update(const struct cse_bp_info *
goto error_exit;
}
+ cse_fw_update_misc_oper();
rv = cse_update_rw(cse_bp_info, cse_cbfs_rw, size, target_rdev);
error_exit:
diff --git a/src/soc/intel/common/block/include/intelblocks/cse.h b/src/soc/intel/common/block/include/intelblocks/cse.h
index 422f69c1c6..b031aa3390 100644
--- a/src/soc/intel/common/block/include/intelblocks/cse.h
+++ b/src/soc/intel/common/block/include/intelblocks/cse.h
@@ -500,6 +500,9 @@ void cse_fw_sync(void);
/* Perform a board-specific reset sequence for CSE RO<->RW jump */
void cse_board_reset(void);
+/* Perform a misc operation before CSE firmware update. */
+void cse_fw_update_misc_oper(void);
+
/* Trigger vboot recovery mode on a CSE error */
void cse_trigger_vboot_recovery(enum csme_failure_reason reason);