summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2019-10-21 10:07:48 -0700
committerCommit Bot <commit-bot@chromium.org>2020-02-09 08:31:43 +0000
commit37151225f4d791204a75173eec64ebfdaf2cbdec (patch)
treea9680e1fd0897c1ea6e0461055760c42944fdee7 /board
parenta4f7c8ef7c0b9b3206f67299414c2cbd2a5fe84a (diff)
downloadchrome-ec-37151225f4d791204a75173eec64ebfdaf2cbdec.tar.gz
EFS2: Implement Early Firmware Selection ver.2
EFS v1 allowed Chromeboxes to verify RW without AP. EFS v2 will bring the benefts to Chromebooks, which are: - Reduce RO dependency and presence. Allow more code to be updated in the fields. - Remove jumptag and workarounds needed for late sysjump. Major imporvements over v1 are: - No A/B slot required. - No signature in RW or public key in RO. - Rollback-attack protection. - Verifies only RW being used instead of whole RW section. For battery-equipped devices, additional benefts are: - Immediate boot on drained battery. - Support recovery mode regardless of battery condition. - Faster charge in S5/G3. EC-Cr50 communication is based on the shared UART (go/ec-cr50-comm). EFS2 is documented in go/ec-efs2. Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> BUG=chromium:1045217,chromium:141143112 BRANCH=none TEST=Boot Helios in NORMAL/NO_BOOT/NO_BOOT_RECOVERY/RECOVERY mode. TEST=Wake up EC from hibernate. TEST=Make EC assert PACKET_MODE to wake up Cr50 from deepsleep. Change-Id: I98a4fe1ecc59d106810a75daec3c424f953ff880 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2015357 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Commit-Queue: Daisuke Nojiri <dnojiri@chromium.org> Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Auto-Submit: Daisuke Nojiri <dnojiri@chromium.org>
Diffstat (limited to 'board')
-rw-r--r--board/endeavour/board.h2
-rw-r--r--board/endeavour/led.c4
-rw-r--r--board/puff/board.h2
-rw-r--r--board/puff/led.c4
4 files changed, 6 insertions, 6 deletions
diff --git a/board/endeavour/board.h b/board/endeavour/board.h
index a37b3ab947..989ad69e78 100644
--- a/board/endeavour/board.h
+++ b/board/endeavour/board.h
@@ -148,7 +148,7 @@ enum OEM_ID {
/* Board specific handlers */
void led_alert(int enable);
-void led_critical(void);
+void show_critical_error(void);
#endif /* !__ASSEMBLER__ */
diff --git a/board/endeavour/led.c b/board/endeavour/led.c
index f6d270c25b..5133b65f74 100644
--- a/board/endeavour/led.c
+++ b/board/endeavour/led.c
@@ -174,7 +174,7 @@ void led_alert(int enable)
}
}
-void led_critical(void)
+void show_critical_error(void)
{
hook_call_deferred(&led_tick_data, -1);
if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
@@ -202,7 +202,7 @@ static int command_led(int argc, char **argv)
} else if (!strcasecmp(argv[1], "alert")) {
led_alert(1);
} else if (!strcasecmp(argv[1], "crit")) {
- led_critical();
+ show_critical_error();
} else {
return EC_ERROR_PARAM1;
}
diff --git a/board/puff/board.h b/board/puff/board.h
index 7d0fdbaefc..0c69c58eef 100644
--- a/board/puff/board.h
+++ b/board/puff/board.h
@@ -264,7 +264,7 @@ enum temp_sensor_id {
void board_reset_pd_mcu(void);
void board_set_tcpc_power_mode(int port, int mode);
void led_alert(int enable);
-void led_critical(void);
+void show_critical_error(void);
#endif /* !__ASSEMBLER__ */
diff --git a/board/puff/led.c b/board/puff/led.c
index 49dfbce935..56f0914872 100644
--- a/board/puff/led.c
+++ b/board/puff/led.c
@@ -179,7 +179,7 @@ void led_alert(int enable)
}
}
-void led_critical(void)
+void show_critical_error(void)
{
hook_call_deferred(&led_tick_data, -1);
if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
@@ -207,7 +207,7 @@ static int command_led(int argc, char **argv)
} else if (!strcasecmp(argv[1], "alert")) {
led_alert(1);
} else if (!strcasecmp(argv[1], "crit")) {
- led_critical();
+ show_critical_error();
} else {
return EC_ERROR_PARAM1;
}