#
516e22fe |
| 01-Feb-2025 |
Patrick Williams <patrick@stwcx.xyz> |
meson: reformat with meson formatter
Apply the `meson format` results.
Change-Id: Ie0fb147f556c18eb226736dd9b688afba5636a9b Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
|
#
1f8b1103 |
| 21-Jun-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Switch to new pgood isolation support
Switch to the new C++ implementation of pgood isolation support. When a pgood fault occurs, this support attempts to find the voltage rail that caused th
pseq: Switch to new pgood isolation support
Switch to the new C++ implementation of pgood isolation support. When a pgood fault occurs, this support attempts to find the voltage rail that caused the fault.
The new implementation includes the following: * PowerSequencerDevice class hierarchy * Rail class * Services class * CompatibleSystemTypesFinder class * DeviceFinder class * config_file_parser functions * New JSON configuration files
Tested: * Verified all automated tests ran successfully. * Verified all new/modified code in this commit via manual testing. * Tested on Rainier and Everest systems * Verified system powered on and off without errors. * Tested with pgood injection in every rail both during and after the power on sequence. Verified rail was identified and correct error was logged.
Change-Id: I83d7fdc45bd0a000a31d98f67ecdd5a54f24b939 Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
#
452de22e |
| 30-May-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Create class for finding devices
Create class for finding power sequencer devices in the system.
Tested: * See test plan at https://gist.github.com/smccarney/115a90a26a04e28c226d4e86eaf84cb
pseq: Create class for finding devices
Create class for finding power sequencer devices in the system.
Tested: * See test plan at https://gist.github.com/smccarney/115a90a26a04e28c226d4e86eaf84cbf
Change-Id: I024eb6ccf82ea30c08c558194c19afcba8dcf5a2 Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
#
b5451447 |
| 03-May-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Create UCD90160Device class
Create the UCD90160Device class in the phosphor-power-sequencer application.
This class represents the UCD90160 power sequencer device.
Change-Id: If61ccef83b5262
pseq: Create UCD90160Device class
Create the UCD90160Device class in the phosphor-power-sequencer application.
This class represents the UCD90160 power sequencer device.
Change-Id: If61ccef83b52625f3ebe9fdea88f5f80a5e61f9f Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
#
fec38334 |
| 02-May-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Create UCD90320Device class
Create the UCD90320Device class in the phosphor-power-sequencer application.
This class represents the UCD90320 power sequencer device.
Change-Id: I697644d4c52019
pseq: Create UCD90320Device class
Create the UCD90320Device class in the phosphor-power-sequencer application.
This class represents the UCD90320 power sequencer device.
Change-Id: I697644d4c52019be045286a5598023602b7fc4d6 Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
#
71d7fe43 |
| 02-May-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Create UCD90xDevice class
Create the UCD90xDevice class in the phosphor-power-sequencer application.
This is a base class for the UCD90x family of power sequencer devices.
Tested: * Performe
pseq: Create UCD90xDevice class
Create the UCD90xDevice class in the phosphor-power-sequencer application.
This is a base class for the UCD90x family of power sequencer devices.
Tested: * Performed the following tests on Rainier and Everest systems * MFR_STATUS value obtained successfully * Verified error paths and exceptions thrown
Change-Id: I430ffb95d96e228ce0245ae1c9cb63db72d590c5 Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
#
b89395b1 |
| 23-Apr-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Create PMBusDriverDevice class
Create the PMBusDriverDevice class in the phosphor-power-sequencer application.
This class is used for power sequencer devices that are bound to a PMBus device
pseq: Create PMBusDriverDevice class
Create the PMBusDriverDevice class in the phosphor-power-sequencer application.
This class is used for power sequencer devices that are bound to a PMBus device driver. It obtains PMBus information from sysfs/hwmon files created by the driver.
Tested: * Performed all of the following tests on Rainier and Everest systems * Correct sysfs/hwmon files and directories found * GPIO values obtained successfully * STATUS_WORD values obtained successfully * STATUS_VOUT values obtained successfully * READ_VOUT values obtained successfully * VOUT_UV_FAULT_LIMIT values obtained successfully * Mapping built from PMBus PAGE numbers to hwmon file numbers * Verified error paths and exceptions thrown
Change-Id: I2efd3146fa08d3584857c94c2bbbf691b1e2ad7d Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
#
472101c5 |
| 17-Apr-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Standard pgood fault detection algorithm
Create a StandardDevice class for the phosphor-power-sequencer application. This class implements the standard pgood (power good) fault detection algo
pseq: Standard pgood fault detection algorithm
Create a StandardDevice class for the phosphor-power-sequencer application. This class implements the standard pgood (power good) fault detection algorithm.
When adding support for a new power sequencer device type, a sub-class of StandardDevice should be created if possible. This will ensure that pgood fault detection works consistently across device types.
Tested: * Verified all new and existing gtests ran successfully
Change-Id: I80c0b36429f1d84fa1e317889803429927797fdc Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
#
df4e0e7e |
| 12-Apr-2024 |
Konstantin Aladyshev <aladyshev22@gmail.com> |
meson: Fix local meson build
Currently local meson build fails with the error message: """ In file included from ../phosphor-power-sequencer/src/services.cpp:17: ../phosphor-power-sequencer/src/serv
meson: Fix local meson build
Currently local meson build fails with the error message: """ In file included from ../phosphor-power-sequencer/src/services.cpp:17: ../phosphor-power-sequencer/src/services.hpp:19:10: fatal error: xyz/openbmc_project/Logging/Entry/server.hpp: No such file or directory 19 | #include "xyz/openbmc_project/Logging/Entry/server.hpp" """ Provide missing meson dependency to fix the issue.
Tested: "meson setup build && cd build && meson compile" finishes successfully.
Change-Id: I0c13a6bfc8014d201b2cf6364c87059726d0c464 Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
show more ...
|
#
24956598 |
| 19-Feb-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Add pgood fault detection to Rail class
Add power good (pgood) fault detection to the Rail class in the phosphor-power-sequencer application.
Implement the checking defined in the JSON config
pseq: Add pgood fault detection to Rail class
Add power good (pgood) fault detection to the Rail class in the phosphor-power-sequencer application.
Implement the checking defined in the JSON configuration file: * Check for fault bits set in STATUS_VOUT * Check for a GPIO with the wrong value * Check if the output voltage (READ_VOUT) is below the undervoltage limit (VOUT_UV_FAULT_LIMIT)
If a pgood fault is detected, capture the relevant debug information such as the rail name and STATUS_WORD value.
Tested: * Added gtests for the new code * Ran all gtests and verified they passed
Change-Id: I09c3ed6c504fe907a7854a4ac462a2bc4a8b806f Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
#
e4fef0fc |
| 05-Apr-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Add presence caching to Services
Add caching of hardware presence data to the Services class in the phosphor-power-sequencer application. Obtaining hardware presence from D-Bus is a slow oper
pseq: Add presence caching to Services
Add caching of hardware presence data to the Services class in the phosphor-power-sequencer application. Obtaining hardware presence from D-Bus is a slow operation. During pgood fault isolation, multiple rails may need the same hardware presence information. Cache this information to improve performance.
Provide a method to clear the cached data since it is only valid for a short period of time. For example, power supplies are hot-pluggable, so their presence may change while a system is powered on.
Tested: * BMCServices * createPMBus() * Verify correct sysfs path passed to PMBus constructor * isPresent() * Test where hardware is present * Test where value is not cached * Verify value is cached after data obtained from D-Bus * Test where value is cached * Test where hardware is not present * Test where value is not cached * Verify value is cached after data obtained from D-Bus * Test where value is cached * Test where D-Bus method call fails with an expected exception * Verify false is stored in cache * Verify false is returned * Test where D-Bus method call fails with an unexpected exception * Verify nothing is cached * Verify exception is re-thrown * clearCache() * Verify clears all cached data * MockServices * Verify all methods can be called from an automated test * Run existing automated tests
Change-Id: I3e92be3ded1ed333acbedc970409176cabe98c09 Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
#
906cc3f3 |
| 01-Feb-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Add Services class for automated testing
Add a Services class hierarchy to enable mocking and automated testing. The class methods provide a high level abstraction for system services like err
pseq: Add Services class for automated testing
Add a Services class hierarchy to enable mocking and automated testing. The class methods provide a high level abstraction for system services like error logging and presence detection.
* Services: Abstract base class * BMCServices: Sub-class with real implementation using BMC services * MockServices: Sub-class with mock implementation for automated testing
* Tested: * Tested all methods in BMCServices class * When method succeeds * When method fails; verify all error paths * The detailed test plan is available in a gist: * https://gist.github.com/smccarney/e7a250011133c7e3040a8bce240705c5
Change-Id: If17ef8c4540b3ee07cced947bc49a950141b38ae Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
#
6a957f6f |
| 10-Jan-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Create standalone config file parser
Create a standalone JSON configuration file parser for the phosphor-power-sequencer application. Support the new config file properties in the parser.
Se
pseq: Create standalone config file parser
Create a standalone JSON configuration file parser for the phosphor-power-sequencer application. Support the new config file properties in the parser.
Separating the config file parser from the rest of the code makes it easier to implement and test.
Create automated test cases to verify the parser functions.
Change-Id: Ia753ffadf395359899964a612e479b00377ad495 Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
#
c48551ab |
| 22-Dec-2022 |
Jim Wright <jlwright@us.ibm.com> |
pseq: Add support for UCD90160 device
Refactor power sequencer class hierarchy to add support for the UCD90160 device.
Tested: * Verify UCD information is obtained successfully from EntityManager *
pseq: Add support for UCD90160 device
Refactor power sequencer class hierarchy to add support for the UCD90160 device.
Tested: * Verify UCD information is obtained successfully from EntityManager * Verify JSON configuration file is found and parsed successfully * Test where no pgood error occurs * During power on * Verify power on continues * Verify no error is logged * After chassis is powered on * Verify chassis remains powered on * Verify no error is logged * Test where pgood error occurs * During power on * Verify power on stops and chassis is powered off * Verify correct error is logged * Verify callouts and additional data in error log are correct * Detected via rail * Detected via pin * After chassis is powered on * Verify chassis is powered off * Verify correct error is logged * Verify callouts and additional data in error log are correct * Detected via rail * Detected via pin
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: Ib00bc1ea34b504c245a4f0cb3979a86e51507f3c Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
#
888bebde |
| 31-May-2023 |
Patrick Williams <patrick@stwcx.xyz> |
meson: add necessary subprojects
Add subprojects for all the direct dependencies of the project such that the project can be built outside of a Yocto SDK on a typical Linux development system.
-
meson: add necessary subprojects
Add subprojects for all the direct dependencies of the project such that the project can be built outside of a Yocto SDK on a typical Linux development system.
- Update the .gitignore to ignore the subproject source directories. - Update the .gitignore to ignore alternative build subdirectory names as is typical with most projects in the openbmc organization. - Add wrap files for direct dependencies, copied from other repositories that already have the same dependencies. - Modify the meson.build dependency for libgpiod so that the C++ bindings are included. - Add many missing dependencies throughout. - Sort all dependencies alphabetically for consistency.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I0feb6f0f175e6dba0b00a2c2b666eb0801575734
show more ...
|
#
930458c2 |
| 24-Jan-2022 |
Jim Wright <jlwright@us.ibm.com> |
pseq: Add generic failure handling to base class
Use the power sequencer base class to handle failure cases where the device is not found or a device specific failure can not determined. Add a error
pseq: Add generic failure handling to base class
Use the power sequencer base class to handle failure cases where the device is not found or a device specific failure can not determined. Add a error logging convience method. Move the D-Bus object to the base class.
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: I6f7c2951e83cb892ec0c63018d65d5e241ebe6f0
show more ...
|
#
7945dd27 |
| 06-Apr-2021 |
Jim Wright <jlwright@us.ibm.com> |
pseq: Add base and UCD90320 device monitor classes
Add a power sequencer device monitoring base class and a UCD90320 subclass. Update power controller class to construct and pass device information
pseq: Add base and UCD90320 device monitor classes
Add a power sequencer device monitoring base class and a UCD90320 subclass. Update power controller class to construct and pass device information to device class. Update build file to support.
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: Idf3ef53011b23f15841d93795f9f0995892b10b9
show more ...
|
#
2d99bf7d |
| 19-Nov-2021 |
Jim Wright <jlwright@us.ibm.com> |
pseq: Retrieve device info from entity manager
Retrieve power sequencer device information from entity manager using appropriate DBUS methods.
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change
pseq: Retrieve device info from entity manager
Retrieve power sequencer device information from entity manager using appropriate DBUS methods.
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: I4b0f821345fa9be9146e1a480d2b4e8aabd2c267
show more ...
|
#
7a5dd99b |
| 31-Aug-2021 |
Jim Wright <jlwright@us.ibm.com> |
pseq: Add GPIOs to power control application
Add power control GPIOs for power on / off control and chassis power good monitoring. Use libgpiod and make neccessary meson changes.
Signed-off-by: Jim
pseq: Add GPIOs to power control application
Add power control GPIOs for power on / off control and chassis power good monitoring. Use libgpiod and make neccessary meson changes.
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: I4f44552e855547fea466a98cb71acdb315aa26f5
show more ...
|
#
1992083a |
| 25-Aug-2021 |
Jim Wright <jlwright@us.ibm.com> |
pseq: Add power control dbus server interface
Add the PowerInterface class which provides a server interface for the "org.openbmc.control.Power" dbus service.
Update meson.build file to support.
T
pseq: Add power control dbus server interface
Add the PowerInterface class which provides a server interface for the "org.openbmc.control.Power" dbus service.
Update meson.build file to support.
The "org.openbmc.control.Power" interface is currently used by the Chassis component to control power on and off as well as by a number of other OBMC applications which use the pgood property and associated signals to determine the power state of the system. Some desire to move to a "xyz.openbmc_project.control.Power" interface has been expressed. The following is a proposed plan to accomplish this: 1. Create a compatible "org.openbmc.control.Power" application (this commit). 2. Add "xyz..." interface to this application (future commit). 3. Begin transition of existing applications to new interface (future commits).
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: Ia9a6bbb58b5e439623d3931426cb91cb8948da7a
show more ...
|
#
539b608f |
| 02-Aug-2021 |
Jim Wright <jlwright@us.ibm.com> |
pseq: Begin power control implementation
Fill in the power control main method. Introduce the power control class and header file. Introduce the power good polling loop. Update meson file to support
pseq: Begin power control implementation
Fill in the power control main method. Introduce the power control class and header file. Introduce the power good polling loop. Update meson file to support.
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: I9a5f9d71a65fa4916c701e3aad334be2989b1b16
show more ...
|
#
10eb00f6 |
| 21-Jul-2021 |
Jim Wright <jlwright@us.ibm.com> |
pseq: Create phosphor-power-control application
Create the initial version of the phosphor-power-control application.
Update meson.build file to support.
Signed-off-by: Jim Wright <jlwright@us.ibm
pseq: Create phosphor-power-control application
Create the initial version of the phosphor-power-control application.
Update meson.build file to support.
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: I07e1389672236856deadf3452c2485b152d6b57d
show more ...
|
#
1553cd9a |
| 31-Mar-2021 |
Jim Wright <jlwright@us.ibm.com> |
pseq: Create phosphor-power-sequencer application
Create the initial version of the phosphor-power-sequencer application.
Update or create meson and README files to support.
Signed-off-by: Jim Wri
pseq: Create phosphor-power-sequencer application
Create the initial version of the phosphor-power-sequencer application.
Update or create meson and README files to support.
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: I385358cc601448a35b3aae9bfa1c6488f1512c59
show more ...
|