aboutsummaryrefslogtreecommitdiff
path: root/src/ec
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2017-09-21 17:52:36 -0700
committerAaron Durbin <adurbin@chromium.org>2017-10-04 20:55:12 +0000
commit47dffa59f35a46ada039dd86a20497caa8f518e8 (patch)
tree7a88e916aa974e06c53f2e99f4252e311818d977 /src/ec
parent94b64431f3de19c79e7494d9ff25f9ebd1ab7cbc (diff)
chromeec: Remove checks for EC in RO
This patch removes checks that ensure EC to be in RO for recovery boot. We do not need these checks because when recovery is requested automatically (as opposed to manually), we show 'broken' screen where users can only reboot the device or request recovery manually. If recovery is requested, Depthcharge will check whether EC is in RO or not and recovery switch was pressed or not. If it's a legitimate manual recovery, EC should be in RO. Thus, we can trust the recovery button state it reports. This patch removes all calls to google_chromeec_check_ec_image, which is called to avoid duplicate memory training when recovery is requested but EC is in RW. BUG=b:66516882 BRANCH=none CQ-DEPEND=CL:693008 TEST=Boot Fizz. Change-Id: I45a874b73c46ea88cb831485757d194faa9f4c99 Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-on: https://review.coreboot.org/21711 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Furquan Shaikh <furquan@google.com> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src/ec')
-rw-r--r--src/ec/google/chromeec/ec.c77
-rw-r--r--src/ec/google/chromeec/ec.h6
2 files changed, 0 insertions, 83 deletions
diff --git a/src/ec/google/chromeec/ec.c b/src/ec/google/chromeec/ec.c
index 03d4c3bc6d..ab879c57a2 100644
--- a/src/ec/google/chromeec/ec.c
+++ b/src/ec/google/chromeec/ec.c
@@ -325,70 +325,6 @@ int google_chromeec_reboot(int dev_idx, enum ec_reboot_cmd type, uint8_t flags)
}
#ifndef __SMM__
-#ifdef __PRE_RAM__
-void google_chromeec_check_ec_image(int expected_type)
-{
- struct chromeec_command cec_cmd;
- struct ec_response_get_version cec_resp = { { 0 } };
-
- cec_cmd.cmd_code = EC_CMD_GET_VERSION;
- cec_cmd.cmd_version = 0;
- cec_cmd.cmd_data_out = &cec_resp;
- cec_cmd.cmd_size_in = 0;
- cec_cmd.cmd_size_out = sizeof(cec_resp);
- cec_cmd.cmd_dev_index = 0;
- google_chromeec_command(&cec_cmd);
-
- if (cec_cmd.cmd_code || cec_resp.current_image != expected_type) {
- /* Reboot the EC and make it come back in RO mode */
- printk(BIOS_DEBUG, "Rebooting with EC in RO mode:\n");
- post_code(0); /* clear current post code */
- /* Let the platform prepare for the EC taking out the system power. */
- if (IS_ENABLED(CONFIG_VBOOT))
- vboot_platform_prepare_reboot();
- google_chromeec_reboot(0, EC_REBOOT_COLD, 0);
- udelay(1000);
- hard_reset();
- halt();
- }
-}
-
-/* Check for recovery mode and ensure PD/EC is in RO */
-void google_chromeec_early_init(void)
-{
- if (!IS_ENABLED(CONFIG_CHROMEOS) || !vboot_recovery_mode_enabled())
- return;
-
- /* Check USB PD chip state first */
- if (IS_ENABLED(CONFIG_EC_GOOGLE_CHROMEEC_PD))
- google_chromeec_check_pd_image(EC_IMAGE_RO);
-
- /* If in recovery ensure EC is running RO firmware. */
- google_chromeec_check_ec_image(EC_IMAGE_RO);
-}
-
-void google_chromeec_check_pd_image(int expected_type)
-{
- struct chromeec_command cec_cmd;
- struct ec_response_get_version cec_resp = { { 0 } };
-
- cec_cmd.cmd_code = EC_CMD_GET_VERSION;
- cec_cmd.cmd_version = 0;
- cec_cmd.cmd_data_out = &cec_resp;
- cec_cmd.cmd_size_in = 0;
- cec_cmd.cmd_size_out = sizeof(cec_resp);
- cec_cmd.cmd_dev_index = 1; /* PD */
- google_chromeec_command(&cec_cmd);
-
- if (cec_cmd.cmd_code || cec_resp.current_image != expected_type) {
- /* Reboot the PD and make it come back in RO mode */
- printk(BIOS_DEBUG, "Rebooting PD to RO mode\n");
- google_chromeec_reboot(1 /* PD */, EC_REBOOT_COLD, 0);
- udelay(1000);
- }
-}
-#endif
-
u16 google_chromeec_get_board_version(void)
{
struct chromeec_command cmd;
@@ -696,19 +632,6 @@ void google_chromeec_init(void)
cec_resp.current_image);
ec_image_type = cec_resp.current_image;
}
-
- if (cec_cmd.cmd_code ||
- (vboot_recovery_mode_enabled() &&
- (cec_resp.current_image != EC_IMAGE_RO))) {
- /* Reboot the EC and make it come back in RO mode */
- printk(BIOS_DEBUG, "Rebooting with EC in RO mode:\n");
- post_code(0); /* clear current post code */
- google_chromeec_reboot(0, EC_REBOOT_COLD, 0);
- udelay(1000);
- hard_reset();
- halt();
- }
-
}
int google_ec_running_ro(void)
diff --git a/src/ec/google/chromeec/ec.h b/src/ec/google/chromeec/ec.h
index 3a7cadd506..81bc9336e5 100644
--- a/src/ec/google/chromeec/ec.h
+++ b/src/ec/google/chromeec/ec.h
@@ -40,12 +40,6 @@ int google_chromeec_set_device_enabled_events(uint32_t mask);
uint32_t google_chromeec_get_device_current_events(void);
void google_chromeec_log_device_events(uint32_t mask);
-/* If recovery mode is enabled and EC is not running RO firmware reboot. */
-void google_chromeec_early_init(void);
-/* Reboot if EC firmware is not expected type. */
-void google_chromeec_check_ec_image(int expected_type);
-void google_chromeec_check_pd_image(int expected_type);
-
int google_chromeec_check_feature(int feature);
uint8_t google_chromeec_calc_checksum(const uint8_t *data, int size);
u16 google_chromeec_get_board_version(void);