From c50296d997ee9d8643f8bf5d1fce1842194c9cc9 Mon Sep 17 00:00:00 2001 From: Lijian Zhao Date: Fri, 15 Dec 2017 19:10:18 -0800 Subject: soc/intel: Treat time-out as failure in HECI If HECI gets times out when waiting for read slots, there's no need to read back reply message to decide if the HECI recieve successed or not. Otherwise, system will stuck after global reset required. BUG=b:707290799 TEST=Boot up meowth board without battery, and confirm hard reset got trigged after heci time out. Change-Id: I7c1655284d7027294d8ff5d6a5dbbebe4cbd0c47 Signed-off-by: Lijian Zhao Reviewed-on: https://review.coreboot.org/22910 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin Reviewed-by: Furquan Shaikh --- src/soc/intel/common/block/cse/cse.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/soc/intel/common/block/cse') diff --git a/src/soc/intel/common/block/cse/cse.c b/src/soc/intel/common/block/cse/cse.c index 370074e222..0ff999e199 100644 --- a/src/soc/intel/common/block/cse/cse.c +++ b/src/soc/intel/common/block/cse/cse.c @@ -438,6 +438,10 @@ int heci_receive(void *buff, size_t *maxlen) */ do { received = recv_one_message(&hdr, p, left); + if (!received) { + printk(BIOS_ERR, "HECI: Failed to recieve!\n"); + return 0; + } left -= received; p += received; /* If we read out everything ping to send more */ -- cgit v1.2.3