summaryrefslogtreecommitdiff
path: root/meta-facebook/recipes-fb/fb-powerctrl/files/power-util
diff options
context:
space:
mode:
authorVijay Khemka <vijaykhemka@fb.com>2020-02-21 00:35:51 +0300
committerAndrew Geissler <geissonator@yahoo.com>2020-03-05 04:44:17 +0300
commit60329ae7948afad0113799469efa212bba60b9b7 (patch)
treeb1599d5ef9baa2eb998019c1d2497a176952cc1c /meta-facebook/recipes-fb/fb-powerctrl/files/power-util
parentde4b38553068abc5058acc7bae4d4d855999af03 (diff)
downloadopenbmc-60329ae7948afad0113799469efa212bba60b9b7.tar.xz
meta-facebook: Move common recipe under facebook layer
Moved common facebook recipe under meta-facebook to support multiple facebook platform and make use of common code across platforms. This is just a first phase to add common layer and moved meta-tiogapass/recipe-fbtp to ./recipe-fb. Slowly, will move all common meta data under meta-facebook. (From meta-facebook rev: 2769bfe7823ce0ce426f2faf463c6d91e43b6c29) Change-Id: I7f9f0d2d621524bc6de1c948a55a23238e3a7b7f Signed-off-by: Vijay Khemka <vijaykhemka@fb.com> Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Diffstat (limited to 'meta-facebook/recipes-fb/fb-powerctrl/files/power-util')
-rwxr-xr-xmeta-facebook/recipes-fb/fb-powerctrl/files/power-util83
1 files changed, 83 insertions, 0 deletions
diff --git a/meta-facebook/recipes-fb/fb-powerctrl/files/power-util b/meta-facebook/recipes-fb/fb-powerctrl/files/power-util
new file mode 100755
index 000000000..30fa34cc8
--- /dev/null
+++ b/meta-facebook/recipes-fb/fb-powerctrl/files/power-util
@@ -0,0 +1,83 @@
+#!/bin/bash
+# Usage of this utility
+function usage() {
+ echo "usage: power-util mb [on|off|status|cycle|reset]";
+ echo " power-util sled-cycle"
+}
+
+power_off() {
+ echo "Shutting down Server $2"
+ busctl set-property xyz.openbmc_project.State.Chassis /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis RequestedPowerTransition s xyz.openbmc_project.State.Chassis.Transition.Off
+}
+
+power_on() {
+ echo "Powering on Server $2"
+ busctl set-property xyz.openbmc_project.State.Chassis /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis RequestedPowerTransition s xyz.openbmc_project.State.Chassis.Transition.On
+}
+
+power_status() {
+ st=$(busctl get-property xyz.openbmc_project.State.Chassis /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis CurrentPowerState | cut -d"." -f6)
+ if [ "$st" == "On\"" ]; then
+ echo "on"
+ else
+ echo "off"
+ fi
+}
+
+power_reset() {
+ echo "Reset on server $2"
+ busctl set-property xyz.openbmc_project.State.Chassis /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis RequestedPowerTransition s xyz.openbmc_project.State.Chassis.Transition.Reset
+}
+
+sled_cycle() {
+ i2cset -y 7 0x45 0xd9 c
+}
+
+if [ $1 == "sled-cycle" ]; then
+ echo "SLED_CYCLE starting at $(date)"
+ sled_cycle
+ exit 0;
+fi
+
+if [ $# -lt 2 ]; then
+ echo "Total number of parameter=$#"
+ echo "Insufficient parameter"
+ usage;
+ exit 0;
+fi
+
+if [ $1 != "mb" ]; then
+ echo "Invalid parameter1=$1"
+ usage;
+ exit 0;
+fi
+
+if [ $2 = "on" ]; then
+ if [ $(power_status) == "off" ]; then
+ power_on
+ fi
+elif [ $2 = "off" ]; then
+ if [ $(power_status) == "on" ]; then
+ power_off
+ fi
+elif [ $2 == "cycle" ]; then
+ if [ $(power_status) == "on" ]; then
+ power_off
+ else
+ echo "WARNING: Powering on server"
+ fi
+ power_on
+elif [ $2 == "reset" ]; then
+ if [ $(power_status) == "on" ]; then
+ power_reset
+ else
+ echo "ERROR: Server not powered on"
+ fi
+elif [ $2 == "status" ]; then
+ power_status
+else
+ echo "Invalid parameter2=$2"
+ usage;
+fi
+
+exit 0;