summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/include/elog.h1
-rw-r--r--src/vendorcode/google/chromeos/gnvs.c9
2 files changed, 7 insertions, 3 deletions
diff --git a/src/include/elog.h b/src/include/elog.h
index 5a84c75d4b..488549eb1e 100644
--- a/src/include/elog.h
+++ b/src/include/elog.h
@@ -104,6 +104,7 @@ struct elog_event_data_wake {
/* Chrome OS related events */
#define ELOG_TYPE_CROS_DEVELOPER_MODE 0xa0
#define ELOG_TYPE_CROS_RECOVERY_MODE 0xa1
+#define ELOG_CROS_RECOVERY_MODE_BUTTON 0x02
/* Management Engine Events */
#define ELOG_TYPE_MANAGEMENT_ENGINE 0xa2
diff --git a/src/vendorcode/google/chromeos/gnvs.c b/src/vendorcode/google/chromeos/gnvs.c
index c8ccfe4301..2e9975c9cb 100644
--- a/src/vendorcode/google/chromeos/gnvs.c
+++ b/src/vendorcode/google/chromeos/gnvs.c
@@ -37,11 +37,14 @@ void chromeos_init_vboot(chromeos_acpi_t *chromeos)
memcpy(vboot_data->mehh, me_hash_saved, sizeof(vboot_data->mehh));
#if CONFIG_ELOG
- if (developer_mode_enabled())
+ if (developer_mode_enabled() ||
+ (vboot_wants_oprom() && !recovery_mode_enabled()))
elog_add_event(ELOG_TYPE_CROS_DEVELOPER_MODE);
- if (recovery_mode_enabled())
+ if (recovery_mode_enabled()) {
+ int reason = get_recovery_mode_from_vbnv();
elog_add_event_byte(ELOG_TYPE_CROS_RECOVERY_MODE,
- get_recovery_mode_from_vbnv());
+ reason ? reason : ELOG_CROS_RECOVERY_MODE_BUTTON);
+ }
#endif
}