summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/soc/intel/cannonlake/reset.c11
-rw-r--r--src/soc/intel/common/block/cse/cse.c4
2 files changed, 10 insertions, 5 deletions
diff --git a/src/soc/intel/cannonlake/reset.c b/src/soc/intel/cannonlake/reset.c
index 03f9cb812b..512fbbe0f3 100644
--- a/src/soc/intel/cannonlake/reset.c
+++ b/src/soc/intel/cannonlake/reset.c
@@ -25,6 +25,7 @@
/* Reset Request */
#define MKHI_GLOBAL_RESET 0x0b
+#define MKHI_STATUS_SUCCESS 0
#define GR_ORIGIN_BIOS_MEM_INIT 0x01
#define GR_ORIGIN_BIOS_POST 0x02
@@ -67,13 +68,13 @@ static int send_heci_reset_message(void)
reply_size = sizeof(reply);
memset(&reply, 0, reply_size);
- heci_receive(&reply, &reply_size);
- /* get reply result from HECI MSG */
- if (reply.result != 0) {
- printk(BIOS_DEBUG, "%s: Exit with Failure\n", __func__);
+ if (!heci_receive(&reply, &reply_size))
+ return -1;
+ if (reply.result != MKHI_STATUS_SUCCESS) {
+ printk(BIOS_DEBUG, "Returned Mkhi Status is not success!\n");
return -1;
}
- printk(BIOS_DEBUG, "%s: Exit with Success\n", __func__);
+ printk(BIOS_DEBUG, "Heci recieve success!\n");
return 0;
}
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 */