From be045833316c7fe71621366ed2934e6cf6385a44 Mon Sep 17 00:00:00 2001 From: Furquan Shaikh Date: Sun, 25 Mar 2018 22:19:47 -0700 Subject: 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 Reviewed-on: https://review.coreboot.org/25362 Tested-by: build bot (Jenkins) Reviewed-by: Duncan Laurie Reviewed-by: Aaron Durbin --- src/soc/intel/skylake/me.c | 6 ++++++ 1 file changed, 6 insertions(+) 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; -- cgit v1.2.3