summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@chromium.org>2016-11-12 11:09:28 -0800
committerMartin Roth <martinroth@google.com>2016-11-14 20:13:26 +0100
commit626eea2d42af79117879ceb2f6d354634f81aac8 (patch)
tree54c04b5b54a9ea65082d971e211ff8c40c3b4f9d
parent941e27bebbfb043620b68e695ace48642a69ec4f (diff)
vboot: Add new function for logging recovery mode switches
BUG=chrome-os-partner:59352 BRANCH=None TEST=Compiles successfully Change-Id: I87cd675ea45a8b05a178cf64119bf5f9d8d218ca Signed-off-by: Furquan Shaikh <furquan@chromium.org> Reviewed-on: https://review.coreboot.org/17408 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@chromium.org>
-rw-r--r--src/include/bootmode.h1
-rw-r--r--src/vboot/vboot_handoff.c4
-rw-r--r--src/vendorcode/google/chromeos/chromeos.c5
3 files changed, 10 insertions, 0 deletions
diff --git a/src/include/bootmode.h b/src/include/bootmode.h
index c807472c59..db40a6de55 100644
--- a/src/include/bootmode.h
+++ b/src/include/bootmode.h
@@ -24,6 +24,7 @@ int get_developer_mode_switch(void);
int get_recovery_mode_switch(void);
int get_recovery_mode_retrain_switch(void);
int clear_recovery_mode_switch(void);
+void log_recovery_mode_switch(void);
int get_wipeout_mode_switch(void);
int get_lid_switch(void);
diff --git a/src/vboot/vboot_handoff.c b/src/vboot/vboot_handoff.c
index b0bd04ca16..b732b3aaa8 100644
--- a/src/vboot/vboot_handoff.c
+++ b/src/vboot/vboot_handoff.c
@@ -153,6 +153,10 @@ void vboot_fill_handoff(void)
/* needed until we finish transtion to vboot2 for kernel verification */
fill_vboot_handoff(vh, sd);
+
+ /* Log the recovery mode switches if required, before clearing them. */
+ log_recovery_mode_switch();
+
/*
* The recovery mode switch is cleared (typically backed by EC) here
* to allow multiple queries to get_recovery_mode_switch() and have
diff --git a/src/vendorcode/google/chromeos/chromeos.c b/src/vendorcode/google/chromeos/chromeos.c
index 563f6fd99b..b7d1e45829 100644
--- a/src/vendorcode/google/chromeos/chromeos.c
+++ b/src/vendorcode/google/chromeos/chromeos.c
@@ -33,3 +33,8 @@ int __attribute__((weak)) get_sw_write_protect_state(void)
// Can be implemented by a platform / mainboard
return 0;
}
+
+void __attribute__((weak)) log_recovery_mode_switch(void)
+{
+ // Weak implementation. Nothing to do.
+}