chromeos: Unconditionally clear the EC recovery request
Add the empty weak function clear_recovery_mode_switch().
Problem:
If GBB_FLAG_DISABLE_EC_SOFTWARE_SYNC is set,
the following will happen:
1. Boot device in recovery mode with Esc + F3 + Pwr.
2. Turn device off with Pwr button.
3. Turn device on with Pwr button.
Device still boots to recovery screen with
recovery_reason:0x02 recovery button pressed.
If GBB_FLAG_DISABLE_EC_SOFTWARE_SYNC isn't set, turning the
device off and on again with the Pwr button does a normal boot.
Solution:
Unconditionally clear the recovery flag.
BUG=chromium:279607
BRANCH=TOT
TEST=Compile OK.
Original-Change-Id: Ie1e3251a6db12e75e385220e9d3791078393b1bf
Original-Signed-off-by: Sheng-Liang Song <ssl@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/197780
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Original-Reviewed-by: Randall Spangler <rspangler@chromium.org>
Original-Commit-Queue: Sheng-liang Song <ssl@google.com>
Original-Tested-by: Sheng-liang Song <ssl@google.com>
(cherry picked from commit 18908bb64c)
Signed-off-by: Marc Jones <marc.jones@se-eng.com>
Change-Id: I71ca9f3ea8d816c865375ec66a0603ca211f23ae
Reviewed-on: http://review.coreboot.org/7895
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Tested-by: build bot (Jenkins)
This commit is contained in:
parent
afde961adf
commit
1d6560fc60
5 changed files with 36 additions and 18 deletions
|
|
@ -54,6 +54,12 @@ int vboot_enable_recovery(void)
|
|||
return !!(vbho->init_params.out_flags & VB_INIT_OUT_ENABLE_RECOVERY);
|
||||
}
|
||||
|
||||
int __attribute__((weak)) clear_recovery_mode_switch(void)
|
||||
{
|
||||
// Can be implemented by a mainboard
|
||||
return 0;
|
||||
}
|
||||
|
||||
int vboot_skip_display_init(void)
|
||||
{
|
||||
struct vboot_handoff *vbho;
|
||||
|
|
|
|||
|
|
@ -245,8 +245,10 @@ static void vboot_invoke_wrapper(struct vboot_handoff *vboot_handoff)
|
|||
iflags = &vboot_handoff->init_params.flags;
|
||||
if (get_developer_mode_switch())
|
||||
*iflags |= VB_INIT_FLAG_DEV_SWITCH_ON;
|
||||
if (get_recovery_mode_switch())
|
||||
if (get_recovery_mode_switch()) {
|
||||
clear_recovery_mode_switch();
|
||||
*iflags |= VB_INIT_FLAG_REC_BUTTON_PRESSED;
|
||||
}
|
||||
if (get_write_protect_state())
|
||||
*iflags |= VB_INIT_FLAG_WP_ENABLED;
|
||||
if (vboot_get_sw_write_protect())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue