vboot: Disable VBNV_OPROM_NEEDED after successful update
authorDuncan Laurie <dlaurie@chromium.org>
Wed, 20 Jan 2016 20:53:15 +0000 (12:53 -0800)
committerchrome-bot <chrome-bot@chromium.org>
Thu, 21 Jan 2016 02:25:38 +0000 (18:25 -0800)
The VBOOT_OPROM_NEEDED flag is used for EC software sync when the
VBSD_EC_SLOW_UPDATE flag is set.

After a successful EC software sync vboot requests a reboot to disable
graphics but it is not clearing the VBNV flag first.  With vboot1 this
was getting cleared as a side effect of calling VbInit in normal mode.

BUG=chrome-os-partner:49560
BRANCH=glados
TEST=Enable EC_SLOW_UPDATE on chell and test EC software sync in normal
mode and ensure that it reboots and does not do graphics init if the
update is successful.

Change-Id: I2aa0c4c3b1ad357a5b8ddc14539e264a1f5b76b2
Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/322731
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
firmware/lib/vboot_api_kernel.c

index 3cc150b..fff3056 100644 (file)
@@ -1052,6 +1052,7 @@ VbError_t VbEcSoftwareSync(int devidx, VbCommonParams *cparams)
            (shared->flags & VBSD_OPROM_LOADED)) {
                VBDEBUG(("VbEcSoftwareSync() - Reboot to "
                         "unload VGA Option ROM\n"));
+               VbNvSet(&vnc, VBNV_OPROM_NEEDED, 0);
                return VBERROR_VGA_OPROM_MISMATCH;
        }