History log of /openbmc/phosphor-power/ (Results 1 – 25 of 915)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
e46a15db15-Jan-2026 Faisal Awada <faisal@us.ibm.com>

chassis-psu: Add try/catch around throw

Added try/catch around throw to prevent core dump.

Test:
Will be done when all dependency are ready.

Change-Id: Ie4715d4e3691bafd367569180e9e8063d1f14be1

chassis-psu: Add try/catch around throw

Added try/catch around throw to prevent core dump.

Test:
Will be done when all dependency are ready.

Change-Id: Ie4715d4e3691bafd367569180e9e8063d1f14be1
Signed-off-by: Faisal Awada <faisal@us.ibm.com>

show more ...

d8d5e2ba10-Jan-2026 Shawn McCarney <shawnmm@us.ibm.com>

pseq: Make JSON configuration file required

Modify the phosphor-power-sequencer application so that a JSON
configuration file is required. Previously it was optional.

Create a default JSON config f

pseq: Make JSON configuration file required

Modify the phosphor-power-sequencer application so that a JSON
configuration file is required. Previously it was optional.

Create a default JSON config file. This file implements the same
behavior that was previously hard-coded if no config file was found.

Provide a meson build option to specify whether to use the default JSON
config file. Set the default option value to true.

Update the config file documentation to reflect these changes.

The result of these changes is:
- Eliminates the current hard-coding and dual code paths caused by JSON
config files being optional.
- Application behavior should be the same to the end user.

Tested:
- Build
- Verified default meson option is true
- Verified C constant that is generated based on meson option
- When meson option is true
- When meson option is false
- Run-time
- Tested in simulation
- Default config file used
- Verified default file was found and loaded successfully
- Default config file was not used
- Verified system-specific file was found and loaded successfully

Change-Id: If4c8aeffa81aa351cf81cc25e367bdd4c61a8e32
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>

show more ...

cdf29fe410-Jan-2026 Shawn McCarney <shawnmm@us.ibm.com>

pseq: Initial Huygens config file

Create the initial phosphor-power-sequencers JSON configuration file for
Huygens systems.

The initial version contains just one chassis and the power control/good

pseq: Initial Huygens config file

Create the initial phosphor-power-sequencers JSON configuration file for
Huygens systems.

The initial version contains just one chassis and the power control/good
GPIOs. Subsequent commits will add more chassis, power sequencers, and
voltage rails.

Tested:
- Verified file was loaded successfully in simulation

Change-Id: Ia81e8190809a87849e0b1acfa86e944d7d778098
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>

show more ...

8cf26d9302-Jan-2026 Shawn McCarney <shawnmm@us.ibm.com>

pseq: Add power state/power good to System class

Add the following to the power sequencer System class:
* Power state and power good data members
* Methods to get power state and power good values
*

pseq: Add power state/power good to System class

Add the following to the power sequencer System class:
* Power state and power good data members
* Methods to get power state and power good values
* Method to set the power state to power the system on/off
* Method to monitor the system and update the power good value

Tested:
* Ran automated tests
* Tested new methods in simulation:
* Verified getPowerState() returned correct value when system on/off
* Verified setPowerState() set the power control GPIO correctly
* Verified getPowerGood() returned correct value when system on/off
* Verified monitor() obtained the current power good value when system
on/off

Change-Id: Ie7f01bccac330240a3d8173805d77badb5f5b3c8
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>

show more ...

b533016824-Dec-2025 Shawn McCarney <shawnmm@us.ibm.com>

pseq: Add power state/power good to Chassis class

Add the following to the power sequencer Chassis class:
* Power state and power good data members
* Methods to get power state and power good values

pseq: Add power state/power good to Chassis class

Add the following to the power sequencer Chassis class:
* Power state and power good data members
* Methods to get power state and power good values
* Method to set the power state to power the chassis on/off
* Method to monitor the chassis and update the power good value

Tested:
* Ran automated tests
* Tested new methods in simulation:
* Verified getPowerState() returned correct value when chassis on/off
* Verified canSetPowerState() returned correct values when chassis
on/off
* Verified setPowerState() set the power control GPIO correctly
* Verified getPowerGood() returned correct value when chassis on/off
* Verified monitor() obtained the current power good value when
chassis on/off
* Verified closeDevices() closed devices and released GPIOs

