diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2021-06-28 10:29:53 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-06-28 18:35:05 +0000 |
commit | 9817c7099202d9f321c6ee8b641e4d3d428b1739 (patch) | |
tree | 23e298874d1373cb52f085942a836995935bab74 /common/system.c | |
parent | 4ad29c41c104d7a29ca2f4a4d81f47d1850bfd01 (diff) | |
download | chrome-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.c | 7 |
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); |