summaryrefslogtreecommitdiff
path: root/firmware/2lib
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@google.com>2015-07-30 13:38:24 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-08-01 02:51:38 +0000
commit8804be8cbeccfca8085a45c76c0d510f030d9061 (patch)
treef44f8c919a125880d3ed2630da0a27a0be3ecaa7 /firmware/2lib
parent14f122601f45d95a0162be8ad1456d9824cb80f9 (diff)
downloadvboot-8804be8cbeccfca8085a45c76c0d510f030d9061.tar.gz
VbNvStorage: Add flags for misc settings
1. Change offset 8 to hold all misc settings (fastboot, boot_on_ac detect) instead of only fastboot settings. 2. Add flag to hold state of boot_on_ac_detect (If set to 1, AP should start booting as soon as AC is connected in off-state). BUG=chrome-os-partner:41680 BRANCH=None TEST=Compiles successfully. make runtests successful. Change-Id: I64b3fc69bd52cbcaf5899c953ccafa2e81b5b8a5 Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://chromium-review.googlesource.com/289900 Trybot-Ready: Furquan Shaikh <furquan@chromium.org> Tested-by: Furquan Shaikh <furquan@chromium.org> Reviewed-by: Vincent Palatin <vpalatin@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org> Commit-Queue: Furquan Shaikh <furquan@chromium.org>
Diffstat (limited to 'firmware/2lib')
-rw-r--r--firmware/2lib/2nvstorage.c12
-rw-r--r--firmware/2lib/include/2nvstorage.h2
-rw-r--r--firmware/2lib/include/2nvstorage_fields.h9
3 files changed, 16 insertions, 7 deletions
diff --git a/firmware/2lib/2nvstorage.c b/firmware/2lib/2nvstorage.c
index 35cf6fcc..66a2202f 100644
--- a/firmware/2lib/2nvstorage.c
+++ b/firmware/2lib/2nvstorage.c
@@ -158,8 +158,10 @@ uint32_t vb2_nv_get(struct vb2_context *ctx, enum vb2_nv_param param)
return GETBIT(VB2_NV_OFFS_HEADER , VB2_NV_HEADER_WIPEOUT);
case VB2_NV_FASTBOOT_UNLOCK_IN_FW:
- return GETBIT(VB2_NV_OFFS_FASTBOOT,
- VB2_NV_FASTBOOT_FLAG_UNLOCK_IN_FW);
+ return GETBIT(VB2_NV_OFFS_MISC, VB2_NV_MISC_UNLOCK_FASTBOOT);
+
+ case VB2_NV_BOOT_ON_AC_DETECT:
+ return GETBIT(VB2_NV_OFFS_MISC, VB2_NV_MISC_BOOT_ON_AC_DETECT);
}
/*
@@ -312,7 +314,11 @@ void vb2_nv_set(struct vb2_context *ctx,
break;
case VB2_NV_FASTBOOT_UNLOCK_IN_FW:
- SETBIT(VB2_NV_OFFS_FASTBOOT, VB2_NV_FASTBOOT_FLAG_UNLOCK_IN_FW);
+ SETBIT(VB2_NV_OFFS_MISC, VB2_NV_MISC_UNLOCK_FASTBOOT);
+ break;
+
+ case VB2_NV_BOOT_ON_AC_DETECT:
+ SETBIT(VB2_NV_OFFS_MISC, VB2_NV_MISC_BOOT_ON_AC_DETECT);
break;
}
diff --git a/firmware/2lib/include/2nvstorage.h b/firmware/2lib/include/2nvstorage.h
index 9ade3e78..0a533e3e 100644
--- a/firmware/2lib/include/2nvstorage.h
+++ b/firmware/2lib/include/2nvstorage.h
@@ -88,6 +88,8 @@ enum vb2_nv_param {
/* Fastboot: Unlock in firmware, 0=disabled, 1=enabled. */
VB2_NV_FASTBOOT_UNLOCK_IN_FW,
+ /* Boot system when AC detected (0=no, 1=yes). */
+ VB2_NV_BOOT_ON_AC_DETECT,
};
/* Firmware result codes for VB2_NV_FW_RESULT and VB2_NV_FW_PREV_RESULT */
diff --git a/firmware/2lib/include/2nvstorage_fields.h b/firmware/2lib/include/2nvstorage_fields.h
index 0a6c5385..45d9a7c5 100644
--- a/firmware/2lib/include/2nvstorage_fields.h
+++ b/firmware/2lib/include/2nvstorage_fields.h
@@ -28,12 +28,12 @@ enum vb2_nv_offset {
VB2_NV_OFFS_TPM = 5,
VB2_NV_OFFS_RECOVERY_SUBCODE = 6,
VB2_NV_OFFS_BOOT2 = 7,
- VB2_NV_OFFS_FASTBOOT = 8,
+ VB2_NV_OFFS_MISC = 8,
/* Offsets 9-10 are currently unused */
VB2_NV_OFFS_KERNEL = 11, /* 11-14; field is 32 bits */
/* CRC must be last field */
VB2_NV_OFFS_CRC = 15
-};
+ };
/* Fields in VB2_NV_OFFS_HEADER (unused = 0x07) */
#define VB2_NV_HEADER_WIPEOUT 0x08
@@ -67,7 +67,8 @@ enum vb2_nv_offset {
#define VB2_NV_TPM_CLEAR_OWNER_REQUEST 0x01
#define VB2_NV_TPM_CLEAR_OWNER_DONE 0x02
-/* Fields in VB2_NV_OFFS_FASTBOOT (unused = 0xfe) */
-#define VB2_NV_FASTBOOT_FLAG_UNLOCK_IN_FW 0x01
+/* Fields in VB2_NV_OFFS_MISC (unused = 0xfc) */
+#define VB2_NV_MISC_UNLOCK_FASTBOOT 0x01
+#define VB2_NV_MISC_BOOT_ON_AC_DETECT 0x02
#endif /* VBOOT_REFERENCE_VBOOT_2NVSTORAGE_FIELDS_H_ */