summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDuncan Laurie <dlaurie@chromium.org>2016-03-30 09:38:54 -0700
committerchrome-bot <chrome-bot@chromium.org>2016-04-11 14:36:41 -0700
commiteb0c8cc39bb268a7dc88ed616a564f4d46f77a2c (patch)
tree059f2abce61e2459dd4a2a33c92b9662828ecd64
parente98431f52ba7501823dc7ef28eb2dc9c7c927629 (diff)
downloadvboot-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.c6
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;
}