diff options
author | Raptor Engineering Development Team <support@raptorengineering.com> | 2018-01-21 16:09:28 -0600 |
---|---|---|
committer | Timothy Pearson <tpearson@raptorengineering.com> | 2019-04-25 08:01:51 +0000 |
commit | 171e74cae1ad64198314261b9ab855adf92c2f99 (patch) | |
tree | da19ba06ee79be8cf3e41f5a36a73430d17d4a5e /meta-openpower | |
parent | 272c2158cfaf0c1537881aab72c91dd7724c539e (diff) | |
download | talos-openbmc-171e74cae1ad64198314261b9ab855adf92c2f99.tar.gz talos-openbmc-171e74cae1ad64198314261b9ab855adf92c2f99.zip |
Add watchdog mode to OCC enable service
This works around transient OCC communication failure disabling fan control
Diffstat (limited to 'meta-openpower')
-rwxr-xr-x | meta-openpower/recipes-phosphor/occ/openpower-occ-control/occ-active.sh | 20 | ||||
-rw-r--r-- | meta-openpower/recipes-phosphor/occ/openpower-occ-control/op-occ-enable@.service | 5 |
2 files changed, 20 insertions, 5 deletions
diff --git a/meta-openpower/recipes-phosphor/occ/openpower-occ-control/occ-active.sh b/meta-openpower/recipes-phosphor/occ/openpower-occ-control/occ-active.sh index c005c7dd8..c4c791f85 100755 --- a/meta-openpower/recipes-phosphor/occ/openpower-occ-control/occ-active.sh +++ b/meta-openpower/recipes-phosphor/occ/openpower-occ-control/occ-active.sh @@ -5,6 +5,8 @@ if [ "$1" == "disable" ]; then value='false' elif [ "$1" == "enable" ]; then value='true' +elif [ "$1" == "watchdog" ]; then + value='true' else echo "Usage: occ-active.sh [argument]" echo " enable - set occ's to active state" @@ -14,10 +16,24 @@ fi OCC_CONTROL_SERVICE="org.open_power.OCC.Control" -# Rescan bus to find OCCs -openpower-proc-control scanFSI +if [ "$value" == "true" ]; then + # Rescan bus to find OCCs + openpower-proc-control scanFSI +fi busctl tree $OCC_CONTROL_SERVICE --list | grep occ | xargs -r -n1 -I{} \ busctl set-property $OCC_CONTROL_SERVICE {} org.open_power.OCC.Status \ OccActive b $value + +if [ "$1" == "watchdog" ]; then + # Start watchdog + while [ 1 == 1 ]; do + sleep 5 + if [ ! -e /sys/bus/platform/drivers/occ/sbefifo1-dev0/occ1-dev0/occ_status ]; then + # OCC driver failed. Rescan bus to recover. + openpower-proc-control scanFSI + fi + done +fi + exit 0 diff --git a/meta-openpower/recipes-phosphor/occ/openpower-occ-control/op-occ-enable@.service b/meta-openpower/recipes-phosphor/occ/openpower-occ-control/op-occ-enable@.service index 2e969b8e8..6db68af53 100644 --- a/meta-openpower/recipes-phosphor/occ/openpower-occ-control/op-occ-enable@.service +++ b/meta-openpower/recipes-phosphor/occ/openpower-occ-control/op-occ-enable@.service @@ -9,7 +9,6 @@ After=obmc-host-ipl-complete@%i.target ConditionPathExists=/run/openbmc/host@0-ipl-complete [Service] -ExecStart=/usr/bin/env occ-active.sh enable +ExecStart=/usr/bin/env occ-active.sh watchdog SyslogIdentifier=occ-active.sh -Type=oneshot - +Type=simple |