Lines Matching +full:application +full:- +full:specific
1 # phosphor-power-sequencer
5 The phosphor-power-sequencer application powers the chassis on/off and monitors
9 application uses information from the power sequencer device to determine the
12 ## Application section in phosphor-power-sequencer
14 The application is a single-threaded C++ executable. It is a 'daemon' process
15 that runs continually. The application is launched by systemd when the BMC
18 The application is driven by an optional, system-specific JSON configuration
28 This application currently supports the following power sequencer device types:
30 - UCD90160
31 - UCD90320
33 Additional device types can be supported by creating a new sub-class within the
38 - A BMC application or script sets the `state` property to 1 on the
39 `org.openbmc.control.Power` D-Bus interface.
40 - The phosphor-power-sequencer application writes the value 1 to the named GPIO
41 `power-chassis-control`.
42 - This GPIO is defined in the device tree. The GPIO name is defined in the
43 …n OpenBMC document](https://github.com/openbmc/docs/blob/master/designs/device-tree-gpio-naming.md)
44 - The power sequencer device powers on all the voltage rails in the correct
46 - When all rails have been successfully powered on, the power sequencer device
47 sets the named `power-chassis-good` GPIO to the value 1.
48 - This GPIO is defined in the device tree. The GPIO name is defined in the
49 …n OpenBMC document](https://github.com/openbmc/docs/blob/master/designs/device-tree-gpio-naming.md)
50 - The phosphor-power-sequencer application sets the `pgood` property to 1 on the
51 `org.openbmc.control.Power` D-Bus interface.
52 - The rest of the boot continues
56 - A BMC application or script sets the `state` property to 0 on the
57 `org.openbmc.control.Power` D-Bus interface.
58 - The phosphor-power-sequencer application writes the value 0 to the named GPIO
59 `power-chassis-control`.
60 - The power sequencer device powers off all the voltage rails in the correct
62 - When all rails have been successfully powered off, the power sequencer device
63 sets the named `power-chassis-good` GPIO to the value 0.
64 - The phosphor-power-sequencer application sets the `pgood` property to 0 on the
65 `org.openbmc.control.Power` D-Bus interface.
71 - When attempting to power on the chassis:
72 - The power sequencer device is powering on all voltage rails in order, and
74 - After the chassis was successfully powered on:
75 - A voltage rail suddenly turns off or stops providing the expected level of
83 chassis pgood signal changes from true to false. This application monitors the
84 chassis power good status by reading the named GPIO `power-chassis-good`.
93 - The power sequencer device type is supported by this application
94 - A JSON config file is defined for the current system
96 If those requirements are met, the application will attempt to determine which
98 against that specific rail.
104 This application is configured by an optional JSON configuration file. The
108 JSON configuration files are system-specific and are stored in the
109 [config_files](../config_files/) sub-directory.
114 If no configuration file is found for the current system, this application can
120 - PowerInterface
121 - Defines the `org.openbmc.control.Power` D-Bus interface.
122 - The `state` property is set to power the chassis on or off. This contains
124 - The `pgood` property contains the actual power state of the chassis.
125 - PowerControl
126 - Created in `main()`. Handles the event loop.
127 - Sub-class of PowerInterface that provides a concrete implementation of the
128 `org.openbmc.control.Power` D-Bus interface.
129 - Finds and loads the JSON configuration file.
130 - Finds power sequencer device information.
131 - Creates a sub-class of PowerSequencerDevice that matches power sequencer
133 - Powers the chassis on and off using the `power-chassis-control` named GPIO.
134 - Monitors the chassis pgood status every 3 seconds using the
135 `power-chassis-good` named GPIO.
136 - Enforces a minimum power off time of 15 seconds from cold start and 25
138 - DeviceFinder
139 - Finds power sequencer device information on D-Bus published by
141 - Rail
142 - A voltage rail that is enabled or monitored by the power sequencer device.
143 - PowerSequencerDevice
144 - Abstract base class for a power sequencer device.
145 - Defines virtual methods that must be implemented by all child classes.
146 - StandardDevice
147 - Sub-class of PowerSequencerDevice that implements the standard pgood fault
149 - PMBusDriverDevice
150 - Sub-class of StandardDevice for power sequencer devices that are bound to a
152 - UCD90xDevice
153 - Sub-class of PMBusDriverDevice for the UCD90X family of power sequencer
155 - UCD90160Device
156 - Sub-class of UCD90xDevice representing a UCD90160 power sequencer device.
157 - UCD90320Device
158 - Sub-class of UCD90xDevice representing a UCD90320 power sequencer device.
159 - Services
160 - Abstract base class that provides an interface to system services like error
162 - BMCServices
163 - Sub-class of Services with real implementation of methods.
164 - MockServices
165 - Sub-class of Services with mock implementation of methods for automated
170 Automated test cases exist for most of the code in this application. See