summaryrefslogtreecommitdiff
path: root/meta-facebook/recipes-phosphor/state/phosphor-state-manager/greatlakes/host-powerreset
blob: f08c1317d66bf164c2757c5af3e4f3ae7fb110e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/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

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