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.
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 NOn 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.
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.
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.
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:
pgood
property on the org.openbmc.control.Power
interface for the chassis will be set to 0.state
property on the org.openbmc.control.Power
interface for the chassis will remain set to 0.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:
pgood
will be set to 0.pgood
value of 0, the pgood
value will be set to 0 for this chassis.pgood
value of 1, the pgood
value will be set to 1 for this chassis.state
property on the org.openbmc.control.Power
interface for the chassis will remain set to 0.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:
pgood
property on the org.openbmc.control.Power
interface for the chassis will be set to the value of this signal.state
property on the org.openbmc.control.Power
interface for the chassis will remain set to 0.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.
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:
pgood
property on the org.openbmc.control.Power
interface for the chassis will be set to 0.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.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:
pgood
property on the org.openbmc.control.Power
interface for the chassis will be set to the value of this signal.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.