From 487a54bcbe7b6dac1a856b0991e6d13c34a1c423 Mon Sep 17 00:00:00 2001 From: Sheng-Liang Song Date: Sat, 26 Jul 2014 21:34:28 -0700 Subject: vboot: Notify EC of current boot mode Notify EC of boot mode, i.e. normal, developer or recovery. This is necessary for battery firmware updates. BUG=chrome-os-partner:24741 CQ-DEPEND=CL:205323 CQ-DEPEND=CL:210033 CQ-DEPEND=CL:215720 BRANCH=ToT TEST=Verified on samus & glimmer. Passed runalltests. ~/trunk/src/platform/vboot_reference $ make runalltests -j Change-Id: I1613ede34b4a929d1e8114fb519861f349377e94 Signed-off-by: Sheng-Liang Song Reviewed-on: https://chromium-review.googlesource.com/210032 Reviewed-by: Randall Spangler --- tests/vboot_api_kernel2_tests.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'tests/vboot_api_kernel2_tests.c') diff --git a/tests/vboot_api_kernel2_tests.c b/tests/vboot_api_kernel2_tests.c index 7ecf02f8..3070baea 100644 --- a/tests/vboot_api_kernel2_tests.c +++ b/tests/vboot_api_kernel2_tests.c @@ -45,6 +45,8 @@ static uint32_t screens_count = 0; static uint32_t mock_num_disks[8]; static uint32_t mock_num_disks_count; +extern enum VbEcBootMode_t VbGetMode(void); + /* Reset mock data (for use before each test) */ static void ResetMocks(void) { @@ -262,7 +264,9 @@ static void VbUserConfirmsTest(void) static void VbBootTest(void) { ResetMocks(); + VbExEcEnteringMode(0, VB_EC_NORMAL); TEST_EQ(VbBootNormal(&cparams, &lkp), 1002, "VbBootNormal()"); + TEST_EQ(VbGetMode(), VB_EC_NORMAL, "vboot_mode normal"); } static void VbBootDevTest(void) @@ -273,7 +277,9 @@ static void VbBootDevTest(void) /* Proceed after timeout */ ResetMocks(); + VbExEcEnteringMode(0, VB_EC_DEVELOPER); TEST_EQ(VbBootDeveloper(&cparams, &lkp), 1002, "Timeout"); + TEST_EQ(VbGetMode(), VB_EC_DEVELOPER, "vboot_mode developer"); TEST_EQ(screens_displayed[0], VB_SCREEN_DEVELOPER_WARNING, " warning screen"); VbNvGet(VbApiKernelGetVnc(), VBNV_RECOVERY_REQUEST, &u); @@ -448,8 +454,11 @@ static void VbBootRecTest(void) /* Shutdown requested in loop */ ResetMocks(); shutdown_request_calls_left = 10; + VbExEcEnteringMode(0, VB_EC_RECOVERY); TEST_EQ(VbBootRecovery(&cparams, &lkp), VBERROR_SHUTDOWN_REQUESTED, "Shutdown requested"); + TEST_EQ(VbGetMode(), VB_EC_RECOVERY, "vboot_mode recovery"); + VbNvGet(VbApiKernelGetVnc(), VBNV_RECOVERY_REQUEST, &u); TEST_EQ(u, 0, " recovery reason"); TEST_EQ(screens_displayed[0], VB_SCREEN_BLANK, -- cgit v1.2.1