From e28e279b53674daeba6d612d219ae4d8c6417428 Mon Sep 17 00:00:00 2001 From: Delphine CC Chiu Date: Mon, 6 May 2024 23:46:57 +0800 Subject: meta-facebook: yosemite4: Modified code for power policy Summary: We will using power control patch from gerrit 69903, so we add patch here. Modifed power policy behavior. Avoid gating DVT build. Motivation: Avoid power policy fail because of failed with result 'start-limit-hit'. Test Plan: 1. Build and test pass on YV4 system. pass Signed-off-by: Delphine CC Chiu Change-Id: I2c2f4eba3a5757264ed2443b82266ef08cd407ae --- .../phosphor-state-manager/chassis-powercycle | 3 +- .../chassis-powercycle@.service | 1 - .../state/phosphor-state-manager/chassis-poweron | 41 +++++++++++----------- .../chassis-poweron@.service | 1 - .../state/phosphor-state-manager/host-poweron | 3 ++ 5 files changed, 26 insertions(+), 23 deletions(-) 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 65b990041b..3bd56521f7 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 @@ -48,10 +48,11 @@ chassis-power-cycle() if [ "$chassis_status" == "$STATE_ON" ] then busctl set-property "$CHASSIS_BUS_NAME""$CHASSIS_ID" "$CHASSIS_OBJ_PATH""$CHASSIS_ID" "$CHASSIS_INTF_NAME" "$CHASSIS_PROPERTY_NAME" s "$CHASSIS_ON_PROPERTY" + /usr/libexec/phosphor-state-manager/wait-until-mctp-connection-done "$CHASSIS_ID" && systemctl restart "phosphor-discover-system-state@$CHASSIS_ID.service" exit 0; else busctl set-property "$CHASSIS_BUS_NAME""$CHASSIS_ID" "$CHASSIS_OBJ_PATH""$CHASSIS_ID" "$CHASSIS_INTF_NAME" "$CHASSIS_PROPERTY_NAME" s "$CHASSIS_OFF_PROPERTY" - exit 0; + exit 1; fi fi diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle@.service b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle@.service index eb11752fc6..a8a110e4d1 100644 --- a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle@.service +++ b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle@.service @@ -4,7 +4,6 @@ Description=Chassis Power Cycle: %i [Service] Type=oneshot ExecStart=/usr/libexec/phosphor-state-manager/chassis-powercycle %i -ExecStartPost=/bin/bash -c "/usr/libexec/phosphor-state-manager/wait-until-mctp-connection-done %i && systemctl restart phosphor-discover-system-state@%i.service" [Install] WantedBy=obmc-chassis-powercycle@%i.target 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 9ef3c587d6..511b3f147d 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 @@ -17,31 +17,32 @@ IO_EXP_SLOT_PWR_CTRL=$((IO_EXP_SLOT_PWR_STATUS + 8)) # Server 12v power on chassis-power-on() { - if ! gpioset "$GPIOCHIP_IO_EXP_SLOT_PWR_CTRL" "$IO_EXP_SLOT_PWR_CTRL"=0 - then - echo "Failed to set slot$1 power on" - fi - sleep 1 + if ! gpioset "$GPIOCHIP_IO_EXP_SLOT_PWR_CTRL" "$IO_EXP_SLOT_PWR_CTRL"=0 + then + echo "Failed to set slot$1 power on" + fi + sleep 1 - # Check chassis status after doing 12V on - chassis_status=$(gpioget "$GPIOCHIP_IO_EXP_SLOT_PWR_CTRL" "$IO_EXP_SLOT_PWR_STATUS") - if [ "$chassis_status" == "$STATE_ON" ] - then - busctl set-property "$CHASSIS_BUS_NAME""$CHASSIS_ID" "$CHASSIS_OBJ_PATH""$CHASSIS_ID" "$CHASSIS_INTF_NAME" "$CHASSIS_PROPERTY_NAME" s "$CHASSIS_ON_PROPERTY" - echo "Chassis is power on" - else - busctl set-property "$CHASSIS_BUS_NAME""$CHASSIS_ID" "$CHASSIS_OBJ_PATH""$CHASSIS_ID" "$CHASSIS_INTF_NAME" "$CHASSIS_PROPERTY_NAME" s "$CHASSIS_OFF_PROPERTY" - echo "Chassis is power off" - exit 0; - fi + # Check chassis status after doing 12V on + chassis_status=$(gpioget "$GPIOCHIP_IO_EXP_SLOT_PWR_CTRL" "$IO_EXP_SLOT_PWR_STATUS") + if [ "$chassis_status" == "$STATE_ON" ] + then + busctl set-property "$CHASSIS_BUS_NAME""$CHASSIS_ID" "$CHASSIS_OBJ_PATH""$CHASSIS_ID" "$CHASSIS_INTF_NAME" "$CHASSIS_PROPERTY_NAME" s "$CHASSIS_ON_PROPERTY" + echo "Chassis is power on" + else + busctl set-property "$CHASSIS_BUS_NAME""$CHASSIS_ID" "$CHASSIS_OBJ_PATH""$CHASSIS_ID" "$CHASSIS_INTF_NAME" "$CHASSIS_PROPERTY_NAME" s "$CHASSIS_OFF_PROPERTY" + echo "Chassis is power off" + exit 0; + fi } chassis_status=$(gpioget "$GPIOCHIP_IO_EXP_SLOT_PWR_CTRL" "$IO_EXP_SLOT_PWR_STATUS") if [ "$chassis_status" == "$STATE_OFF" ] then - chassis-power-on - exit 0; + chassis-power-on + /usr/libexec/phosphor-state-manager/wait-until-mctp-connection-done "$CHASSIS_ID" && systemctl restart "phosphor-discover-system-state@$CHASSIS_ID.service" + exit 0; else - echo "Chassis is already on" - exit 0; + echo "Chassis is already on" + exit 0; fi diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-poweron@.service b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-poweron@.service index 2345ecfdad..f7067415e9 100644 --- a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-poweron@.service +++ b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-poweron@.service @@ -4,7 +4,6 @@ Description=power on chassis:%i [Service] Type=oneshot ExecStart=/usr/libexec/phosphor-state-manager/chassis-poweron %i -ExecStartPost=/bin/bash -c "/usr/libexec/phosphor-state-manager/wait-until-mctp-connection-done %i && systemctl restart phosphor-discover-system-state@%i.service" [Install] WantedBy=obmc-chassis-poweron@%i.target diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/host-poweron b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/host-poweron index 43877c7628..82019a841a 100644 --- a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/host-poweron +++ b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/host-poweron @@ -2,10 +2,13 @@ # Provide source directive to shellcheck. # shellcheck source=meta-facebook/meta-greatlakes/recipes-phosphor/state/phosphor-state-manager/power-cmd +CHASSIS_ID=$1 source /usr/libexec/phosphor-state-manager/power-cmd # TODO: check power status before do power on # Set state effecter state: Entity ID 0x0000 for host power control, 0x1 for power on +/usr/libexec/phosphor-state-manager/wait-until-mctp-connection-done "$CHASSIS_ID" + EID=$(($1*10)) if ! pldmtool raw -d 0x80 0x02 0x39 0x00 0x00 0x01 0x00 0x01 -m "$EID" then -- cgit v1.2.3