Change-Id: I1a8d404f9d1ebef651d4f5e7bf52e6375bbb158e
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>

show more ...

ffe84ebc08-Jan-2026 Shawn McCarney <shawnmm@us.ibm.com>

pseq: Repeat pgood GPIO setup if unable to read

Sometimes the connection to a GPIO will be lost, such as due to hardware
re-scans at the kernel level.

If the power sequencer application is unable t

pseq: Repeat pgood GPIO setup if unable to read

Sometimes the connection to a GPIO will be lost, such as due to hardware
re-scans at the kernel level.

If the power sequencer application is unable to read the chassis power
good (pgood) GPIO, repeat the GPIO setup and attempt to read again
during the next poll.

Tested:
* Tested in simulation where re-scan problem was occurring
* Tested on real hardware to verify no regression occurred

Change-Id: I027c9b2c467bd6a1d64a12381af6db5d5ec425ba
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>

show more ...

b7878e5526-Nov-2025 Faisal Awada <faisal@us.ibm.com>

chassis-psu: Clear brownout,determine required PSU

Update logic so PowerSystemInputs status is set to good only when the
chassis power state is off. This update adds a check for powerState off
befor

chassis-psu: Clear brownout,determine required PSU

Update logic so PowerSystemInputs status is set to good only when the
chassis power state is off. This update adds a check for powerState off
before setting the status to good, ensuring the brownout is properly
cleared.

Add logic to getRequiredPSUCount which calculates the minimum required
PSU count based on the model used and supported configurations.

Implements the Chassis::getRequiredPSUCount() to determines the
necessary number of power supplies by:

1. Collecting the model names of all present PSUs.
2. Checking if exactly one model is found (assuming all PSUs have same
model)
3. Looking up the corresponding configuration in `supportedConfigs` to
retrieve the required count.
4. Return 0 if no configuration loaded or no model.

Test:
The following tests were done in simulated environment and forced some
logic to execute certain part of the code:
- During brownout Validate PowerSystemInputs status set to good when
the chassis power state is off.
- Validate present PSU count meet the minimum PSU required in the
configuration.

Change-Id: I55fc7a62242a449f7d1c6d897a91bd5798b20964
Signed-off-by: Faisal Awada <faisal@us.ibm.com>

show more ...

ebbeb63f20-Dec-2025 Shawn McCarney <shawnmm@us.ibm.com>

pseq: Add status monitoring to Chassis class

Add chassis status monitoring to the Chassis class. Monitor relevant
D-Bus properties using a ChassisStatusMonitor object.

Use the ChassisStatusMonitor

pseq: Add status monitoring to Chassis class

Add chassis status monitoring to the Chassis class. Monitor relevant
D-Bus properties using a ChassisStatusMonitor object.

Use the ChassisStatusMonitor to determine whether the chassis is
present, available, enabled, etc.

Enhance the Services class hierarchy to create an instance of
ChassisStatusMonitor:
- BMCServices class creates a BMCChassisStatusMonitor
- MockServices class creates a MockChassisStatusMonitor

Tested:
- Ran automated tests

Change-Id: Ibc775ec06483662fd4d819c7f600df98639c4ecb
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>

show more ...

68345d1320-Dec-2025 Shawn McCarney <shawnmm@us.ibm.com>

pseq: Add chassis status monitoring options

Add new JSON element to define which types of chassis status monitoring
are required (if any) for the phosphor-power-sequencer application.

Update JSON c

pseq: Add chassis status monitoring options

Add new JSON element to define which types of chassis status monitoring
are required (if any) for the phosphor-power-sequencer application.

Update JSON configuration file parser to support the new element. Update
effected test cases.

Add the monitoring options to the Chassis class and related test cases.

Tested:
* Ran automated tests

Change-Id: Id5b9b443212e901f2473c29c21bb95663cd0a5d0
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>

show more ...

b0f94e0712-Dec-2025 Shawn McCarney <shawnmm@us.ibm.com>

Chassis status monitor class

Create a chassis status monitor class that can be used by multiple
applications in this repository.

Support monitoring the following chassis properties:
* Present
* Ava

Chassis status monitor class

Create a chassis status monitor class that can be used by multiple
applications in this repository.

Support monitoring the following chassis properties:
* Present
* Available
* Enabled
* Last requested power state
* Power good (pgood)
* Chassis input power status
* Power supply power status

