diff options
Diffstat (limited to 'firmware/lib/vboot_nvstorage.c')
-rw-r--r-- | firmware/lib/vboot_nvstorage.c | 22 |
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: |