diff options
author | dnojiri <dnojiri@chromium.org> | 2020-03-26 09:49:14 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-04-01 22:48:13 +0000 |
commit | 7790911ced6b1f690cf47930d308388b8618031f (patch) | |
tree | 5b319930538926fcedc81855e7152f720a3253b0 /tests | |
parent | d3f563761a90e63b12fecf8d338a09d657eb0e3e (diff) | |
download | vboot-7790911ced6b1f690cf47930d308388b8618031f.tar.gz |
ec_sync: Reset EC after updating Hmir
This patch makes vb2api_sync_ec reset EC whenever Hmir is update because
the verification result should be revoked.
When Hmir is corrupted, the system enters NO_BOOT mode (and EC stays
in RO). Since Heff == Hexp, EC RW won't be updated but we need to
reset EC so that EC can jump to RW by EFS2.
Signed-off-by: dnojiri <dnojiri@chromium.org>
BUG=chromium:1045217
BRANCH=none
TEST=Verify firmware_SoftwareSync passes.
Change-Id: I21887e212cfefedeadf4c146ecec290022bb2b34
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2122587
Tested-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Commit-Queue: Daisuke Nojiri <dnojiri@chromium.org>
Auto-Submit: Daisuke Nojiri <dnojiri@chromium.org>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/vb2_ec_sync_tests.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/vb2_ec_sync_tests.c b/tests/vb2_ec_sync_tests.c index 26be9baf..80b48908 100644 --- a/tests/vb2_ec_sync_tests.c +++ b/tests/vb2_ec_sync_tests.c @@ -403,6 +403,20 @@ static void VbSoftwareSyncTest(void) TEST_EQ(ec_rw_protected, 0, " ec rw protected"); TEST_EQ(ec_run_image, 0, " ec run image"); + /* Hexp == Heff != Hmir */ + ResetMocks(); + hmir[0] = 44; + vb2_secdata_kernel_set_ec_hash(ctx, hmir); + ec_run_image = 0; + ctx->flags |= VB2_CONTEXT_NO_BOOT; + test_ssync(VBERROR_EC_REBOOT_TO_RO_REQUIRED, + 0, "Reboot after synching Hmir"); + TEST_EQ(ec_ro_updated, 0, " ec ro updated"); + TEST_EQ(ec_rw_updated, 0, " ec rw updated"); + TEST_EQ(ec_ro_protected, 0, " ec ro protected"); + TEST_EQ(ec_rw_protected, 0, " ec rw protected"); + TEST_EQ(ec_run_image, 0, " ec run image"); + ResetMocks(); mock_ec_rw_hash[0]++; vb2_nv_set(ctx, VB2_NV_TRY_RO_SYNC, 1); |