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>
This commit is contained in:
Furquan Shaikh 2018-03-25 22:19:47 -07:00
parent b7b49b00de
commit be04583331
1 changed files with 6 additions and 0 deletions

View File

@ -254,6 +254,12 @@ static void print_me_version(void *unused)
(hfs.fields.operation_mode != ME_HFS_MODE_NORMAL)) (hfs.fields.operation_mode != ME_HFS_MODE_NORMAL))
goto failed; 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, if (!heci_send(&fw_ver_msg, sizeof(fw_ver_msg), BIOS_HOST_ADD,
HECI_MKHI_ADD)) HECI_MKHI_ADD))
goto failed; goto failed;