From 8de884424cb65bdba80a5602e76a4e40b11b154f Mon Sep 17 00:00:00 2001 From: Duncan Laurie Date: Mon, 16 Jul 2012 12:47:45 -0700 Subject: 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 Reviewed-on: http://review.coreboot.org/1346 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich --- src/vendorcode/google/chromeos/gnvs.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/vendorcode/google') 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 } -- cgit v1.2.3