summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2017-11-30 17:41:09 -0800
committerAaron Durbin <adurbin@chromium.org>2017-12-08 17:12:37 +0000
commit40d0bfa212d5516c68d3ad044334f7d2cc6b4445 (patch)
tree123df866ee4e44d970987200165e009b8b9ae1e2
parentff906fb95bab0c4c24c2589fd0de3b1d1d0b2e24 (diff)
downloadcoreboot-40d0bfa212d5516c68d3ad044334f7d2cc6b4445.tar.xz
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.h3
-rw-r--r--src/vendorcode/google/chromeos/cr50_enable_update.c7
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();
}