vboot: Add support for recovery mode with forced memory retraining

1. Add new function vboot_recovery_mode_memory_retrain that indicates if
recovery mode requires memory retraining to be performed.
2. Add helper function get_recovery_mode_retrain_switch to read memory
retrain switch. This is provided as weak function which should be
implemented by mainboard just like {get,clear}_recovery_mode_switch.

BUG=chrome-os-partner:59352
BRANCH=None
TEST=Verified behavior of recovery mode with forced memory retraining on
reef

Change-Id: I46c10fbf25bc100d9f562c36da3ac646c9dae7d1
Signed-off-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-on: https://review.coreboot.org/17241
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
Furquan Shaikh 2016-11-05 23:52:08 -07:00 committed by Furquan Shaikh
parent 5dc2c1ba8a
commit 470852bb08
3 changed files with 12 additions and 0 deletions

View File

@ -22,6 +22,7 @@ int get_write_protect_state(void);
int get_sw_write_protect_state(void);
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);
int get_wipeout_mode_switch(void);
int get_lid_switch(void);

View File

@ -162,6 +162,16 @@ int vboot_recovery_mode_enabled(void)
return !!vboot_check_recovery_request();
}
int __attribute__((weak)) get_recovery_mode_retrain_switch(void)
{
return 0;
}
int vboot_recovery_mode_memory_retrain(void)
{
return get_recovery_mode_retrain_switch();
}
int vboot_developer_mode_enabled(void)
{
if (!IS_ENABLED(CONFIG_VBOOT))

View File

@ -107,5 +107,6 @@ void verstage_mainboard_init(void);
/* Check boot modes */
int vboot_developer_mode_enabled(void);
int vboot_recovery_mode_enabled(void);
int vboot_recovery_mode_memory_retrain(void);
#endif /* __VBOOT_VBOOT_COMMON_H__ */