diff options
-rw-r--r-- | src/include/elog.h | 1 | ||||
-rw-r--r-- | src/vendorcode/google/chromeos/gnvs.c | 9 |
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 } |