diff options
author | Raptor Engineering Development Team <support@raptorengineering.com> | 2018-01-21 16:09:28 -0600 |
---|---|---|
committer | Raptor Engineering Development Team <support@raptorengineering.com> | 2018-01-21 16:09:28 -0600 |
commit | 85ff156eca61043b1a8fb145955694bed445e678 (patch) | |
tree | 0f90a4207285aa4afef74c54b6181315926f557f | |
parent | 555f9f1c1e6b724fe7de468054b14b952bbcfb58 (diff) | |
download | talos-openbmc-85ff156eca61043b1a8fb145955694bed445e678.tar.gz talos-openbmc-85ff156eca61043b1a8fb145955694bed445e678.zip |
Add watchdog mode to OCC enable service
This works around transient OCC communication failure disabling fan control
2 files changed, 20 insertions, 5 deletions
diff --git a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/occ/openpower-occ-control/occ-active.sh b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/occ/openpower-occ-control/occ-active.sh index c005c7dd8..c4c791f85 100755 --- a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/occ/openpower-occ-control/occ-active.sh +++ b/meta-openbmc-machines/meta-openpower/common/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-openbmc-machines/meta-openpower/common/recipes-phosphor/occ/openpower-occ-control/op-occ-enable@.service b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/occ/openpower-occ-control/op-occ-enable@.service index 2e969b8e8..6db68af53 100644 --- a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/occ/openpower-occ-control/op-occ-enable@.service +++ b/meta-openbmc-machines/meta-openpower/common/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 |