diff --git a/src/commonlib/bsd/include/commonlib/bsd/elog.h b/src/commonlib/bsd/include/commonlib/bsd/elog.h index f7dc4a1ac0..01f97f6957 100644 --- a/src/commonlib/bsd/include/commonlib/bsd/elog.h +++ b/src/commonlib/bsd/include/commonlib/bsd/elog.h @@ -389,6 +389,9 @@ struct elog_event_extended_event { #define ELOG_FW_POST_RAM_CSE_SYNC 0x1 #define ELOG_FW_CSE_SYNC_AT_PAYLOAD 0x2 +#define ELOG_TYPE_LOW_BATTERY_INDICATOR 0xbe +#define ELOG_FW_ISSUE_SHUTDOWN 0x0 + /* Only the 7-LSB are used for size */ #define ELOG_MAX_EVENT_SIZE 0x7F diff --git a/util/cbfstool/eventlog.c b/util/cbfstool/eventlog.c index 4746670513..2312b75f8b 100644 --- a/util/cbfstool/eventlog.c +++ b/util/cbfstool/eventlog.c @@ -170,6 +170,7 @@ static void eventlog_print_type(const struct event_header *event) {ELOG_TYPE_PSR_DATA_LOST, "PSR data lost"}, {ELOG_TYPE_FW_SPLASH_SCREEN, "Firmware Splash Screen"}, {ELOG_TYPE_FW_CSE_SYNC, "Firmware CSE sync"}, + {ELOG_TYPE_LOW_BATTERY_INDICATOR, "Low Battery boot"}, {ELOG_TYPE_EOL, "End of log"}, }; @@ -491,6 +492,11 @@ static int eventlog_print_data(const struct event_header *event) {0, NULL}, }; + static const struct valstr low_battery_status[] = { + {ELOG_FW_ISSUE_SHUTDOWN, "Power Off"}, + {0, NULL}, + }; + size_t elog_type_to_min_size[] = { [ELOG_TYPE_LOG_CLEAR] = sizeof(uint16_t), [ELOG_TYPE_BOOT] = sizeof(uint32_t), @@ -513,6 +519,7 @@ static int eventlog_print_data(const struct event_header *event) [ELOG_TYPE_PSR_DATA_BACKUP] = sizeof(uint8_t), [ELOG_TYPE_FW_SPLASH_SCREEN] = sizeof(uint8_t), [ELOG_TYPE_FW_CSE_SYNC] = sizeof(uint8_t), + [ELOG_TYPE_LOW_BATTERY_INDICATOR] = sizeof(uint8_t), [0xff] = 0, }; @@ -684,6 +691,11 @@ static int eventlog_print_data(const struct event_header *event) eventlog_printf("%s", val2str(*cse_event, cse_sync_path_types)); break; } + case ELOG_TYPE_LOW_BATTERY_INDICATOR: { + const uint8_t *low_battery_event = event_get_data(event); + eventlog_printf("%s", val2str(*low_battery_event, low_battery_status)); + break; + } default: break; }