181046ed2SPeter Shen#!/bin/bash 281046ed2SPeter Shen 381046ed2SPeter Shen# shellcheck source=meta-facebook/recipes-fb/obmc_functions/files/fb-common-functions 481046ed2SPeter Shensource /usr/libexec/fb-common-functions 581046ed2SPeter Shen# shellcheck source=meta-facebook/meta-anacapa/recipes-phosphor/state/phosphor-state-manager/power-cmd 681046ed2SPeter Shensource /usr/libexec/phosphor-state-manager/power-cmd 781046ed2SPeter Shen 8*6fc6377cSColin Huang# when host power on, bind pca9546 on bridge L/R board 9*6fc6377cSColin Huangbind_i2c_device pca954x 0-0070 3 10*6fc6377cSColin Huangbind_i2c_device pca954x 1-0070 3 1181046ed2SPeter Shen 1281046ed2SPeter Shencurrentstate=$(busctl get-property \ 1381046ed2SPeter Shen xyz.openbmc_project.State.Host0 \ 1481046ed2SPeter Shen /xyz/openbmc_project/state/host0 \ 1581046ed2SPeter Shen xyz.openbmc_project.State.Host \ 1681046ed2SPeter Shen CurrentHostState | awk '{print $2}' | tr -d '"') 1781046ed2SPeter Shen 1881046ed2SPeter Shenif [ "$currentstate" == "xyz.openbmc_project.State.Host.HostState.TransitioningToRunning" ]; then 1981046ed2SPeter Shen exit 0 2081046ed2SPeter Shenfi 2181046ed2SPeter Shen 2281046ed2SPeter Shen 2381046ed2SPeter Shenactive=$(systemctl is-active host-poweron@0.service) 2481046ed2SPeter Shenif [ -z "$active" ] || [ "$active" != "inactive" ]; then 2581046ed2SPeter Shen exit 0 2681046ed2SPeter Shenfi 2781046ed2SPeter Shen 2881046ed2SPeter Shenactive=$(systemctl is-active host-powerreset@0.service) 2981046ed2SPeter Shenif [ -z "$active" ] || [ "$active" != "inactive" ]; then 3081046ed2SPeter Shen exit 0 3181046ed2SPeter Shenfi 3281046ed2SPeter Shen 3381046ed2SPeter Shen# Sync power status to "On" for abnormal power-on scenarios. 3481046ed2SPeter Shen 3581046ed2SPeter Shentransition=$(busctl get-property \ 3681046ed2SPeter Shen xyz.openbmc_project.State.Host0 \ 3781046ed2SPeter Shen /xyz/openbmc_project/state/host0 \ 3881046ed2SPeter Shen xyz.openbmc_project.State.Host \ 3981046ed2SPeter Shen RequestedHostTransition | awk '{print $2}' | tr -d '"') 4081046ed2SPeter Shen 4181046ed2SPeter Shenif [ "$transition" != "xyz.openbmc_project.State.Host.Transition.On" ] && [ "$(power_status)" == "on" ]; then 4281046ed2SPeter Shen busctl set-property xyz.openbmc_project.State.Host0 \ 4381046ed2SPeter Shen /xyz/openbmc_project/state/host0 \ 4481046ed2SPeter Shen xyz.openbmc_project.State.Host \ 4581046ed2SPeter Shen RequestedHostTransition s \ 4681046ed2SPeter Shen xyz.openbmc_project.State.Host.Transition.On 4781046ed2SPeter Shenfi 4881046ed2SPeter Shen 4981046ed2SPeter Shen 5081046ed2SPeter Shenexit 0 51