1#!/bin/bash 2 3# Provide source directive to shellcheck. 4# shellcheck source=meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/power-cmd 5source /usr/libexec/phosphor-state-manager/power-cmd 6# shellcheck source=meta-facebook/meta-yosemite4/recipes-yosemite4/plat-tool/files/yosemite4-common-functions 7source /usr/libexec/yosemite4-common-functions 8 9# Handle chassis and host power state for chassis poweron failure. 10 11CHASSIS_ID=$1 12IO_EXP_SLOT_PWR_STATUS=$((CHASSIS_ID - 1)) 13 14GPIOCHIP_IO_EXP_SLOT_PWR_CTRL=$(basename "/sys/bus/i2c/devices/$SPIDER_BOARD_IO_EXP_BUS_NUM-00$IO_EXP_SLOT_PWR_CTRL_ADDR/"*gpiochip*) 15 16chassis_status=$(get_ac_on_status "$GPIOCHIP_IO_EXP_SLOT_PWR_CTRL" "$IO_EXP_SLOT_PWR_STATUS") 17if [ "$chassis_status" == "$STATE_OFF" ] 18then 19 # Stop obmc-chassis-poweron.target to avoid chassis-state-manager to set power state to On. 20 /bin/systemctl stop obmc-chassis-poweron@"${CHASSIS_ID}".target 21 22 # Set chassis power state to Off. 23 /bin/sh -c "busctl set-property $(mapper get-service /xyz/openbmc_project/state/chassis"${CHASSIS_ID}") \ 24 /xyz/openbmc_project/state/chassis${CHASSIS_ID} \ 25 xyz.openbmc_project.State.Chassis CurrentPowerState \ 26 s xyz.openbmc_project.State.Chassis.PowerState.Off" 27fi 28