diff options
author | Raptor Engineering Development Team <support@raptorengineering.com> | 2018-04-14 21:46:35 -0500 |
---|---|---|
committer | Timothy Pearson <tpearson@raptorengineering.com> | 2019-04-25 08:01:55 +0000 |
commit | 13012519817eeb849d8ef688ede531b599fe82e6 (patch) | |
tree | fdf4dabb86cd0dd9091cfa5dcd69deebfc959f13 | |
parent | cafc84e485765ec7df32bb41a6dce421aff78f09 (diff) | |
download | talos-openbmc-13012519817eeb849d8ef688ede531b599fe82e6.tar.gz talos-openbmc-13012519817eeb849d8ef688ede531b599fe82e6.zip |
Enhance OCC communication failure error recovery
-rwxr-xr-x | meta-openpower/recipes-phosphor/occ/openpower-occ-control/occ-active.sh | 13 |
1 files changed, 13 insertions, 0 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 08d1813bd..9be4e807e 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 @@ -49,6 +49,12 @@ if [ "$value" == "true" ]; then # Wait 5 seconds before restarting fan controller sleep 5 systemctl restart phosphor-fan-control@0.service +else + # Unbind all OCC drivers to avoid bus contention on next IPL + echo occ1-dev0 > /sys/bus/platform/drivers/occ-hwmon/unbind || true + echo occ2-dev0 > /sys/bus/platform/drivers/occ-hwmon/unbind || true + echo sbefifo1-dev0 > /sys/bus/platform/drivers/occ/unbind || true + echo sbefifo2-dev0 > /sys/bus/platform/drivers/occ/unbind || true fi if [ "$1" == "watchdog" ]; then @@ -81,6 +87,13 @@ if [ "$1" == "watchdog" ]; then 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 'false' + # Give enough time for the OCC control service to attempt unload before forcible unbind + sleep 5 + # Unbind all OCC drivers + echo occ1-dev0 > /sys/bus/platform/drivers/occ-hwmon/unbind || true + echo occ2-dev0 > /sys/bus/platform/drivers/occ-hwmon/unbind || true + echo sbefifo1-dev0 > /sys/bus/platform/drivers/occ/unbind || true + echo sbefifo2-dev0 > /sys/bus/platform/drivers/occ/unbind || true # Wait 10 seconds for OCC to figure out something has happened / bus contention to stop sleep 10 openpower-proc-control scanFSI |