diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2017-11-30 17:41:09 -0800 |
---|---|---|
committer | Aaron Durbin <adurbin@chromium.org> | 2017-12-08 17:12:37 +0000 |
commit | 40d0bfa212d5516c68d3ad044334f7d2cc6b4445 (patch) | |
tree | 123df866ee4e44d970987200165e009b8b9ae1e2 | |
parent | ff906fb95bab0c4c24c2589fd0de3b1d1d0b2e24 (diff) |
cr50: Make EC clear AP_OFF before hibnernate
This patch makes AP send EC_REBOOT_HIBERNATE_CLEAR_AP_OFF, which makes
EC clear AP_OFF flag then hibernate.
This is needed to make Chromebox boot when cr50 toggles the EC's reset
line after TURN_UPDATE_ON command.
BUG=b:69721737
BRANCH=none
CQ-DEPEND=CL:802632
TEST=Verify Fizz reboot after cr50 update.
Change-Id: I5f590286393ac21382cab64afdccae92d3fc14ba
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-on: https://review.coreboot.org/22657
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
-rw-r--r-- | src/ec/google/chromeec/ec_commands.h | 3 | ||||
-rw-r--r-- | src/vendorcode/google/chromeos/cr50_enable_update.c | 7 |
2 files changed, 6 insertions, 4 deletions
diff --git a/src/ec/google/chromeec/ec_commands.h b/src/ec/google/chromeec/ec_commands.h index aa63aa766d..ee889b727b 100644 --- a/src/ec/google/chromeec/ec_commands.h +++ b/src/ec/google/chromeec/ec_commands.h @@ -3785,7 +3785,8 @@ enum ec_reboot_cmd { /* (command 3 was jump to RW-B) */ EC_REBOOT_COLD = 4, /* Cold-reboot */ EC_REBOOT_DISABLE_JUMP = 5, /* Disable jump until next reboot */ - EC_REBOOT_HIBERNATE = 6 /* Hibernate EC */ + EC_REBOOT_HIBERNATE = 6, /* Hibernate EC */ + EC_REBOOT_HIBERNATE_CLEAR_AP_OFF = 7, /* and clears AP_OFF flag */ }; /* Flags for ec_params_reboot_ec.reboot_flags */ diff --git a/src/vendorcode/google/chromeos/cr50_enable_update.c b/src/vendorcode/google/chromeos/cr50_enable_update.c index 7e8806e2d7..b5e4b6cc67 100644 --- a/src/vendorcode/google/chromeos/cr50_enable_update.c +++ b/src/vendorcode/google/chromeos/cr50_enable_update.c @@ -61,9 +61,10 @@ static void enable_update(void *unused) if (IS_ENABLED(CONFIG_POWER_OFF_ON_CR50_UPDATE)) { if (IS_ENABLED(CONFIG_EC_GOOGLE_CHROMEEC)) { - printk(BIOS_INFO, "Hibernating EC.\n"); - google_chromeec_reboot(0, EC_REBOOT_HIBERNATE, - EC_REBOOT_FLAG_ON_AP_SHUTDOWN); + printk(BIOS_INFO, "Hibernating EC. Clearing AP_OFF.\n"); + google_chromeec_reboot(0, + EC_REBOOT_HIBERNATE_CLEAR_AP_OFF, + EC_REBOOT_FLAG_ON_AP_SHUTDOWN); } poweroff(); } |