diff options
Diffstat (limited to 'meta-facebook/recipes-phosphor/state/phosphor-state-manager/greatlakes/chassis-powercycle')
-rw-r--r-- | meta-facebook/recipes-phosphor/state/phosphor-state-manager/greatlakes/chassis-powercycle | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/meta-facebook/recipes-phosphor/state/phosphor-state-manager/greatlakes/chassis-powercycle b/meta-facebook/recipes-phosphor/state/phosphor-state-manager/greatlakes/chassis-powercycle new file mode 100644 index 0000000000..6ae8c12823 --- /dev/null +++ b/meta-facebook/recipes-phosphor/state/phosphor-state-manager/greatlakes/chassis-powercycle @@ -0,0 +1,39 @@ +#!/bin/bash + +# Provide source directive to shellcheck. +# shellcheck source=meta-facebook/recipes-phosphor/state/phosphor-state-manager/greatlakes/power-cmd +source /usr/libexec/power-cmd + +POWER_OK_SLOT=$(( $1+9 )) +slot=$(( $1-1 )) +OFFSET=$(( 0x9 + slot )) + +chassis-power-gpio-status() +{ + POWER_OK_SLOT=$(( $1+9 )) + if [ "$1" -le 4 ] + then + status=$(gpioget 0 $POWER_OK_SLOT) + if [ "$status" == 1 ] + then + i2cset -y $BUS_NUM $CPLD_PWR_CTRL_ADDR $OFFSET $POW_OFF_SLOT + sleep 10 + fi + i2cset -y $BUS_NUM $CPLD_PWR_CTRL_ADDR $OFFSET $POW_ON_SLOT + exit 0; + fi + echo "invalid slot id" + exit 1; +} + +chassisid=$1 +if [ "$chassisid" == 0 ] +then + echo "Enter SLED-cycle" + result=$(i2cset -y $BUS_NUM $CPLD_PWR_CTRL_ADDR 0x2b 0x1) + echo "$result" +else + echo "Enter slot$1 cycle" + chassis-power-gpio-status "$chassisid" +fi + |