diff --git a/src/commonlib/bsd/include/commonlib/bsd/elog.h b/src/commonlib/bsd/include/commonlib/bsd/elog.h index 7e564fca21..29c781b6f5 100644 --- a/src/commonlib/bsd/include/commonlib/bsd/elog.h +++ b/src/commonlib/bsd/include/commonlib/bsd/elog.h @@ -305,6 +305,10 @@ struct elog_event_mem_cache_update { #define ELOG_TYPE_MI_HRPC 0xb4 #define ELOG_TYPE_MI_HR 0xb5 +/* Chrome OS diagnostics-related events */ +#define ELOG_TYPE_CROS_DIAGNOSTICS 0xb6 +#define ELOG_CROS_LAUNCH_DIAGNOSTICS 0x01 + struct elog_event_extended_event { uint8_t event_type; uint32_t event_complement; diff --git a/util/cbfstool/eventlog.c b/util/cbfstool/eventlog.c index 3ea352e6eb..1fd4113f52 100644 --- a/util/cbfstool/eventlog.c +++ b/util/cbfstool/eventlog.c @@ -157,6 +157,7 @@ static void eventlog_print_type(const struct event_header *event) {ELOG_TYPE_CR50_NEED_RESET, "cr50 Reset Required"}, {ELOG_TYPE_EC_DEVICE_EVENT, "EC Device"}, {ELOG_TYPE_EXTENDED_EVENT, "Extended Event"}, + {ELOG_TYPE_CROS_DIAGNOSTICS, "Diagnostics Mode"}, {ELOG_TYPE_EOL, "End of log"}, }; @@ -533,6 +534,11 @@ static int eventlog_print_data(const struct event_header *event) {0, NULL}, }; + static const struct valstr cros_diagnostics_types[] = { + {ELOG_CROS_LAUNCH_DIAGNOSTICS, "Launch Diagnostics"}, + {0, NULL}, + }; + switch (event->type) { case ELOG_TYPE_LOG_CLEAR: { const uint16_t *bytes = event_get_data(event); @@ -614,6 +620,10 @@ static int eventlog_print_data(const struct event_header *event) eventlog_printf("0x%X", ext_event->event_complement); break; } + case ELOG_TYPE_CROS_DIAGNOSTICS: { + const uint8_t *type = event_get_data(event); + eventlog_printf("%s", val2str(*type, cros_diagnostics_types)); + } default: break; }