Specify which properties to monitor when creating an instance of this
class.

Listen for the following D-Bus signals for these properties:
* NameOwnerChanged
* InterfacesAdded
* PropertiesChanged

Tested:
* Ran automated tests
* Manually tested all methods in simulation:
* Tested getting all properties when class is created
* Tested getting properties in NameOwnerChanged callback
* Tested getting properties in InterfacesAdded callback
* Tested getting properties in PropertiesChanged callback

Change-Id: I3558b98769525cfedc44361eb6fccb2bccd74a40
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>

show more ...

77c1c26f02-Dec-2025 Shawn McCarney <shawnmm@us.ibm.com>

pseq: Add open/close for devices

Add open and close methods for PowerSequencerDevice classes. Move any
logic that acquires system resources from the constructor to the open()
method. Release the sys

pseq: Add open/close for devices

Add open and close methods for PowerSequencerDevice classes. Move any
logic that acquires system resources from the constructor to the open()
method. Release the system resources in the close() method.

These methods are needed for several reasons:
- The JSON configuration file will define the maximum number of chassis
for a system type. If some chassis are missing, the associated power
sequencer and named GPIOs are likely also missing. The constructor
should not try to acquire system resources related to missing
hardware since it will likely result in errors.
- A chassis may be removed or lose input power. If that chassis later
becomes available again, the C++ objects representing the underlying
hardware resources may not be reusable in their current form. For
example, libgpiod may have acquired a file handle that is no longer
valid. So when a chassis becomes unavailable, the device should be
closed and any associated resources should be released. If the chassis
becomes available again, the device should be re-opened and the
resources should be re-acquired.

Tested:
* Ran automated tests
* Verified open and close methods in simulation
* Verified chassis power on and power off on hardware (regression test)

Change-Id: Ia2726d74252b4fa254b12e105daaeb961a047ee6
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>

show more ...

33191e3817-Dec-2025 George Liu <liuxiwei@ieisystem.com>

Remove redundant is_method_error() checks

The handlers registered through sdbusplus::bus::match_t only receive
D-Bus signals. Signal messages are never sent as method-error
replies, and therefore me

Remove redundant is_method_error() checks

The handlers registered through sdbusplus::bus::match_t only receive
D-Bus signals. Signal messages are never sent as method-error
replies, and therefore message.is_method_error() can never be true in
these callbacks.

This change removes all unnecessary is_method_error() checks from
signal handlers to simplify the code and avoid confusion.

Change-Id: I6f3289e7f05b39ef59eebc5b9ef4e07676c62a5c
Signed-off-by: George Liu <liuxiwei@ieisystem.com>

show more ...

7394467626-Nov-2025 Shawn McCarney <shawnmm@us.ibm.com>

pseq: Move common code to BasicDevice class

Create a new sub-class of PowerSequencerDevice called BasicDevice that
implements basic functionality.

BasicDevice implements the following:
- Data membe

pseq: Move common code to BasicDevice class

Create a new sub-class of PowerSequencerDevice called BasicDevice that
implements basic functionality.

BasicDevice implements the following:
- Data members and methods for the power sequencer properties from the
JSON configuration file.
- Methods that utilize the named GPIOs, such as powerOn() and
getPowerGood().

This functionality was previous duplicated in both StandardDevice and
GPIOsOnlyDevice. Change both of those classes to inherit from
BasicDevice.

Tested:
* Ran automated tests

Change-Id: Id80e34dca0d2412ae10abe9962eca632d1909962
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>

show more ...

523e997411-Nov-2025 Shawn McCarney <shawnmm@us.ibm.com>

regs: Initial Huygens JSON config file

Create initial version of the voltage regulators JSON configuration file
for Huygens systems.

The file contains some example rules and the minimum required sy

regs: Initial Huygens JSON config file

Create initial version of the voltage regulators JSON configuration file
for Huygens systems.

The file contains some example rules and the minimum required syntax. It
does not yet contain any devices or configuration.

Testing:
* Ran validation tool
* Ran automated tests

Change-Id: I11b4119cd62196693b94a89322c4fe9dcad030df
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>

show more ...

40298ab706-Nov-2025 Anwaar Hadi <anwaar.hadi@ibm.com>

Add Reviewer to OWNERS File

Add Anwaar Hadi as a reviewer in the OWNERS file.

