blob: c3f77fd8b1cf30ad444b6422f88524cefe712206 [file] [log] [blame]
Hieu Huynh57fa7922022-07-12 10:18:25 +00001#!/bin/bash
2
3# shellcheck disable=SC2046
4# shellcheck source=/dev/null
5
6source /usr/sbin/gpio-lib.sh
7
8# Do event trigger
9function sel_trigger()
10{
11 echo "Error: system firmware hang, trigger sel"
12 ampere_add_redfishevent.sh OpenBMC.0.1.SystemPowerOnFailed.Critical
13}
14
15# Do reset the system
16function reset_system()
17{
18 echo "Error: system firmware hang, reset the system"
19 ipmitool chassis power reset
20}
21
22s0_last_hb_state=0
23cnt=-1
24while true
25do
26 # Monitor heart beat GPIO value, GPIOF4 for Socket 0
27 s0_hb_state=$(gpio_name_get s0-heartbeat)
28 if [ "$s0_last_hb_state" != "$s0_hb_state" ]; then
29 cnt=0
30 else
31 cnt=$((cnt + 1))
32 fi
33
34 if [ "$cnt" -ge 6 ]; then
35 echo "Error: system firmware hang"
36 sel_trigger
37 reset_system
38 exit 0
39 fi
40 s0_last_hb_state="$s0_hb_state"
41 sleep 0.5
42done
43
44exit 0