| e46a15db | 15-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 ...
|
| d8d5e2ba | 10-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 ...
|
| cdf29fe4 | 10-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 ...
|
| 8cf26d93 | 02-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 ...
|
| b5330168 | 24-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 ...
|
| ffe84ebc | 08-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 ...
|
| b7878e55 | 26-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 ...
|
| ebbeb63f | 20-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 ...
|
| 68345d13 | 20-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 ...
|
| b0f94e07 | 12-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 ...
|
| 77c1c26f | 02-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 ...
|
| 33191e38 | 17-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 ...
|
| 73944676 | 26-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 ...
|
| 523e9974 | 11-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 ...
|
| 40298ab7 | 06-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> |
| fdaa950b | 20-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 ...
|
| 175798c6 | 20-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 ...
|
| 7b7a5632 | 19-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 ...
|
| e6d7f4cb | 18-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 ...
|
| 984be69c | 18-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 ...
|
| 240d7363 | 14-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 ...
|
| d62367d6 | 14-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 ...
|
| 5a8aefe3 | 13-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 ...
|
| 8b4e2d9a | 13-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 ...
|
| f1d20600 | 12-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 ...
|