Change-Id: Ia62b031039f45e5f0a1548de3c51a473bd674007
Signed-off-by: Anwaar Hadi <anwaar.hadi@ibm.com>

fdaa950b20-Nov-2025 Shawn McCarney <shawnmm@us.ibm.com>

pseq: Add GPIO methods to PowerSequencerDevice

Add the following methods to the PowerSequencerDevice class hierarchy:
* getPowerControlGPIO()
* getPowerGoodGPIO()
* powerOn()
* powerOff()
* getPower

pseq: Add GPIO methods to PowerSequencerDevice

Add the following methods to the PowerSequencerDevice class hierarchy:
* getPowerControlGPIO()
* getPowerGoodGPIO()
* powerOn()
* powerOff()
* getPowerGood()

Create GPIO objects in the PowerSequencerDevice sub-classes to implement
these new methods using named GPIOs.

Update the BMCGPIO class to specify an initial value when requesting the
GPIO line for write.

Tested:
* Ran automated test cases
* Tested the following GPIOsOnlyDevice methods in simulation
* powerOn()
* powerOff()
* getPowerGood()
* Tested the following StandardDevice methods in simulation
* powerOn()
* powerOff()
* getPowerGood()
* Tested the following BMCGPIO methods in simulation
* BMCGPIO()
* requestRead()
* requestWrite()
* getValue()
* setValue()
* release()
* ~BMCGPIO()

Change-Id: Icaeb643e4da1c36786714fc58a174f53fa7c4501
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>

show more ...

175798c620-Nov-2025 Shawn McCarney <shawnmm@us.ibm.com>

pseq: Add method to Services class to create GPIO

In the phosphor-power-sequencer application, add a method to the
Services class to create a GPIO object. This object can be used to
get/set the GPIO

pseq: Add method to Services class to create GPIO

In the phosphor-power-sequencer application, add a method to the
Services class to create a GPIO object. This object can be used to
get/set the GPIO value.

Add the method to the entire Services class hierarchy:
- Services: Abstract base class
- BMCServices: Real implementation of Services interface
- MockServices: Mock implementation of Services interface for automated
testing

Tested:
* Ran automated test cases

Change-Id: I77120843b4124a1ad8d6617bc78cec02ce2ff557
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>

show more ...

7b7a563219-Nov-2025 Shawn McCarney <shawnmm@us.ibm.com>

pseq: Support "GPIOs only" power sequencer device

Add support for a "GPIOs only" power sequencer device to the
phosphor-power-sequencer application.

If this device type is specified in the JSON con

pseq: Support "GPIOs only" power sequencer device

Add support for a "GPIOs only" power sequencer device to the
phosphor-power-sequencer application.

If this device type is specified in the JSON configuration file, then
the application will only use the named GPIOs to power the device on/off
and read the power good signal. No attempt will be made to communicate
with the device otherwise. No pgood fault isolation will be performed.

This device type is useful for simple systems that do not require pgood
fault isolation. It is also useful as a temporary solution when
performing early bring-up work on a new system.

Tested:
* Ran automated tests

Change-Id: Ib5ba9a9c136dd5f5e853372f881f9e227f01a6bd
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>

show more ...

e6d7f4cb18-Nov-2025 Shawn McCarney <shawnmm@us.ibm.com>

pseq: Create GPIO class hierarchy

Create GPIO class hierarchy within the phosphor-power-sequencer
application.

The GPIO abstract base class declares virtual methods for requesting,
reading, writing

pseq: Create GPIO class hierarchy

Create GPIO class hierarchy within the phosphor-power-sequencer
application.

The GPIO abstract base class declares virtual methods for requesting,
reading, writing, and releasing a GPIO.

The BMCGPIO subclass provides a real implementation using the libgpiod
API.

The MockGPIO subclass provides a mock implementation for automated
testing.

Tested:
* Verified GPIO could be read
* Verified GPIO could be written
* Verified error paths
* Verified MockGPIO could be used in an automated test

Change-Id: Ie5808988c5d743c44735f5bc4c09cd15b397518b
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>

show more ...

984be69c18-Nov-2025 Shawn McCarney <shawnmm@us.ibm.com>

pseq: Rename GPIO struct used for pgood status

In the phosphor-power-sequencer application, the Rail class has an
optional GPIO that provides the pgood status of the rail.

Currently the GPIO inform

