summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDuncan Laurie <dlaurie@chromium.org>2012-07-13 10:11:54 -0700
committerRonald G. Minnich <rminnich@gmail.com>2012-07-26 20:33:45 +0200
commitc1c9435863dd4bb22d06de486527d58b8a9e0170 (patch)
tree3a3767d7863f217e1adc67bef68a081172b3ee07
parent55864eff9218259335a776a139424c4d178cf14e (diff)
Log event for abnormal management engine status
This will log if the ME is disabled or has an error. 1) disable ME via EC console: gpioset PCH_HDA_SDO 1 2) boot the device 3) read eventlog with "mosys eventlog list" 71 | 2012-07-13 10:10:55 | Management Engine | Disabled Change-Id: I9f6ee452d2aea76e6a5ea2cd50a50ff36245692a Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: http://review.coreboot.org/1345 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
-rw-r--r--src/include/elog.h3
-rw-r--r--src/southbridge/intel/bd82x6x/me.c7
-rw-r--r--src/southbridge/intel/bd82x6x/me_8.x.c7
3 files changed, 11 insertions, 6 deletions
diff --git a/src/include/elog.h b/src/include/elog.h
index 7d89f45d17..5a84c75d4b 100644
--- a/src/include/elog.h
+++ b/src/include/elog.h
@@ -105,6 +105,9 @@ struct elog_event_data_wake {
#define ELOG_TYPE_CROS_DEVELOPER_MODE 0xa0
#define ELOG_TYPE_CROS_RECOVERY_MODE 0xa1
+/* Management Engine Events */
+#define ELOG_TYPE_MANAGEMENT_ENGINE 0xa2
+
extern int elog_init(void);
extern int elog_clear(void);
extern void elog_add_event_raw(u8 event_type, void *data, u8 data_size);
diff --git a/src/southbridge/intel/bd82x6x/me.c b/src/southbridge/intel/bd82x6x/me.c
index 464d0fde0e..3b7f3428bc 100644
--- a/src/southbridge/intel/bd82x6x/me.c
+++ b/src/southbridge/intel/bd82x6x/me.c
@@ -35,6 +35,7 @@
#include <device/pci_def.h>
#include <string.h>
#include <delay.h>
+#include <elog.h>
#ifdef __SMM__
# include <arch/romcc_io.h>
@@ -727,9 +728,9 @@ static void intel_me_init(device_t dev)
case ME_RECOVERY_BIOS_PATH:
case ME_DISABLE_BIOS_PATH:
case ME_FIRMWARE_UPDATE_BIOS_PATH:
- /*
- * TODO(dlaurie) Force recovery mode if ME is unhappy?
- */
+#if CONFIG_ELOG
+ elog_add_event_byte(ELOG_TYPE_MANAGEMENT_ENGINE, path);
+#endif
break;
}
}
diff --git a/src/southbridge/intel/bd82x6x/me_8.x.c b/src/southbridge/intel/bd82x6x/me_8.x.c
index 74bf1aecdb..9461d61cdf 100644
--- a/src/southbridge/intel/bd82x6x/me_8.x.c
+++ b/src/southbridge/intel/bd82x6x/me_8.x.c
@@ -35,6 +35,7 @@
#include <device/pci_def.h>
#include <string.h>
#include <delay.h>
+#include <elog.h>
#ifdef __SMM__
# include <arch/romcc_io.h>
@@ -730,9 +731,9 @@ static void intel_me_init(device_t dev)
case ME_RECOVERY_BIOS_PATH:
case ME_DISABLE_BIOS_PATH:
case ME_FIRMWARE_UPDATE_BIOS_PATH:
- /*
- * TODO(dlaurie) Force recovery mode if ME is unhappy?
- */
+#if CONFIG_ELOG
+ elog_add_event_byte(ELOG_TYPE_MANAGEMENT_ENGINE, path);
+#endif
break;
}
}