summaryrefslogtreecommitdiffstats
path: root/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/occ/openpower-occ-control/occ-active.sh
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openbmc-machines/meta-openpower/common/recipes-phosphor/occ/openpower-occ-control/occ-active.sh')
-rwxr-xr-xmeta-openbmc-machines/meta-openpower/common/recipes-phosphor/occ/openpower-occ-control/occ-active.sh28
1 files changed, 21 insertions, 7 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 f378b566b..ffd1e6bd0 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
@@ -47,6 +47,12 @@ if [ "$value" == "true" ]; then
# Rescan bus to find OCCs
openpower-proc-control scanFSI
+
+ # Bind OCCs
+ echo occ-hwmon.1 > /sys/bus/platform/drivers/occ-hwmon/bind
+ if [ $CPU_COUNT -gt 1 ]; then
+ echo occ-hwmon.2 > /sys/bus/platform/drivers/occ-hwmon/bind
+ fi
fi
busctl tree $OCC_CONTROL_SERVICE --list | grep occ | xargs -r -n1 -I{} \
@@ -59,8 +65,8 @@ if [ "$value" == "true" ]; then
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 occ-hwmon.1 > /sys/bus/platform/drivers/occ-hwmon/unbind || true
+ echo occ-hwmon.2 > /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
@@ -76,19 +82,20 @@ if [ "$1" == "watchdog" ]; then
fi
OCC_FAULT=0
- if [ ! -e /sys/bus/platform/drivers/occ/sbefifo1-dev0/occ1-dev0/occ_error ]; then
+ if [ ! -e /sys/bus/platform/drivers/occ/sbefifo1-dev0/occ-hwmon.1/occ_error ]; then
OCC_FAULT=1
else
- STATUS=$(cat /sys/bus/platform/drivers/occ/sbefifo1-dev0/occ1-dev0/occ_error)
+ STATUS=$(cat /sys/bus/platform/drivers/occ/sbefifo1-dev0/occ-hwmon.1/occ_error)
if [ $STATUS != 0 ]; then
OCC_FAULT=1
fi
fi
if [ $CPU_COUNT -gt 1 ]; then
- if [ ! -e /sys/bus/platform/drivers/occ/sbefifo2-dev0/occ2-dev0/occ_error ]; then
+ if [ ! -e /sys/bus/platform/drivers/occ/sbefifo2-dev0/occ-hwmon.2/occ_error ]; then
OCC_FAULT=1
fi
else
+ STATUS=$(cat /sys/bus/platform/drivers/occ/sbefifo2-dev0/occ-hwmon.2/occ_error)
if [ $STATUS != 0 ]; then
OCC_FAULT=1
fi
@@ -105,8 +112,8 @@ if [ "$1" == "watchdog" ]; then
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 occ-hwmon.1 > /sys/bus/platform/drivers/occ-hwmon/unbind || true
+ echo occ-hwmon.2 > /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
@@ -119,8 +126,15 @@ if [ "$1" == "watchdog" ]; then
exit 0
fi
+ # Rescan bus to find OCCs
openpower-proc-control scanFSI
+ # Bind OCCs
+ echo occ-hwmon.1 > /sys/bus/platform/drivers/occ-hwmon/bind
+ if [ $CPU_COUNT -gt 1 ]; then
+ echo occ-hwmon.2 > /sys/bus/platform/drivers/occ-hwmon/bind
+ fi
+
# Re-enable OCC service
busctl tree $OCC_CONTROL_SERVICE --list | grep occ | xargs -r -n1 -I{} \
busctl set-property $OCC_CONTROL_SERVICE {} org.open_power.OCC.Status \
OpenPOWER on IntegriCloud