summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
Diffstat (limited to 'util')
-rw-r--r--util/ectool.c41
1 files changed, 17 insertions, 24 deletions
diff --git a/util/ectool.c b/util/ectool.c
index 9d51cc7bc4..1717ae1850 100644
--- a/util/ectool.c
+++ b/util/ectool.c
@@ -843,33 +843,14 @@ static const char *reset_cause_to_str(uint16_t cause)
int cmd_uptimeinfo(int argc, char *argv[])
{
- static const char * const reset_flag_strings[] = {
- "other",
- "reset-pin",
- "brownout",
- "power-on",
- "watchdog",
- "soft",
- "hibernate",
- "rtc-alarm",
- "wake-pin",
- "low-battery",
- "sysjump",
- "hard",
- "ap-off",
- "preserved",
- "usb-resume",
- "rdd",
- "rbox",
- "security",
- "ap-watchdog"
- };
-
struct ec_response_uptime_info r;
int rv;
int i;
int flag_count;
uint32_t flag;
+ static const char * const reset_flag_descs[] = {
+ #include "reset_flag_desc.inc"
+ };
if (argc != 1) {
fprintf(stderr, "uptimeinfo takes no arguments");
@@ -901,15 +882,27 @@ int cmd_uptimeinfo(int argc, char *argv[])
}
printf("EC reset flags at last EC boot: ");
+
+ if (!r.ec_reset_flags) {
+ printf("unknown\n");
+ return 0;
+ }
+
flag_count = 0;
- for (flag = 0; flag != ARRAY_SIZE(reset_flag_strings); ++flag) {
+ for (flag = 0; flag < ARRAY_SIZE(reset_flag_descs); ++flag) {
if ((r.ec_reset_flags & BIT(flag)) != 0) {
if (flag_count)
printf(" | ");
- printf(reset_flag_strings[flag]);
+ printf(reset_flag_descs[flag]);
flag_count++;
}
}
+
+ if (r.ec_reset_flags >= BIT(flag)) {
+ if (flag_count)
+ printf(" | ");
+ printf("no-desc");
+ }
printf("\n");
return 0;
}