util/cbfstool/eventlog: Add low battery event type
This commit adds a new event type, `ELOG_TYPE_LOW_BATTERY_INDICATOR`, to the event log. This event is logged when the system boots due to a low battery condition. It includes the reason for the shutdown, currently only supporting "Power Off". BUG=b:339673254 TEST=Able to capture the eventlog for low battery boot event. ``` > elogtool list 9 | 2025-02-03 09:44:19+0530 | Low Battery Boot | Power Off ``` Change-Id: I5cc5e5f540657c7dfd174a4928e697a272da813a Signed-off-by: Subrata Banik <subratabanik@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/86223 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Julius Werner <jwerner@chromium.org> Reviewed-by: Dinesh Gehlot <digehlot@google.com> Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
This commit is contained in:
parent
976a28bcfa
commit
d25a73d9a7
2 changed files with 15 additions and 0 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue