diff options
-rw-r--r-- | host/lib/crossystem.c | 8 | ||||
-rw-r--r-- | utility/crossystem_main.c | 1 |
2 files changed, 8 insertions, 1 deletions
diff --git a/host/lib/crossystem.c b/host/lib/crossystem.c index 9fe1febb..8e482d36 100644 --- a/host/lib/crossystem.c +++ b/host/lib/crossystem.c @@ -487,6 +487,8 @@ int VbGetSystemPropertyInt(const char* name) { /* NV storage values with no defaults for older BIOS. */ else if (!strcasecmp(name,"tried_fwb")) { value = VbGetNvStorage(VBNV_TRIED_FIRMWARE_B); + } else if (!strcasecmp(name,"kern_nv")) { + value = VbGetNvStorage(VBNV_KERNEL_FIELD); } /* NV storage values. If unable to get from NV storage, fall back to the * CMOS reboot field used by older BIOS. */ @@ -571,9 +573,13 @@ const char* VbGetSystemPropertyString(const char* name, char* dest, int size) { * Returns 0 if success, -1 if error. */ int VbSetSystemPropertyInt(const char* name, int value) { + /* NV storage values with no defaults for older BIOS. */ + if (!strcasecmp(name,"kern_nv")) { + return VbSetNvStorage(VBNV_KERNEL_FIELD, value); + } /* NV storage values. If unable to get from NV storage, fall back to the * CMOS reboot field used by older BIOS. */ - if (!strcasecmp(name,"recovery_request")) { + else if (!strcasecmp(name,"recovery_request")) { if (0 == VbSetNvStorage(VBNV_RECOVERY_REQUEST, value)) return 0; return VbSetCmosRebootField(CMOSRF_RECOVERY, value); diff --git a/utility/crossystem_main.c b/utility/crossystem_main.c index 5352b4d7..ebd6ed55 100644 --- a/utility/crossystem_main.c +++ b/utility/crossystem_main.c @@ -46,6 +46,7 @@ const Param sys_param_list[] = { {"recovery_request", 0, 1, "Recovery mode request (writable)"}, {"dbg_reset", 0, 1, "Debug reset mode request (writable)"}, {"fwb_tries", 0, 1, "Try firmware B count (writable)"}, + {"kern_nv", 0, 1, "Non-volatile field for kernel use", "0x%08x"}, /* TODO: implement the following: * nvram_cleared |