commit | 93db616fd6fc2de9133e74b547de1e57f9647a71 | [log] [tgz] |
---|---|---|
author | Jerry C Chen <jerry.c.chen.wiwynn@gmail.com> | Tue Jul 30 15:45:44 2024 +0800 |
committer | Patrick Williams <patrick@stwcx.xyz> | Fri Aug 16 17:58:17 2024 +0000 |
tree | 0918932d582ddcb19fac426ec6d3e6e4adeb4510 | |
parent | a867ae4e7860a26bb185d84697b0be3dd65490a1 [diff] |
meta-facebook: yosemite4: fix slot AC on failure Since CPLD will stagger each slot AC on operation, getting AC status without delay might result in AC on operation failure. Change-Id: I2920fba84a5c3ff03037d2411614ccf488b2f266 Signed-off-by: Jerry C Chen <jerry.c.chen.wiwynn@gmail.com>
diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle index 22c5256..b6fca40 100644 --- a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle +++ b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle
@@ -64,7 +64,7 @@ sleep 2 # Check chassis status after doing 12V cycle - chassis_status=$(gpio_get "$GPIOCHIP_IO_EXP_SLOT_PWR_CTRL" "$IO_EXP_SLOT_PWR_STATUS") + chassis_status=$(get_ac_on_status "$GPIOCHIP_IO_EXP_SLOT_PWR_CTRL" "$IO_EXP_SLOT_PWR_STATUS") if [ "$chassis_status" == "$STATE_ON" ] then if [ -n "$is_nuvoton_board" ]
diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-poweron b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-poweron index 8d47c77..620c0fc 100644 --- a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-poweron +++ b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-poweron
@@ -32,7 +32,7 @@ sleep 1 # Check chassis status after doing 12V on - chassis_status=$(gpio_get "$GPIOCHIP_IO_EXP_SLOT_PWR_CTRL" "$IO_EXP_SLOT_PWR_STATUS") + chassis_status=$(get_ac_on_status "$GPIOCHIP_IO_EXP_SLOT_PWR_CTRL" "$IO_EXP_SLOT_PWR_STATUS") if [ "$chassis_status" == "$STATE_ON" ] then if [ -n "$is_nuvoton_board" ]
diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/power-cmd b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/power-cmd index 4d7e759..c20fa34 100644 --- a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/power-cmd +++ b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/power-cmd
@@ -54,3 +54,20 @@ xyz.openbmc_project.Logging.Create Create "ssa{ss}" "$MESSAGE" \ xyz.openbmc_project.Logging.Entry.Level.Error 0 } + +get_ac_on_status() +{ + RETRY=20 + while [ $RETRY -gt 0 ] + do + if [ "$(gpio_get "$1" "$2")" == "$STATE_ON" ] + then + echo "$STATE_ON" + return 0 + fi + RETRY=$((RETRY-1)) + sleep 1 + done + echo "$STATE_OFF" +} +