summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbootstat/boot_reason_test.sh4
-rw-r--r--bootstat/bootstat.cpp13
2 files changed, 14 insertions, 3 deletions
diff --git a/bootstat/boot_reason_test.sh b/bootstat/boot_reason_test.sh
index 01b894842..8ed92a680 100755
--- a/bootstat/boot_reason_test.sh
+++ b/bootstat/boot_reason_test.sh
@@ -445,6 +445,10 @@ validate_reason() {
445 *hw_reset* ) var="hard,hw_reset" ;; 445 *hw_reset* ) var="hard,hw_reset" ;;
446 *usb* ) var="cold,charger" ;; 446 *usb* ) var="cold,charger" ;;
447 *rtc* ) var="cold,rtc" ;; 447 *rtc* ) var="cold,rtc" ;;
448 *2sec_reboot* ) var="cold,rtc,2sec" ;;
449 *wdt_by_pass_pwk* ) var="warm" ;;
450 wdt ) var="reboot" ;;
451 *tool_by_pass_pwk* ) var="reboot,tool" ;;
448 *bootloader* ) var="bootloader" ;; 452 *bootloader* ) var="bootloader" ;;
449 * ) var="reboot" ;; 453 * ) var="reboot" ;;
450 esac 454 esac
diff --git a/bootstat/bootstat.cpp b/bootstat/bootstat.cpp
index 3250b3e34..529d0c942 100644
--- a/bootstat/bootstat.cpp
+++ b/bootstat/bootstat.cpp
@@ -201,7 +201,7 @@ const std::map<std::string, int32_t> kBootReasonMap = {
201 {"cold", 56}, 201 {"cold", 56},
202 {"hard", 57}, 202 {"hard", 57},
203 {"warm", 58}, 203 {"warm", 58},
204 // {"recovery", 59}, // Duplicate of enum 3 above. Immediate reuse possible. 204 {"reboot,kernel_power_off_charging__reboot_system", 59}, // Can not happen
205 {"thermal-shutdown", 60}, 205 {"thermal-shutdown", 60},
206 {"shutdown,thermal", 61}, 206 {"shutdown,thermal", 61},
207 {"shutdown,battery", 62}, 207 {"shutdown,battery", 62},
@@ -228,7 +228,7 @@ const std::map<std::string, int32_t> kBootReasonMap = {
228 {"2sec_reboot", 83}, 228 {"2sec_reboot", 83},
229 {"reboot,by_key", 84}, 229 {"reboot,by_key", 84},
230 {"reboot,longkey", 85}, 230 {"reboot,longkey", 85},
231 {"reboot,2sec", 86}, 231 {"reboot,2sec", 86}, // Deprecate in two years, replaced with cold,rtc,2sec
232 {"shutdown,thermal,battery", 87}, 232 {"shutdown,thermal,battery", 87},
233 {"reboot,its_just_so_hard", 88}, // produced by boot_reason_test 233 {"reboot,its_just_so_hard", 88}, // produced by boot_reason_test
234 {"reboot,Its Just So Hard", 89}, // produced by boot_reason_test 234 {"reboot,Its Just So Hard", 89}, // produced by boot_reason_test
@@ -790,7 +790,10 @@ std::string BootReasonStrToReason(const std::string& boot_reason) {
790 {"hard,hw_reset", "hw_reset"}, 790 {"hard,hw_reset", "hw_reset"},
791 {"cold,charger", "usb"}, 791 {"cold,charger", "usb"},
792 {"cold,rtc", "rtc"}, 792 {"cold,rtc", "rtc"},
793 {"reboot,2sec", "2sec_reboot"}, 793 {"cold,rtc,2sec", "2sec_reboot"},
794 {"!warm", "wdt_by_pass_pwk"}, // change flavour of blunt
795 {"!reboot", "^wdt$"}, // change flavour of blunt
796 {"reboot,tool", "tool_by_pass_pwk"},
794 {"bootloader", ""}, 797 {"bootloader", ""},
795 }; 798 };
796 799
@@ -850,6 +853,10 @@ std::string BootReasonStrToReason(const std::string& boot_reason) {
850 ret = "reboot," + subReason; // legitimize unknown reasons 853 ret = "reboot," + subReason; // legitimize unknown reasons
851 } 854 }
852 } 855 }
856 // Some bootloaders shutdown results record in last kernel message.
857 if (!strcmp(ret.c_str(), "reboot,kernel_power_off_charging__reboot_system")) {
858 ret = "shutdown";
859 }
853 } 860 }
854 861
855 // Check for kernel panics, allowed to override reboot command. 862 // Check for kernel panics, allowed to override reboot command.