Add kern_nv field to crossystem

Change-Id: Ifa5cc3bd8367a258fb720162572f450a1be99c03

BUG=none
TEST=manual

crossystem kern_nv=0x12345678
crossystem kern_nv

Review URL: http://codereview.chromium.org/6602040
diff --git a/host/lib/crossystem.c b/host/lib/crossystem.c
index 9fe1feb..8e482d3 100644
--- a/host/lib/crossystem.c
+++ b/host/lib/crossystem.c
@@ -487,6 +487,8 @@
   /* 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 @@
  * 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);