summaryrefslogtreecommitdiff
path: root/common/system.c
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2021-06-28 10:29:53 -0700
committerCommit Bot <commit-bot@chromium.org>2021-06-28 18:35:05 +0000
commit9817c7099202d9f321c6ee8b641e4d3d428b1739 (patch)
tree23e298874d1373cb52f085942a836995935bab74 /common/system.c
parent4ad29c41c104d7a29ca2f4a4d81f47d1850bfd01 (diff)
downloadchrome-ec-9817c7099202d9f321c6ee8b641e4d3d428b1739.tar.gz
EFS2: Clear EC_RESET_FLAG_EFS when jumping back to RO
Currently, EC_RESET_FLAG_EFS isn't cleared once it's set until the next reset. This causes an RO copy to re-run init functions because system_jumped_late returns false. This patch makes EC_RESET_FLAG_EFS cleared before sysjump to RO. BUG=b:192022501 BRANCH=none TEST=buildall Change-Id: Ib151f2f619d1c59f46706a6cd43b05c26d67c74d Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2992548 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Diffstat (limited to 'common/system.c')
-rw-r--r--common/system.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/common/system.c b/common/system.c
index 22467efd0f..3502fb090d 100644
--- a/common/system.c
+++ b/common/system.c
@@ -680,7 +680,12 @@ static int system_run_image_copy_with_flags(enum ec_image copy,
system_set_reset_flags(add_reset_flags);
- CPRINTS("Jumping to image %s", ec_image_to_string(copy));
+ /* If jumping back to RO, we're no longer in the EFS context. */
+ if (copy == EC_IMAGE_RO)
+ system_clear_reset_flags(EC_RESET_FLAG_EFS);
+
+ CPRINTS("Jumping to image %s (0x%08x)",
+ ec_image_to_string(copy), system_get_reset_flags());
jump_to_image(init_addr);