summaryrefslogtreecommitdiff
path: root/common/system.c
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2017-07-12 11:12:58 -0700
committerchrome-bot <chrome-bot@chromium.org>2017-07-14 04:01:45 -0700
commit921e9b71258c318f364457d97a94d3fb9e1bbbfc (patch)
tree1ff1afcf36153e7884fb6c0086c7dc063564a9a8 /common/system.c
parenta53d2f5949942899cdb5d7b43f5ecc3820f0627e (diff)
downloadchrome-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 'common/system.c')
-rw-r--r--common/system.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/common/system.c b/common/system.c
index 66e7be5192..1f9a2062c1 100644
--- a/common/system.c
+++ b/common/system.c
@@ -983,13 +983,9 @@ static int command_sysjump(int argc, char **argv)
/* Handle named images */
if (!strcasecmp(argv[1], "RO"))
return system_run_image_copy(SYSTEM_IMAGE_RO);
- else if (!strcasecmp(argv[1], "RW") || !strcasecmp(argv[1], "A")) {
- /*
- * TODO(crosbug.com/p/11149): remove "A" once all scripts are
- * updated to use "RW".
- */
+ else if (!strcasecmp(argv[1], "RW") || !strcasecmp(argv[1], "A"))
return system_run_image_copy(SYSTEM_IMAGE_RW);
- } else if (!strcasecmp(argv[1], "B")) {
+ else if (!strcasecmp(argv[1], "B")) {
#ifdef CONFIG_RW_B
return system_run_image_copy(SYSTEM_IMAGE_RW_B);
#else