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> |
92261f88 | 01-Feb-2025 |
Patrick Williams <patrick@stwcx.xyz> |
clang-format: update latest spec and reformat
Copy the latest format file from the docs repository and apply.
Change-Id: I8bc99b559079b8454b11bff0be5ddfb6e55e71ba Signed-off-by: Patrick Williams <p
clang-format: update latest spec and reformat
Copy the latest format file from the docs repository and apply.
Change-Id: I8bc99b559079b8454b11bff0be5ddfb6e55e71ba Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
f5402197 | 16-Aug-2024 |
Patrick Williams <patrick@stwcx.xyz> |
clang-format: re-format for clang-18
clang-format-18 isn't compatible with the clang-format-17 output, so we need to reformat the code with the latest version. The way clang-18 handles lambda forma
clang-format: re-format for clang-18
clang-format-18 isn't compatible with the clang-format-17 output, so we need to reformat the code with the latest version. The way clang-18 handles lambda formatting also changed, so we have made changes to the organization default style format to better handle lambda formatting.
See I5e08687e696dd240402a2780158664b7113def0e for updated style. See Iea0776aaa7edd483fa395e23de25ebf5a6288f71 for clang-18 enablement.
Change-Id: I7b90380845efee6bf6a1fe342a793d71aa9ff181 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
3828e951 | 07-Aug-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
Move format_utils.hpp to root directory
Move format_utils.hpp to the root directory of this repository so that it serves as common code. Change the namespace to reflect the directory change. Move
Move format_utils.hpp to root directory
Move format_utils.hpp to the root directory of this repository so that it serves as common code. Change the namespace to reflect the directory change. Move automated tests to the test directory for common code.
Change-Id: Id1af4b8f6da3e3b4f86231599a19d70ca6164f12 Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
16275831 | 27-Jun-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Check STATUS_VOUT first to find pgood fault
Enhance the support for finding the correct voltage rail when a pgood fault occurs.
First check the PMBus STATUS_VOUT register for all rails. Chec
pseq: Check STATUS_VOUT first to find pgood fault
Enhance the support for finding the correct voltage rail when a pgood fault occurs.
First check the PMBus STATUS_VOUT register for all rails. Check the rails in power-on-sequence order.
Checking STATUS_VOUT is usually the most accurate method. For example, if a pgood fault occurs, the power sequencer device may automatically shut off related rails. Ideally the device will only set fault bits in STATUS_VOUT for the rail with the pgood fault. However, all the related rails will likely appear to be faulted by the other methods.
If no fault is found by checking STATUS_VOUT, then check the GPIOs and output voltage for all rails. Check the rails in power-on-sequence order.
Tested: * Verified all automated test cases run successfully.
Change-Id: Ida8732db573013f1b72edac8ed54e3cfc38da146 Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
3a11d632 | 23-May-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Add BMC dump method to Services class
Add a method to the Services class to create a BMC dump.
Tested: * Delete all BMC dumps on system * Verify no BMC dumps exist * Call method to create a B
pseq: Add BMC dump method to Services class
Add a method to the Services class to create a BMC dump.
Tested: * Delete all BMC dumps on system * Verify no BMC dumps exist * Call method to create a BMC dump * Verify dump is created * Expand dump * Verify dump has expected contents * Call method to create a BMC dump again * Verify a second dump is created
Change-Id: Ia4b9753e9ba15ed61bf5446006713875e738b3dd Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
e9144ab4 | 22-May-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Find config file using new compatible intf
Add support for finding the JSON configuration file using a list of compatible names from the new xyz.openbmc_project.Inventory.Decorator.Compatible
pseq: Find config file using new compatible intf
Add support for finding the JSON configuration file using a list of compatible names from the new xyz.openbmc_project.Inventory.Decorator.Compatible D-Bus interface.
Change-Id: Ic24bafd1d77413015aa8eac7b312dbd604a10995 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 ...
|
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 ...
|
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 ...
|