aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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.
+}