Initial commit

This commit is contained in:
Your Name
2026-04-23 17:07:55 +08:00
commit b7e39e063b
16725 changed files with 1625565 additions and 0 deletions
@@ -0,0 +1,10 @@
[Unit]
Description=Ampere System Firmware Hang Handler
After=obmc-host-already-on@0.target
BindTo=obmc-host-already-on@0.target
ConditionPathExists=!/var/ampere/sysfw-hang-disable
[Service]
Type=simple
ExecStart=/usr/sbin/ampere_sysfw_hang_handler.sh
SyslogIdentifier=ampere_sysfw_hang
@@ -0,0 +1,42 @@
#!/bin/bash
# shellcheck source=meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init/gpio-lib.sh
source /usr/sbin/gpio-lib.sh
# Do event trigger
function sel_trigger()
{
echo "Error: system firmware hang, trigger sel"
ampere_add_redfishevent.sh OpenBMC.0.1.SystemPowerOnFailed.Critical
}
# Do reset the system
function reset_system()
{
echo "Error: system firmware hang, reset the system"
ipmitool chassis power reset
}
s0_last_hb_state=0
cnt=-1
while true
do
# Monitor heart beat GPIO value, GPIOF4 for Socket 0
s0_hb_state=$(gpio_name_get s0-heartbeat)
if [ "$s0_last_hb_state" != "$s0_hb_state" ]; then
cnt=0
else
cnt=$((cnt + 1))
fi
if [ "$cnt" -ge 6 ]; then
echo "Error: system firmware hang"
sel_trigger
reset_system
exit 0
fi
s0_last_hb_state="$s0_hb_state"
sleep 0.5
done
exit 0