summaryrefslogtreecommitdiff
path: root/meta-facebook
diff options
context:
space:
mode:
authorAllen.Wang <Allen_Wang@quantatw.com>2022-03-02 09:55:03 +0300
committerPatrick Williams <patrick@stwcx.xyz>2022-03-03 19:12:06 +0300
commit787c9c6b7023a338217e6139f66221ca997b5f73 (patch)
tree24c871b34bb4f6cf92d707f9b4a2a446732821f5 /meta-facebook
parentf653fc3c2a6213d4181a494783f113839027ee0f (diff)
downloadopenbmc-787c9c6b7023a338217e6139f66221ca997b5f73.tar.xz
meta-bletchley: motor-ctrl:check ac status before on/off and refine dfu cmd
a) Block power on/off cmd if ac-relay is off. b) From official User Guide, to enter DFU mode must disconnect the Host from power for at least 10 seconds, but power from ac relay board maybe not be disappear immediately while pull ac-relay control gpio to low. Base on experiment result, expand wait time to 25 sec for workaround. Example: a) When sled2 is ac-off root@bletchley:/# power-ctrl sled2 on sled2 is ac-off, please turn on ac before power on root@bletchley:/# power-ctrl sled2 off sled2 is already ac-off b) Tested 10 times into dfu mode successfully root@bletchley:/# power-ctrl sled2 dfu Set host2 DFU mode SLED2: turn ac-off set_gpio: set power-host2 = 0 success SLED2: pressing power button Motor go forward to press Power button Power button switch triggered SLED2: turn ac-on set_gpio: set power-host2 = 1 success SLED2: releasing host power button Motor reverse to initial position successful Change-Id: Idb006ed1c58fd1736fc9410ca86d86a6ec87a6b9 Signed-off-by: Allen.Wang <Allen_Wang@quantatw.com>
Diffstat (limited to 'meta-facebook')
-rwxr-xr-xmeta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/power-ctrl26
1 files changed, 18 insertions, 8 deletions
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 643d7ca36b..9395b9d304 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
@@ -200,11 +200,21 @@ if [ "$SLED_PRESENT" != 0 ];then
fi
if [[ "$ACTION" == "on" ]]; then
- echo "Power on ${SLED}"
- trigger_power_button "$SLED_NUM" "$DELAY_POWER_ON"
+ if [ "$(get_ac_status "$SLED_NUM")" == "AC on" ];then
+ echo "Power on ${SLED}"
+ trigger_power_button "$SLED_NUM" "$DELAY_POWER_ON"
+ else
+ echo "${SLED} is ac-off, please turn on ac before power on"
+ exit 1
+ fi
elif [[ "$ACTION" == "off" ]];then
- echo "Power off ${SLED}"
- trigger_power_button "$SLED_NUM" "$DELAY_POWER_OFF"
+ if [ "$(get_ac_status "$SLED_NUM")" == "AC on" ];then
+ echo "Power off ${SLED}"
+ trigger_power_button "$SLED_NUM" "$DELAY_POWER_OFF"
+ else
+ echo "${SLED} is already ac-off"
+ exit 1
+ fi
elif [[ "$ACTION" == "status" ]];then
get_ac_status "$SLED_NUM"
#TODO : check or record Host(DC) power status
@@ -215,12 +225,12 @@ elif [[ "$ACTION" == "ac-off" ]];then
elif [[ "$ACTION" == "dfu" ]]; then
echo "Set host$SLED_NUM DFU mode"
- # turn ac off
+ # turn ac off, and hold for 25 seconds
echo "SLED$SLED_NUM: turn ac-off"
set_gpio "power-host${SLED_NUM}" 0
- sleep 1
+ sleep 25
- # press power button, and hold for 10 seconds
+ # 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"
@@ -228,7 +238,7 @@ elif [[ "$ACTION" == "dfu" ]]; then
release_power_button "$SLED_NUM"
exit 1
fi
- sleep 10
+ sleep 1
# turn ac on
echo "SLED$SLED_NUM: turn ac-on"