diff options
Diffstat (limited to 'meta-facebook/meta-minerva/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle')
-rw-r--r-- | meta-facebook/meta-minerva/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/meta-facebook/meta-minerva/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle b/meta-facebook/meta-minerva/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle new file mode 100644 index 0000000000..deaa7afe5a --- /dev/null +++ b/meta-facebook/meta-minerva/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle @@ -0,0 +1,59 @@ +#!/bin/bash + +# shellcheck source=meta-facebook/meta-minerva/recipes-minerva/plat-tool/files/minerva-common-functions +source /usr/libexec/minerva-common-functions + +# Minerva CMM Sled Power Cycle and Chassis Power Cycle + +cmm-hsc-power-cycle() { + #TBD: Since there has a 2nd HSC, it is necessary to determine which HSC it is now. + + # LTC4287 MFR_REBOOT_CONTROL (FDh) Read/Write + # [3]: + # REBOOT 0 Write a 1 to reboot. + # [2:0] + # RBT_DL 100 Configures Auto-Reboot turn-on Delay (tDL(RBT)) after the REBOOT bit is set to 1 + # RBT_DL[2:0] DELAY + # 000 0.580 s + # 001 1.16 s + # 010 2.32 s + # 011 4.64 s + # 100 9.28 s + # 101 18.6 s + # 110 37.1 s + # 111 74.2 s + i2cset -y -f 0 0x44 0xfd 0x00 + i2cset -y -f 0 0x44 0xfd 0x0b +} + +compute-blade-hsc-power-off() { + for i in {0..15} + do + set_gpio "PWREN_MTIA_BLADE${i}_HSC_EN_N" 1 + done +} + +network-blade-hsc-power-off() { + for i in {0..15} + do + set_gpio "PWREN_MTIA_BLADE${i}_HSC_EN_N" 1 + done +} + +# CMM Sled Power Cycle +if [ "$1" == 0 ] +then + echo "Staring CMM Sled Power Cycle" + cmm-hsc-power-cycle +# CMM Chassis Power Cycle +elif [ "$1" == 1 ] +then + echo "Staring CMM Chassis Power Cycle" + + compute-blade-hsc-power-off + network-blade-hsc-power-off + cmm-hsc-power-cycle +else + echo "Invalid CMM Cycle" + exit 1 +fi |