pseq: Rename GPIO struct used for pgood status

In the phosphor-power-sequencer application, the Rail class has an
optional GPIO that provides the pgood status of the rail.

Currently the GPIO information is stored in a struct named 'GPIO'. This
structure is specific to reading the pgood status of a rail using a GPIO
on the power sequencer device.

A future commit will be creating a new GPIO class that represents an
arbitrary GPIO in the system. This class will support requesting,
reading, writing, and releasing the GPIO.

To avoid a name conflict, rename the struct to PgoodGPIO, which more
clearly represents its purpose.

Tested: Ran automated tests

Change-Id: Ie13d1c77faa96faf6839e77a84d1499f7c239148
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>

show more ...

240d736314-Nov-2025 Shawn McCarney <shawnmm@us.ibm.com>

pseq: Delete DeviceFinder class

Delete the DeviceFinder class that was previously used by the
phosphor-power-sequencer application.

This class is no longer needed since the device information is no

pseq: Delete DeviceFinder class

Delete the DeviceFinder class that was previously used by the
phosphor-power-sequencer application.

This class is no longer needed since the device information is now
stored in the new JSON config file format.

Tested:
* Ran automated tests

Change-Id: Ice0dcc8edbeb17143668c128251f120163152e34
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>

show more ...

d62367d614-Nov-2025 Shawn McCarney <shawnmm@us.ibm.com>

pseq: Update internal design document

Update the internal design documentation for the
phosphor-power-sequencer application:
* Add new System and Chassis classes
* Remove DeviceFinder class

Change-

pseq: Update internal design document

Update the internal design documentation for the
phosphor-power-sequencer application:
* Add new System and Chassis classes
* Remove DeviceFinder class

Change-Id: I5865d00d8ad98d43053788d3ec7f7c489903ec14
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>

show more ...

5a8aefe313-Nov-2025 Shawn McCarney <shawnmm@us.ibm.com>

pseq: Start using device objects from JSON parser

Start using the C++ PowerSequencerDevice objects created by the updated
JSON parser in the phosphor-power-sequencer application.

The C++ PowerSeque

pseq: Start using device objects from JSON parser

Start using the C++ PowerSequencerDevice objects created by the updated
JSON parser in the phosphor-power-sequencer application.

The C++ PowerSequencerDevice objects are created based on
power_sequencer objects in the new JSON configuration file format.

The PowerSequencerDevice objects are currently only used to find the
rail that caused a pgood error. So this commit enables the current
single-chassis support to work with the new JSON configuration files.
Some of the code changes are temporary.

Subsequent commits will implement more multi-chassis support based on
the new and modified C++ objects returned by the parser.

Tested:
* Verified config file was successfully found based on compatible system
information.
* Tested cases where config file parsing succeeded and failed.
* Verified normal system power on and power off were successful with no
errors logged.
* Verified error logged when pgood fault injected before and after
powering on the system.
* Tested when no config file was found. Verified system could still be
powered on/off. Verified general error logged when pgood fault
occurred.

Change-Id: Id4351693346aa5c372be181dcbf0b7bd567d9c40
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>

show more ...

8b4e2d9a13-Nov-2025 Shawn McCarney <shawnmm@us.ibm.com>

pseq: Update config files to new format

Update the existing JSON configuration files for the
phosphor-power-sequencer application to the new JSON format. Add the new
"chassis" and "power_sequencer"

pseq: Update config files to new format

Update the existing JSON configuration files for the
phosphor-power-sequencer application to the new JSON format. Add the new
"chassis" and "power_sequencer" elements.

Tested:
* Verified files were parsed successfully without errors by the
phosphor-power-sequencer application

Change-Id: Iec613eba738bb76be747e3429c4926e385380253
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>

show more ...

f1d2060012-Nov-2025 Shawn McCarney <shawnmm@us.ibm.com>

pseq: Modify JSON parsing for entire file

Modify functions that parse the entire JSON configuration file for the
phosphor-power-sequencer application. Parse the new top level JSON
properties.

Teste

pseq: Modify JSON parsing for entire file

Modify functions that parse the entire JSON configuration file for the
phosphor-power-sequencer application. Parse the new top level JSON
properties.

Tested:
* Ran automated tests

Change-Id: I08f20fc09aa4eff5bc819398834afac61054f8db
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>

show more ...

12345678910>>...37