diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2017-07-12 11:12:58 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-07-14 04:01:45 -0700 |
commit | 921e9b71258c318f364457d97a94d3fb9e1bbbfc (patch) | |
tree | 1ff1afcf36153e7884fb6c0086c7dc063564a9a8 /power | |
parent | a53d2f5949942899cdb5d7b43f5ecc3820f0627e (diff) | |
download | chrome-ec-921e9b71258c318f364457d97a94d3fb9e1bbbfc.tar.gz |
vboot: Jump to RW early
This change makes EC run vboot in the HOOK task. The vboot routine
requires battery and charger info. It waits in a deferred call
loop until the charge manager is initialized.
BUG=b:63586051
BRANCH=none
TEST=Verify the following cases:
A. Hardware reboot (type-c/BJ)
1. Unplug AC in S0 then plug in AC: BOOT/BOOT
2. Unplug AC in S5 then plug in AC: S5/S5
3. Unplug AC after A.2 then plug in AC: S5/S5
4. Press PB in S5: BOOT/BOOT
B. Software reboot (type-c/BJ)
1. Run EC reboot command in S0: BOOT/BOOT
2. Run EC reboot command in S5: BOOT/BOOT
3. Run EC reboot ap-off command in S0: S5/S5
4. Run EC reboot ap-off command in S5: S5/S5
5. Run host reboot command: BOOT/BOOT
6. Run host shutdown command: S5/S5
C. Recovery tests
1. Press RB and PB in S0: FAIL(*1)/PASS
2. Press RB and PB in S5: FAIL(*1)/PASS(*2)
3. Unplug AC in S0 then press RB and plug in AC: PASS/PASS
4. Unplug AC in S5 then press RB and plug in AC: PASS(*2)/PASS(*2)
*1: b:63668669
*2: b:63669512. Requires one more PB press.
Change-Id: I28f37fdad7f83d0d44570b9003e8c6a4b83b832f
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/568699
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Diffstat (limited to 'power')
-rw-r--r-- | power/intel_x86.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/power/intel_x86.c b/power/intel_x86.c index 90a8682d7c..954ec5d29a 100644 --- a/power/intel_x86.c +++ b/power/intel_x86.c @@ -278,16 +278,11 @@ enum power_state common_intel_x86_power_handle_state(enum power_state state) * 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_main(); - while (!system_can_boot_ap()) - /* LED blinks as HOOK_TICK events trigger. - * We can print percent & power as they - * improve. */ - msleep(200); - } - } + 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; |