diff options
Diffstat (limited to 'firmware/lib/vboot_api_kernel.c')
-rw-r--r-- | firmware/lib/vboot_api_kernel.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/firmware/lib/vboot_api_kernel.c b/firmware/lib/vboot_api_kernel.c index 4f0b3f20..5c498eea 100644 --- a/firmware/lib/vboot_api_kernel.c +++ b/firmware/lib/vboot_api_kernel.c @@ -615,10 +615,10 @@ VbError_t VbEcSoftwareSync(VbCommonParams *cparams) if (rv != VBERROR_SUCCESS) return rv; - rv = VbExEcStayInRO(); + rv = VbExEcDisableJump(); if (rv != VBERROR_SUCCESS) { VBDEBUG(("VbEcSoftwareSync() - " - "VbExEcStayInRO() returned %d\n", rv)); + "VbExEcDisableJump() returned %d\n", rv)); VbSetRecoveryRequest(VBNV_RECOVERY_EC_SOFTWARE_SYNC); return VBERROR_EC_REBOOT_TO_RO_REQUIRED; } @@ -803,6 +803,15 @@ VbError_t VbEcSoftwareSync(VbCommonParams *cparams) VbSetRecoveryRequest(VBNV_RECOVERY_EC_JUMP_RW); return VBERROR_EC_REBOOT_TO_RO_REQUIRED; } + VBDEBUG(("VbEcSoftwareSync() jumped to EC-RW\n")); + + rv = VbExEcDisableJump(); + if (rv != VBERROR_SUCCESS) { + VBDEBUG(("VbEcSoftwareSync() - " + "VbExEcDisableJump() returned %d\n", rv)); + VbSetRecoveryRequest(VBNV_RECOVERY_EC_SOFTWARE_SYNC); + return VBERROR_EC_REBOOT_TO_RO_REQUIRED; + } VBDEBUG(("VbEcSoftwareSync() in RW; done\n")); return VBERROR_SUCCESS; |