Add NV storage fields for firmware flags
1) Did firmware attempt RW slot B before slot A?
2) Did firmware check the kernel keyblock signature, or just its hash?
Added crossystem support as well.
BUG=chrome-os-partner:1657
TEST=make && make runtests
Review URL: http://codereview.chromium.org/6597011
Change-Id: I0d743ae87cedd938ba988170793717d3fdbd8ce9
diff --git a/host/lib/crossystem.c b/host/lib/crossystem.c
index 9428ba5..da9d80b 100644
--- a/host/lib/crossystem.c
+++ b/host/lib/crossystem.c
@@ -484,6 +484,10 @@
} else if (!strcasecmp(name,"savedmem_size")) {
return (-1 == ReadFileInt(ACPI_CHSW_PATH) ? -1 : 0x00100000);
}
+ /* NV storage values with no defaults for older BIOS. */
+ else if (!strcasecmp(name,"tried_fwb")) {
+ value = VbGetNvStorage(VBNV_FW_USED_TRY_B);
+ }
/* NV storage values. If unable to get from NV storage, fall back to the
* CMOS reboot field used by older BIOS. */
else if (!strcasecmp(name,"recovery_request")) {
@@ -548,6 +552,15 @@
default:
return NULL;
}
+ } else if (!strcasecmp(name,"kernkey_vfy")) {
+ switch(VbGetNvStorage(VBNV_FW_VERIFIED_KERNEL_KEY)) {
+ case 0:
+ return "hash";
+ case 1:
+ return "sig";
+ default:
+ return NULL;
+ }
} else
return NULL;
}