fc3f31fb | 23-Apr-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Add Services parameter to getGPIOValues()
Add a Services parameter to the PowerSequencerDevice::getGPIOValues() method in the phosphor-power-sequencer application.
The Services object impleme
pseq: Add Services parameter to getGPIOValues()
Add a Services parameter to the PowerSequencerDevice::getGPIOValues() method in the phosphor-power-sequencer application.
The Services object implements reading GPIO values in the standard way using the libgpiod interface.
Change-Id: Ia6d1f1a0919aa6f45405cbe8375f8cc37800b002 Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
fb0ccb8e | 24-Apr-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
Promote getPath() to PMBusBase
Promote the getPath() method from the PMBus class to the PMBusBase parent class. This allows the method to be called from automated tests using mock subclasses of PMB
Promote getPath() to PMBusBase
Promote the getPath() method from the PMBus class to the PMBusBase parent class. This allows the method to be called from automated tests using mock subclasses of PMBusBase.
Change-Id: I01dc6c314294e0de8919f78c79cbdc395020728f 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 ...
|
69d98ec0 | 22-Apr-2024 |
Konstantin Aladyshev <aladyshev22@gmail.com> |
meson: Fix local build of phosphor-power-sequencer tests
The commit df4e0e7ea47e67b3c646a41821743f5dc5f7cbfd ("meson: Fix local meson build") didn't add the necessary dependency for the 'phosphor-po
meson: Fix local build of phosphor-power-sequencer tests
The commit df4e0e7ea47e67b3c646a41821743f5dc5f7cbfd ("meson: Fix local meson build") didn't add the necessary dependency for the 'phosphor-power-sequencer' tests local build. Add 'phosphor_logging' dependency to fix the issue.
Tested: "meson setup build && cd build && meson compile" finishes successfully.
Change-Id: I72f310e14356286a2efd48056bea5131fb088743 Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
show more ...
|
f47a7a72 | 18-Apr-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Add getRails() method to device hierarchy
Add a method to get the voltage rails that are being enabled/monitored by a power sequencer device.
Tested: * Verified all gtests ran successfully
C
pseq: Add getRails() method to device hierarchy
Add a method to get the voltage rails that are being enabled/monitored by a power sequencer device.
Tested: * Verified all gtests ran successfully
Change-Id: I04b3e9b0854c110858daf30dbf35dc44ab4ade0e Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
fe44e836 | 18-Apr-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Add format_utils namespace
Add a namespace containing utility functions for formatting data.
The initial utility function converts a span of container elements into a string.
This function i
pseq: Add format_utils namespace
Add a namespace containing utility functions for formatting data.
The initial utility function converts a span of container elements into a string.
This function is a temporary solution until g++ implements the C++23 std::format() support for formatting ranges.
fmt::format() supports formatting spans, but the OpenBMC project is converting to use of std::format() instead.
Tested: * Ran all new and existing gtests.
Change-Id: Ie84b59db35bb49e3f1bb529490aaa05af434b6fd 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 ...
|
9ec0d43d | 09-Feb-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Remove output voltage comparison to OV limit
The pgood isolation algorithm for the phosphor-power-sequencer application is being enhanced to handle more error scenarios.
One major enhancement
pseq: Remove output voltage comparison to OV limit
The pgood isolation algorithm for the phosphor-power-sequencer application is being enhanced to handle more error scenarios.
One major enhancement is the option to determine the pgood status of a voltage rail by comparing the output voltage to a fault limit.
The original design was to compare the output voltage to both the overvoltage limit (VOUT_OV_FAULT_LIMIT) and the undervoltage limit (VOUT_UV_FAULT_LIMIT).
After discussions with subject matter experts, the design has been changed to remove the comparison with the overvoltage limit. While this is important status information, it is not necessarily indicative of a pgood fault and could lead to false positives.
Change-Id: I664e4b16fcaf32900798c59aeb4e4ed48db964bf Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
4af83db5 | 08-Feb-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Create base class for sequencer devices
Create an abstract base class representing a power sequencer device. These devices turn on voltage rails in the correct sequence and monitor the rails f
pseq: Create base class for sequencer devices
Create an abstract base class representing a power sequencer device. These devices turn on voltage rails in the correct sequence and monitor the rails for power good faults.
Create a mock subclass to support automated testing.
Change-Id: I97d0befde9896dc050ec757c4004dca70f135554 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 ...
|
16e493af | 29-Jan-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Add is_power_supply_rail JSON file property
Enhance the JSON configuration file for the phosphor-power-sequencer application. Add an "is_power_supply_rail" property to the "rail" object.
Upd
pseq: Add is_power_supply_rail JSON file property
Enhance the JSON configuration file for the phosphor-power-sequencer application. Add an "is_power_supply_rail" property to the "rail" object.
Update the config file documentation, config file parser, Rail class, and the associated tests.
Change-Id: I3d0e8276324dd9cf25f386016c6f275b540515aa 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 ...
|
d6e9bfe2 | 05-Jan-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Create Rail class
Create new Rail class for the phosphor-power-sequencer application. The class contains the properties from the updated JSON config file format.
Create gtests to test all ne
pseq: Create Rail class
Create new Rail class for the phosphor-power-sequencer application. The class contains the properties from the updated JSON config file format.
Create gtests to test all new code.
Change-Id: Ia55fe3fcc85345deefc1d1987ea1a8421baf50c4 Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
e4b76830 | 15-Dec-2023 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Document enhanced JSON config file format
The JSON config file format is being enhanced for the phosphor-power-sequencer application.
The enhancements are intended to provide the following be
pseq: Document enhanced JSON config file format
The JSON config file format is being enhanced for the phosphor-power-sequencer application.
The enhancements are intended to provide the following benefits: * Generalize the format so it can be used for any power sequencer device. The current format is intended only for UCD90XXX devices. * Remove the "pins" array. Move the GPIO pin information to an optional property of a rail object. This will eliminate some duplication and make pgood isolation more flexible. * Change the meaning of the rail order within the array of rails. * In the current format, the array index implies the PMBus PAGE. This causes problems because it is impossible to ignore a PAGE that is not a valid voltage rail. It also does not provide information on the power on sequence, which is often different than the PAGE order. * In the new format, the rails in the array will be in power on sequence order. The PMBus page will be explicitly defined using a new property. * Add rail property that specifies the PMBus PAGE. * Add rail property that specifies the pgood status should be obtained using the PMBus STATUS_VOUT command. * Add rail property that specifies the pgood status should be obtained by comparing the output voltage (READ_VOUT) to the undervoltage (VOUT_UV_FAULT_LIMIT) and overvoltage (VOUT_OV_FAULT_LIMIT) limits. * Add rail property that specifies the pgood status should be obtained from a GPIO.
Note: This commit contains only the new JSON file format documentation. Subsequent commits will contain the new C++ implementation and new versions of the existing JSON files. The current documentation, C++, and JSON files will be retained and will remain active until all of the new support has been merged.
Change-Id: I358a885f1675a9dd8f9ae0115e560abb3c0828fe Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
25478fa2 | 01-Aug-2023 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Create Bonnell configuration file
Create the power sequencer configuration file for Bonnell systems. This file identifies the PMBus rails and the GPIO lines/pins that should be checked when a
pseq: Create Bonnell configuration file
Create the power sequencer configuration file for Bonnell systems. This file identifies the PMBus rails and the GPIO lines/pins that should be checked when a pgood failure occurs.
On Bonnell systems no GPIO lines need to be checked.
Tested: * Configuration file loading * Verified file is found on Bonnell systems using D-Bus property * Verified file is loaded successfully without errors * Verified all rails in file are stored in C++ data structures * Verified having empty pin array does not cause an error * Tested where file contains a syntax error * Verified error message is written to journal * Verified no error log created * pgood detection * Verified system powers on cleanly when no pgood error is present * chassison * Verified chassis is powered on * Verified no error logs created * Verified no error messages written to the journal * poweron * Verified system is powered on * Verified no error logs created * Verified no error messages written to the journal * Verified system powers off cleanly when no pgood error is present * chassisoff * Verified chassis is powered off * Verified no error logs created * Verified no error messages written to the journal * poweroff * Verified system is powered off * Verified no error logs created * Verified no error messages written to the journal * Test where a pgood error is detected in a rail * Verified pgood failure is detected * Verified error message written to the journal * Verified GPIO values written to the journal * Verified error log is created * Tested with a pgood error on each rail in the config file * Test where pgood failure occurs during power on attempt * Test where pgood failure occurs after system was successfully powered on
Change-Id: I431d2dd7e99f2a99bbab936d6fad03af5654886f Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
328ca312 | 11-Jul-2023 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Add GPIO formatting for UCD90160
Add support for formatting GPIO values when a pgood error is detected by a UCD90160.
Write the GPIO names and values to the journal and store them in the erro
pseq: Add GPIO formatting for UCD90160
Add support for formatting GPIO values when a pgood error is detected by a UCD90160.
Write the GPIO names and values to the journal and store them in the error log additional data.
This formatting support already exists for the UCD90320.
Tested: * Test where pgood error occurs while chassis is powering on * Verify correct GPIO values are captured * Verify GPIO names and values are written to journal * Verify GPIO names and values are stored in error log * Test where pgood error occurs after chassis is powered on * Verify correct GPIO values are captured * Verify correct GPIO names and values are written to journal * Verify correct GPIO names and values are stored in error log * Test where the number of GPIO values is unexpected * Verify all values stored in additional data with no names * Verify all values written to the journal with no names
Change-Id: I9a761670bd8af020deb7f85d59d409ad6b5d5b2c Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
eae2d614 | 23-Dec-2022 |
Jim Wright <jlwright@us.ibm.com> |
pseq: Add support for UCD90160 EM configuration
Add power control support for receiving Entity Manager configuration for a UCD90160 device and instantiating an object of that type.
Tested: * Test w
pseq: Add support for UCD90160 EM configuration
Add power control support for receiving Entity Manager configuration for a UCD90160 device and instantiating an object of that type.
Tested: * Test where EntityManager information is available when application starts * Test where EntityManager information is not available when application starts * Verify the EntityManager information is found later via InterfacesAdded events * Test where xyz.openbmc_project.Configuration.UCD90320 interface is found * Verify UCD90320Monitor object is created * Test where xyz.openbmc_project.Configuration.UCD90160 interface is found * Verify UCD90160Monitor object is created * Verify chassis can be powered on without errors * Verify chassis can be powered off without errors * Verify pgood error is detected and logged
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: Ibdb86db176971f27bbd2a998a39a0325997c6677 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 ...
|
48781aef | 10-May-2023 |
Patrick Williams <patrick@stwcx.xyz> |
clang-format: copy latest and re-format
clang-format-16 has some backwards incompatible changes that require additional settings for best compatibility and re-running the formatter. Copy the latest
clang-format: copy latest and re-format
clang-format-16 has some backwards incompatible changes that require additional settings for best compatibility and re-running the formatter. Copy the latest .clang-format from the docs repository and reformat the repository.
Change-Id: If66f68c96df4baf8dc07abf8729a3cb7657e932d Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
0327fcf0 | 09-Dec-2022 |
Jim Wright <jlwright@us.ibm.com> |
pseq: Use more concise bracketing style in config
Per previous review suggestion and to improve readability, use a more concise bracketing style in configuration files.
Signed-off-by: Jim Wright <j
pseq: Use more concise bracketing style in config
Per previous review suggestion and to improve readability, use a more concise bracketing style in configuration files.
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: I1dc8d97c7251eb49e8c13c71c4a33a67d315f7a0
show more ...
|
9469a876 | 12-Dec-2022 |
Jim Wright <jlwright@us.ibm.com> |
pseq: Fix backticks in README
Missing backticks in README Markdown files are causing improper rendering. Fix them.
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: Ibd49ae61a5188133d89b70
pseq: Fix backticks in README
Missing backticks in README Markdown files are causing improper rendering. Fix them.
Signed-off-by: Jim Wright <jlwright@us.ibm.com> Change-Id: Ibd49ae61a5188133d89b70cfb23af80f86d99670
show more ...
|
0dbce568 | 12-Dec-2022 |
Patrick Williams <patrick@stwcx.xyz> |
prettier: re-format
Prettier is enabled in openbmc-build-scripts on Markdown, JSON, and YAML files to have consistent formatting for these file types. Re-run the formatter on the whole repository.
prettier: re-format
Prettier is enabled in openbmc-build-scripts on Markdown, JSON, and YAML files to have consistent formatting for these file types. Re-run the formatter on the whole repository.
Change-Id: I53dc3bb17d5dcbb9b33fa3d0db62138f37cc8c0b Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|