summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
Diffstat (limited to 'firmware')
-rw-r--r--firmware/2lib/2nvstorage.c10
-rw-r--r--firmware/2lib/include/2nvstorage.h4
-rw-r--r--firmware/2lib/include/2nvstorage_fields.h4
3 files changed, 17 insertions, 1 deletions
diff --git a/firmware/2lib/2nvstorage.c b/firmware/2lib/2nvstorage.c
index 9090608d..e721ca6a 100644
--- a/firmware/2lib/2nvstorage.c
+++ b/firmware/2lib/2nvstorage.c
@@ -218,6 +218,10 @@ uint32_t vb2_nv_get(struct vb2_context *ctx, enum vb2_nv_param param)
| (p[VB2_NV_OFFS_FW_MAX_ROLLFORWARD2] << 8)
| (p[VB2_NV_OFFS_FW_MAX_ROLLFORWARD3] << 16)
| (p[VB2_NV_OFFS_FW_MAX_ROLLFORWARD4] << 24));
+ case VB2_NV_ENABLE_ALT_OS_REQUEST:
+ return GETBIT(VB2_NV_OFFS_MISC, VB2_NV_MISC_ENABLE_ALT_OS);
+ case VB2_NV_DISABLE_ALT_OS_REQUEST:
+ return GETBIT(VB2_NV_OFFS_MISC, VB2_NV_MISC_DISABLE_ALT_OS);
}
/*
@@ -419,6 +423,12 @@ void vb2_nv_set(struct vb2_context *ctx,
p[VB2_NV_OFFS_FW_MAX_ROLLFORWARD3] = (uint8_t)(value >> 16);
p[VB2_NV_OFFS_FW_MAX_ROLLFORWARD4] = (uint8_t)(value >> 24);
break;
+ case VB2_NV_ENABLE_ALT_OS_REQUEST:
+ SETBIT(VB2_NV_OFFS_MISC, VB2_NV_MISC_ENABLE_ALT_OS);
+ break;
+ case VB2_NV_DISABLE_ALT_OS_REQUEST:
+ SETBIT(VB2_NV_OFFS_MISC, VB2_NV_MISC_DISABLE_ALT_OS);
+ break;
}
/*
diff --git a/firmware/2lib/include/2nvstorage.h b/firmware/2lib/include/2nvstorage.h
index 05183d52..9d8374c0 100644
--- a/firmware/2lib/include/2nvstorage.h
+++ b/firmware/2lib/include/2nvstorage.h
@@ -115,6 +115,10 @@ enum vb2_nv_param {
* VB2_MAX_ROLLFORWARD_MAX_V1_DEFAULT for V1.
*/
VB2_NV_FW_MAX_ROLLFORWARD,
+ /* Enable AltOS Mode on next boot. */
+ VB2_NV_ENABLE_ALT_OS_REQUEST,
+ /* Disable AltOS Mode on next boot. */
+ VB2_NV_DISABLE_ALT_OS_REQUEST,
};
/* Set default boot in developer mode */
diff --git a/firmware/2lib/include/2nvstorage_fields.h b/firmware/2lib/include/2nvstorage_fields.h
index 981bbda4..4f7b9e22 100644
--- a/firmware/2lib/include/2nvstorage_fields.h
+++ b/firmware/2lib/include/2nvstorage_fields.h
@@ -101,10 +101,12 @@ enum vb2_nv_offset {
#define VB2_NV_TPM_CLEAR_OWNER_DONE 0x02
#define VB2_NV_TPM_REBOOTED 0x04
-/* Fields in VB2_NV_OFFS_MISC (unused = 0xf0) */
+/* Fields in VB2_NV_OFFS_MISC (unused = 0xc0) */
#define VB2_NV_MISC_UNLOCK_FASTBOOT 0x01
#define VB2_NV_MISC_BOOT_ON_AC_DETECT 0x02
#define VB2_NV_MISC_TRY_RO_SYNC 0x04
#define VB2_NV_MISC_BATTERY_CUTOFF 0x08
+#define VB2_NV_MISC_ENABLE_ALT_OS 0x10
+#define VB2_NV_MISC_DISABLE_ALT_OS 0x20
#endif /* VBOOT_REFERENCE_VBOOT_2NVSTORAGE_FIELDS_H_ */