summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@google.com>2018-03-25 22:19:47 -0700
committerFurquan Shaikh <furquan@google.com>2018-03-27 06:10:14 +0000
commitbe045833316c7fe71621366ed2934e6cf6385a44 (patch)
tree4358db7d7e241892743b854aa4d65981fd877c74
parentb7b49b00de46f8ff2816554ed939260be8a646d5 (diff)
downloadcoreboot-be045833316c7fe71621366ed2934e6cf6385a44.tar.xz
soc/intel/skylake: Do a heci_reset before reading ME firmware version
This change adds a call to heci_reset before attempting to read ME firmware version. This is important to ensure that both ME and BIOS are in sync. BUG=b:76167737 BRANCH=poppy TEST=Verfied that ME firmware version read does not fail on first boot after power failure (i.e. removing battery and AC power). Change-Id: Ib6b39c398d2e1177b087352a4acb8bcf5a9897d6 Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://review.coreboot.org/25362 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
-rw-r--r--src/soc/intel/skylake/me.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/soc/intel/skylake/me.c b/src/soc/intel/skylake/me.c
index 67d7bc0362..9a721bced1 100644
--- a/src/soc/intel/skylake/me.c
+++ b/src/soc/intel/skylake/me.c
@@ -254,6 +254,12 @@ static void print_me_version(void *unused)
(hfs.fields.operation_mode != ME_HFS_MODE_NORMAL))
goto failed;
+ /*
+ * It is important to do a heci_reset to ensure BIOS and ME are in sync
+ * before reading firmware version.
+ */
+ heci_reset();
+
if (!heci_send(&fw_ver_msg, sizeof(fw_ver_msg), BIOS_HOST_ADD,
HECI_MKHI_ADD))
goto failed;