meta-bletchley: power-ctrl: add host recovery mode

Add command to trigger host recovery mode

Signed-off-by: Potin Lai <potin.lai@quantatw.com>
Change-Id: I1067c347b975ef531a58e6022e3ef4d9f3eee67a
diff --git a/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/power-ctrl b/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/power-ctrl
index b27ca32..4b0ec8a 100755
--- a/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/power-ctrl
+++ b/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/power-ctrl
@@ -309,7 +309,7 @@
 }
 
 function show_usage(){
-    echo "Usage: power-ctrl [sled1 | sled2 | sled3 | sled4 | sled5 | sled6]  [on off ac-on ac-off status dfu]"
+    echo "Usage: power-ctrl [sled1 | sled2 | sled3 | sled4 | sled5 | sled6]  [on off ac-on ac-off status dfu recovery]"
     echo "       power-ctrl chassis-cycle"
 }
 
@@ -422,6 +422,29 @@
         echo "SLED$SLED_NUM: release power button failed"
         exit 1
     fi
+elif [[ "$ACTION" == "recovery" ]]; then
+    if [ "$(get_ac_status "$SLED_NUM")" != "$HOST_AC_OFF" ]; then
+        echo "Please turn off host before trigger recovery mode"
+        exit 1
+    fi
+    echo "Set host$SLED_NUM Recovery mode"
+
+    # press power button
+    echo "SLED$SLED_NUM: pressing power button"
+    if ! press_power_button "$SLED_NUM"; then
+        echo "SLED$SLED_NUM: press power button failed"
+        echo "SLED$SLED_NUM: releasing power button"
+        release_power_button "$SLED_NUM"
+        exit 1
+    fi
+    sleep 10
+
+    # release power button
+    echo "SLED$SLED_NUM: releasing host power button"
+    if ! release_power_button "$SLED_NUM"; then
+        echo "SLED$SLED_NUM: release power button failed"
+        exit 1
+    fi
 else
     echo "Unknown action: [ ${ACTION} ]"
     show_usage