diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2017-05-30 14:18:55 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-06-28 21:50:51 -0700 |
commit | e42acfe20013d971fc93d0bee1f117645fe5ebdf (patch) | |
tree | dec9dffc7b104d039df11068bfccc22c8600c604 /power | |
parent | c4157673b909896884f594052ac2e19b0cfc2280 (diff) | |
download | chrome-ec-e42acfe20013d971fc93d0bee1f117645fe5ebdf.tar.gz |
vboot: Add vboot for EC by EC
This patch adds vboot for EC by EC (vboot EC) for x86 systems.
When ec is transitioning s5->s3, it checks the power supply is
enough to boot AP or not. If not, it runs other checks and may
finally validate and jump to a RW image.
BUG=b:38462249
BRANCH=none
TEST=Boot Fizz on barrel jack and type-c charger.
Change-Id: I5988b0595976370c5303c45541702ae89d86fc97
Reviewed-on: https://chromium-review.googlesource.com/518254
Commit-Ready: Daisuke Nojiri <dnojiri@chromium.org>
Tested-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
Diffstat (limited to 'power')
-rw-r--r-- | power/intel_x86.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/power/intel_x86.c b/power/intel_x86.c index f4b5251d00..cb3dc93e0e 100644 --- a/power/intel_x86.c +++ b/power/intel_x86.c @@ -20,6 +20,7 @@ #include "system.h" #include "task.h" #include "util.h" +#include "vboot.h" #include "wireless.h" /* Chipset specific header files */ @@ -180,7 +181,6 @@ enum power_state power_chipset_init(void) enum power_state common_intel_x86_power_handle_state(enum power_state state) { - switch (state) { case POWER_G3: break; @@ -270,6 +270,23 @@ enum power_state common_intel_x86_power_handle_state(enum power_state state) return POWER_G3; } +#ifdef CONFIG_VBOOT_EC + /* + * We have to test power readiness here (instead of S5->S3) + * because when entering S5, EC enables EC_ROP_SLP_SUS pin + * which causes (short-powered) system to brown out. + */ + { + if (!system_can_boot_ap()) { + vboot_ec(); + while (!system_can_boot_ap()) + /* LED blinks as HOOK_TICK events trigger. + * We can print percent & power as they + * improve. */ + msleep(200); + } + } +#endif power_s5_up = 1; return POWER_S5; |