Chassis Status

Overview

There are multiple D-Bus interfaces and properties that describe the chassis status. The phosphor-power-sequencer application publishes one of those interfaces. The other interfaces are published by different applications and are used as input by phosphor-power-sequencer.

state and pgood properties

The state and pgood properties exist on the org.openbmc.control.Power D-Bus interface.

state has a value of 0 or 1. state represents the desired power state for the chassis. 0 means off, and 1 means on. This property is set when the system is being powered on or off.

pgood has a value of 0 or 1. pgood represents the power good (pgood) state of the chassis. 0 means off, and 1 means on. This is the actual, current power state. This property is set based on the chassis power good signal from the power sequencer device.

phosphor-power-sequencer publishes the org.openbmc.control.Power interface on the following object paths:

  • /org/openbmc/control/power0: Represents the entire system
  • /org/openbmc/control/power1: Represents chassis 1
  • /org/openbmc/control/power2: Represents chassis 2
  • ...
  • /org/openbmc/control/powerN: Represents chassis N

Single chassis system

On a single chassis system, only the first two object paths are published, representing the entire system and chassis 1. The values of the state and pgood properties are identical for both object paths.

When the system is powered off, the state and pgood properties for both object paths are 0.

When the system is being powered on, the state property of both object paths is set to 1. When the chassis has successfully powered on, the pgood property of both object paths is set to 1.

When the system is being powered off, the state property of both object paths is set to 0. When the chassis has successfully powered off, the pgood property of both object paths is set to 0.

Multiple chassis system

On a multiple chassis system with N chassis, all of the object paths above are published. The first object path represents the state of the entire system, and the other object paths represent the state of the individual chassis.

When the system is powered off, the state and pgood properties for all of the object paths are 0.

When the system is being powered on, the state will be changed to 1 for the system and for all chassis that can be powered on. It may not be possible to power on some chassis, such as if they are missing or have no input power. See Powering On for more information.

When an individual chassis has successfully powered on, the pgood property for that object path will change to 1. When all chassis whose state was set to 1 have successfully powered on, the pgood property for the system object path will change to 1.

If a power good fault occurs in a chassis after the system powered on, the pgood property for that chassis's object path will change to 0. The pgood property for the system object path will remain set to 1 for a period of time. Eventually the system will be powered off due to the power good fault. See Power Good Faults for more information.

When the system is being powered off, the state will be changed to 0 for the system and for all chassis that are being powered off.

When an individual chassis has successfully powered off, the pgood property for that object path will change to 0. When all chassis have successfully powered off, the pgood property for the system object path will change to 0.

Initial property values

When phosphor-power-sequencer is started, it needs to set initial values for the state and pgood properties. This occurs when a system first receives input power or after the BMC is reset.

The chassis power good signal is read from the power sequencer device. Both the state and pgood properties are set to the value of the power good signal. For example, if the chassis power good is true, both state and pgood are set to the value 1. Thus, phosphor-power-sequencer assumes the chassis state based on the chassis pgood.

In a multiple chassis system, it might not be possible to read the chassis power good signal. For example, the chassis might not be present or might have no input power. See the sections below for information about how the pgood property will be set.

Present property

The Present property exists in the xyz.openbmc_project.Inventory.Item D-Bus interface.

This interface is published on the D-Bus inventory path for each chassis. phosphor-power-sequencer does not publish this interface, but it checks the Present property on multiple chassis systems.

The Present property indicates whether a chassis is physically present.

If Present is set to false for a chassis:

  • The chassis power good signal from the power sequencer will not be read. Since the chassis is not present, the pgood property on the org.openbmc.control.Power interface for the chassis will be set to 0.
  • The chassis will not be powered on when the system is being powered on. The state property on the org.openbmc.control.Power interface for the chassis will remain set to 0.

Available property

The Available property exists in the xyz.openbmc_project.State.Decorator.Availability D-Bus interface.

This interface is published on the D-Bus inventory path for each chassis. phosphor-power-sequencer does not publish this interface, but it checks the Available property on multiple chassis systems.

This interface is optional. If the interface exists and Available is set to false, it means that communication to the chassis is not possible. For example, the chassis does not have any input power (blackout) or communication cables to the BMC are disconnected.

If Available is set to false for a chassis:

  • The chassis power good signal from the power sequencer will not be read. Since communication to the chassis is not possible, the value of the power good signal is unknown. The following algorithm is used to set the value:
    • If the chassis is experiencing a blackout, the chassis has no input power and pgood will be set to 0.
    • If all other chassis have a pgood value of 0, the pgood value will be set to 0 for this chassis.
    • If at least one other chassis has a pgood value of 1, the pgood value will be set to 1 for this chassis.
  • The chassis will not be powered on when the system is being powered on. The state property on the org.openbmc.control.Power interface for the chassis will remain set to 0.

Enabled property

The Enabled property exists in the xyz.openbmc_project.Object.Enable D-Bus interface.

This interface is published on the D-Bus inventory path for each chassis. phosphor-power-sequencer does not publish this interface, but it checks the Enabled property on multiple chassis systems.

This interface is optional. If the interface exists and Enabled is set to false, it means that the chassis has been put in hardware isolation (guarded). A critical error has been detected in the chassis, and it will not be used when the system is powered on.

If Enabled is set to false for a chassis:

  • The chassis power good signal from the power sequencer will be read. The pgood property on the org.openbmc.control.Power interface for the chassis will be set to the value of this signal.
  • The chassis will not be powered on when the system is being powered on. The state property on the org.openbmc.control.Power interface for the chassis will remain set to 0.

Status property

The Status property exists in the xyz.openbmc_project.State.Decorator.PowerSystemInputs D-Bus interface.

phosphor-power-sequencer does not publish this interface, but it checks the Status property on multiple chassis systems.

This interface is optional. If the interface exists and Status is set to Fault, it means that the chassis is experiencing a blackout or brownout. A power loss is occurring, such as a power company utility failure or an unplugged power cord. See the sub-sections below for more information.

Chassis power status

The phosphor-chassis-power application publishes the xyz.openbmc_project.State.Decorator.PowerSystemInputs interface on the following object paths:

  • /xyz/openbmc_project/power/chassis/chassis1
  • /xyz/openbmc_project/power/chassis/chassis2
  • ...
  • /xyz/openbmc_project/power/chassis/chassisN

If Status is set to Fault for a chassis:

  • The chassis is experiencing a blackout.
  • The chassis power good signal from the power sequencer will not be read. Since the chassis has no input power, the pgood property on the org.openbmc.control.Power interface for the chassis will be set to 0.
  • The chassis will not be powered on when the system is being powered on. The state property on the org.openbmc.control.Power interface for the chassis will remain set to 0. An error will be logged indicating that the chassis was not powered on due to an input power problem.

Power supplies power status

The phosphor-power-supply application publishes the xyz.openbmc_project.State.Decorator.PowerSystemInputs interface on the following object paths:

  • /xyz/openbmc_project/power/power_supplies/chassis1/psus
  • /xyz/openbmc_project/power/power_supplies/chassis2/psus
  • ...
  • /xyz/openbmc_project/power/power_supplies/chassisN/psus

If Status is set to Fault for the PSUs in a chassis:

  • The chassis is experiencing a brownout.
  • The chassis power good signal from the power sequencer will be read. The pgood property on the org.openbmc.control.Power interface for the chassis will be set to the value of this signal.
  • The chassis will not be powered on when the system is being powered on. The state property on the org.openbmc.control.Power interface for the chassis will remain set to 0. An error will be logged indicating that the chassis was not powered on due to an input power problem.