diff options
author | Duncan Laurie <dlaurie@chromium.org> | 2016-03-30 09:38:54 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-04-11 14:36:41 -0700 |
commit | eb0c8cc39bb268a7dc88ed616a564f4d46f77a2c (patch) | |
tree | 059f2abce61e2459dd4a2a33c92b9662828ecd64 | |
parent | e98431f52ba7501823dc7ef28eb2dc9c7c927629 (diff) | |
download | vboot-eb0c8cc39bb268a7dc88ed616a564f4d46f77a2c.tar.gz |
crossystem: x86: Write VbNv with mosys if using vboot2
If this is an x86 system using vboot2 then write VbNv data
to CMOS and also use mosys to write it directly to flash.
BUG=chrome-os-partner:51846
BRANCH=none
TEST=emerge-chell vboot_reference; emerge-oak vboot_reference
verify on chell that "crossystem dev_disable_request=1" is
written to both CMOS and flash.
Change-Id: Ifd5dcee4d401f8de36801c5c0a7db3255e618e28
Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/336311
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
-rw-r--r-- | host/arch/x86/lib/crossystem_arch.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/host/arch/x86/lib/crossystem_arch.c b/host/arch/x86/lib/crossystem_arch.c index c885986b..f9ce01f6 100644 --- a/host/arch/x86/lib/crossystem_arch.c +++ b/host/arch/x86/lib/crossystem_arch.c @@ -18,6 +18,7 @@ #include "crossystem.h" #include "crossystem_arch.h" +#include "crossystem_vbnv.h" #include "host_common.h" #include "utility.h" #include "vboot_common.h" @@ -171,6 +172,7 @@ int VbReadNvStorage(VbNvContext* vnc) { int VbWriteNvStorage(VbNvContext* vnc) { unsigned offs, blksz; + VbSharedDataHeader *sh = VbSharedDataRead(); if (!vnc->raw_changed) return 0; /* Nothing changed, so no need to write */ @@ -186,6 +188,10 @@ int VbWriteNvStorage(VbNvContext* vnc) { if (0 != VbCmosWrite(offs, VBNV_BLOCK_SIZE, vnc->raw)) return -1; + /* Also attempt to write using mosys if using vboot2 */ + if (sh && (sh->flags & VBSD_BOOT_FIRMWARE_VBOOT2)) + VbWriteNvStorage_mosys(vnc); + return 0; } |