Check on bypass phosphor-discover-system-state at .service if BMC not boot from A/C

Thang Nguyen OS thang at amperemail.onmicrosoft.com
Fri Feb 18 18:36:06 AEDT 2022


Hi,

We have chassis power policy that users configure so that the Host power 
can be recovered via the setting. In phosphor-state-manager, there is 
phosphor-discover-system-state at .service service to check the power 
restore policy and recover the Host via the policy users configured 
(always-on, always-off, previous). The problem is that when BMC is 
rebooted, the service should not be executed as Host power status should 
not be changed in this case.

Previously, we added a patch in u-boot to add reboot cause to the 
command line, like:

    # cat /proc/cmdline
    console=ttyS4,115200n8 root=/dev/ram rw resetreason=power

Then, add condition to the service to just execute when resetreason=power:

    [Unit]
    ConditionKernelCommandLine=resetreason=power

as now no u-boot patch inside meta-<vendor> is permitted, this approach 
is no longer applicable.

Since the BMC reboot cause feature by Tim Lee at 
https://github.com/openbmc/phosphor-state-manager/commit/2bfb1efc4bc7e781224e19c05b51e6675f13a488 
and with the watchdog driver support, we have the reset cause 
information via both dbus and kernel /sys:

    # cat /sys/class/watchdog/watchdog0/bootstatus
    32

    # busctl get-property xyz.openbmc_project.State.BMC
    /xyz/openbmc_project/state/bmc0 xyz.openbmc_project.State.BMC
    LastRebootCause

    s "xyz.openbmc_project.State.BMC.RebootCause.POR"

I would like to check if you have any idea on how to use the above 
information to prevent the power restore policy executed in case of BMC 
reboot.


Thanks,

Thang Q. Nguyen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20220218/75c4ecb8/attachment.htm>


More information about the openbmc mailing list