| #!/bin/bash |
| |
| # Provide source directive to shellcheck. |
| # shellcheck source=meta-facebook/recipes-phosphor/state/phosphor-state-manager/greatlakes/power-cmd |
| source /usr/libexec/phosphor-state-manager/power-cmd |
| |
| SLOT_ID=$(( $1-1 << 2 )) |
| |
| # Host Reboot |
| host-reboot() |
| { |
| for reset_cmd in "${reset_seq[@]}" |
| do |
| result="$(busctl call $SERVICE $OBJECT_PATH $INTERFACE sendRequest yyyyay $SLOT_ID $NETFN $LUN $CMD $DATA_LEN 0x01 0x42 0x01 0 "$reset_cmd")" |
| echo "$result" |
| if [ "$reset_cmd" == $POWER_BTN_LOW ] |
| then |
| sleep "$1" |
| fi |
| done |
| echo "Host Power Reset" |
| exit 0 |
| } |
| |
| # Check Host Response and Status |
| check-response() |
| { |
| response="$(busctl call $SERVICE $OBJECT_PATH $INTERFACE sendRequest yyyyay $SLOT_ID 0x38 $LUN 0x3 0x03 0x15 0xa0 0x00)" |
| |
| result=$(echo "$response" | cut -d" " -f $PWRGD_SYS_PWROK_INDEX) |
| res="$(( "$result" & 0x80 ))" |
| pgood="$(( "$res" >> 7 ))" |
| if [ "$pgood" == $STATE_ON ] |
| then |
| host-reboot 1 |
| exit 0; |
| else |
| echo "Host is Off" |
| exit 1; |
| fi |
| } |
| |
| check-response |