diff options
author | Duncan Laurie <dlaurie@chromium.org> | 2012-07-16 12:47:45 -0700 |
---|---|---|
committer | Ronald G. Minnich <rminnich@gmail.com> | 2012-07-26 20:34:12 +0200 |
commit | 8de884424cb65bdba80a5602e76a4e40b11b154f (patch) | |
tree | 877377990e0a2426c3cfca9af201b9c7b2665d5f /src/vendorcode/google/chromeos | |
parent | c1c9435863dd4bb22d06de486527d58b8a9e0170 (diff) |
ELOG: Fix reporting of developer/recovery modes
Recent changes in EC/Vboot/U-boot have completely broken
the logging of developer and recovery modes.
Recovery mode may not be in VBNV, so if that is zero and
yet we are in recovery mode then assume it is there because
the button/key was pressed.
Since there may not be any actual developer mode switch
we look if option rom is loaded and the system is not
in recovery mode and consider that as developer mode.
Change-Id: I70104877b24de477217e1ff5b3a019aef22343ec
Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: http://review.coreboot.org/1346
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Diffstat (limited to 'src/vendorcode/google/chromeos')
-rw-r--r-- | src/vendorcode/google/chromeos/gnvs.c | 9 |
1 files changed, 6 insertions, 3 deletions
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 } |