summaryrefslogtreecommitdiff
path: root/firmware/lib/vboot_nvstorage.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/lib/vboot_nvstorage.c')
-rw-r--r--firmware/lib/vboot_nvstorage.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/firmware/lib/vboot_nvstorage.c b/firmware/lib/vboot_nvstorage.c
index 54ac5ec9..3b2a725b 100644
--- a/firmware/lib/vboot_nvstorage.c
+++ b/firmware/lib/vboot_nvstorage.c
@@ -57,8 +57,9 @@
#define BOOT2_PREV_RESULT_SHIFT 4 /* Number of bits to shift result */
#define BOOT2_PREV_TRIED 0x40
-#define FASTBOOT_OFFSET 8
-#define FASTBOOT_UNLOCK_IN_FW 0x01
+#define MISC_OFFSET 8
+#define MISC_UNLOCK_FASTBOOT 0x01
+#define MISC_BOOT_ON_AC_DETECT 0x02
#define KERNEL_FIELD_OFFSET 11
#define CRC_OFFSET 15
@@ -206,7 +207,11 @@ int VbNvGet(VbNvContext *context, VbNvParam param, uint32_t *dest)
return 0;
case VBNV_FASTBOOT_UNLOCK_IN_FW:
- *dest = (raw[FASTBOOT_OFFSET] & FASTBOOT_UNLOCK_IN_FW) ? 1 : 0;
+ *dest = (raw[MISC_OFFSET] & MISC_UNLOCK_FASTBOOT) ? 1 : 0;
+ return 0;
+
+ case VBNV_BOOT_ON_AC_DETECT:
+ *dest = (raw[MISC_OFFSET] & MISC_BOOT_ON_AC_DETECT) ? 1 : 0;
return 0;
default:
@@ -397,9 +402,16 @@ int VbNvSet(VbNvContext *context, VbNvParam param, uint32_t value)
case VBNV_FASTBOOT_UNLOCK_IN_FW:
if (value)
- raw[FASTBOOT_OFFSET] |= FASTBOOT_UNLOCK_IN_FW;
+ raw[MISC_OFFSET] |= MISC_UNLOCK_FASTBOOT;
+ else
+ raw[MISC_OFFSET] &= ~MISC_UNLOCK_FASTBOOT;
+ break;
+
+ case VBNV_BOOT_ON_AC_DETECT:
+ if (value)
+ raw[MISC_OFFSET] |= MISC_BOOT_ON_AC_DETECT;
else
- raw[FASTBOOT_OFFSET] &= ~FASTBOOT_UNLOCK_IN_FW;
+ raw[MISC_OFFSET] &= ~MISC_BOOT_ON_AC_DETECT;
break;
default: