summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeny Zinoviev <me@ch1p.io>2021-02-06 22:15:50 +0300
committerEvgeny Zinoviev <me@ch1p.io>2021-02-06 22:15:50 +0300
commit3aaf67d1eaf795758890f45258fece9ef2cbc822 (patch)
tree47c01d1a636d8e035d1bc1387f4ec29921f5eeb3
parent189743035a791317bd07ac2c08c4b763e2128ee5 (diff)
medisable: try to read SET ME ENABLE RESPONSE
-rw-r--r--src/southbridge/intel/bd82x6x/me_common.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/southbridge/intel/bd82x6x/me_common.c b/src/southbridge/intel/bd82x6x/me_common.c
index 1b25d146be..0ba00967f6 100644
--- a/src/southbridge/intel/bd82x6x/me_common.c
+++ b/src/southbridge/intel/bd82x6x/me_common.c
@@ -471,6 +471,8 @@ void exit_soft_temp_disable_wait(struct device *dev)
{
struct me_hfs hfs;
struct stopwatch sw;
+ struct mkhi_header mkhi;
+ u32 resp;
stopwatch_init_msecs_expire(&sw, ME_ENABLE_TIMEOUT);
@@ -485,11 +487,21 @@ void exit_soft_temp_disable_wait(struct device *dev)
break;
} while (!stopwatch_expired(&sw));
- if (!hfs.fw_init_complete)
+ if (!hfs.fw_init_complete) {
printk(BIOS_ERR, "ME: giving up on waiting for fw_init_complete\n");
- else
- printk(BIOS_NOTICE, "ME: took %lums to complete initialization\n",
- stopwatch_duration_msecs(&sw));
+ return;
+ }
+
+ printk(BIOS_NOTICE, "ME: took %lums to complete initialization\n",
+ stopwatch_duration_msecs(&sw));
+
+ int result = mei_recv_msg(&mkhi, &resp, sizeof(resp));
+ printk(BIOS_NOTICE, "ME: SET ME ENABLE RESPONSE: resp=%08x\n", resp);
+
+ if (result < 0 || resp != MKHI_DISABLE_RULE_ID) {
+ printk(BIOS_ERR, "ME: failed to read SET ME ENABLE RESPONSE\n");
+ return;
+ }
}
#endif