History log of /openbmc/phosphor-power/phosphor-power-sequencer/src/ (Results 1 – 25 of 72)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
f540219716-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 ...


/openbmc/phosphor-power/.clang-format
/openbmc/phosphor-power/cold-redundancy/cold_redundancy.cpp
/openbmc/phosphor-power/compatible_system_types_finder.cpp
/openbmc/phosphor-power/dbus_interfaces_finder.cpp
/openbmc/phosphor-power/dbus_interfaces_finder.hpp
/openbmc/phosphor-power/elog-errors.hpp
device_finder.cpp
pmbus_driver_device.cpp
pmbus_driver_device.hpp
power_control.cpp
power_interface.cpp
power_interface.hpp
rail.hpp
services.hpp
standard_device.cpp
standard_device.hpp
ucd90320_device.cpp
/openbmc/phosphor-power/phosphor-power-sequencer/test/pmbus_driver_device_tests.cpp
/openbmc/phosphor-power/phosphor-power-sequencer/test/standard_device_tests.cpp
/openbmc/phosphor-power/phosphor-power-sequencer/test/ucd90160_device_tests.cpp
/openbmc/phosphor-power/phosphor-power-sequencer/test/ucd90320_device_tests.cpp
/openbmc/phosphor-power/phosphor-power-sequencer/test/ucd90x_device_tests.cpp
/openbmc/phosphor-power/phosphor-power-supply/power_supply.cpp
/openbmc/phosphor-power/phosphor-power-supply/psu_manager.cpp
/openbmc/phosphor-power/phosphor-power-supply/test/power_supply_tests.cpp
/openbmc/phosphor-power/phosphor-power-supply/util.cpp
/openbmc/phosphor-power/phosphor-power-supply/util.hpp
/openbmc/phosphor-power/phosphor-power-supply/util_base.hpp
/openbmc/phosphor-power/phosphor-regulators/config_files/BlueRidge.json
/openbmc/phosphor-power/phosphor-regulators/config_files/Bonnell.json
/openbmc/phosphor-power/phosphor-regulators/config_files/Everest.json
/openbmc/phosphor-power/phosphor-regulators/config_files/Fuji.json
/openbmc/phosphor-power/phosphor-regulators/config_files/Rainier.json
/openbmc/phosphor-power/phosphor-regulators/src/actions/action_environment.hpp
/openbmc/phosphor-power/phosphor-regulators/src/actions/compare_vpd_action.hpp
/openbmc/phosphor-power/phosphor-regulators/src/actions/i2c_compare_byte_action.hpp
/openbmc/phosphor-power/phosphor-regulators/src/actions/i2c_compare_bytes_action.hpp
/openbmc/phosphor-power/phosphor-regulators/src/actions/i2c_write_byte_action.hpp
/openbmc/phosphor-power/phosphor-regulators/src/actions/i2c_write_bytes_action.hpp
/openbmc/phosphor-power/phosphor-regulators/src/actions/pmbus_read_sensor_action.cpp
/openbmc/phosphor-power/phosphor-regulators/src/actions/pmbus_read_sensor_action.hpp
/openbmc/phosphor-power/phosphor-regulators/src/actions/pmbus_write_vout_command_action.cpp
/openbmc/phosphor-power/phosphor-regulators/src/actions/pmbus_write_vout_command_action.hpp
/openbmc/phosphor-power/phosphor-regulators/src/chassis.cpp
/openbmc/phosphor-power/phosphor-regulators/src/chassis.hpp
/openbmc/phosphor-power/phosphor-regulators/src/config_file_parser.cpp
/openbmc/phosphor-power/phosphor-regulators/src/configuration.hpp
/openbmc/phosphor-power/phosphor-regulators/src/dbus_sensor.cpp
/openbmc/phosphor-power/phosphor-regulators/src/dbus_sensor.hpp
/openbmc/phosphor-power/phosphor-regulators/src/dbus_sensors.cpp
/openbmc/phosphor-power/phosphor-regulators/src/device.hpp
/openbmc/phosphor-power/phosphor-regulators/src/ffdc_file.cpp
/openbmc/phosphor-power/phosphor-regulators/src/id_map.cpp
/openbmc/phosphor-power/phosphor-regulators/src/id_map.hpp
/openbmc/phosphor-power/phosphor-regulators/src/journal.cpp
/openbmc/phosphor-power/phosphor-regulators/src/journal.hpp
/openbmc/phosphor-power/phosphor-regulators/src/manager.cpp
/openbmc/phosphor-power/phosphor-regulators/src/manager.hpp
/openbmc/phosphor-power/phosphor-regulators/src/phase_fault_detection.cpp
/openbmc/phosphor-power/phosphor-regulators/src/phase_fault_detection.hpp
/openbmc/phosphor-power/phosphor-regulators/src/pmbus_error.hpp
/openbmc/phosphor-power/phosphor-regulators/src/presence_detection.cpp
/openbmc/phosphor-power/phosphor-regulators/src/rail.hpp
/openbmc/phosphor-power/phosphor-regulators/src/regsctl/main.cpp
/openbmc/phosphor-power/phosphor-regulators/src/regsctl/utility.hpp
/openbmc/phosphor-power/phosphor-regulators/src/rule.hpp
/openbmc/phosphor-power/phosphor-regulators/src/system.hpp
/openbmc/phosphor-power/phosphor-regulators/src/write_verification_error.hpp
/openbmc/phosphor-power/phosphor-regulators/test/actions/compare_vpd_action_tests.cpp
/openbmc/phosphor-power/phosphor-regulators/test/actions/i2c_compare_bit_action_tests.cpp
/openbmc/phosphor-power/phosphor-regulators/test/actions/set_device_action_tests.cpp
/openbmc/phosphor-power/phosphor-regulators/test/chassis_tests.cpp
/openbmc/phosphor-power/phosphor-regulators/test/device_tests.cpp
/openbmc/phosphor-power/phosphor-regulators/test/id_map_tests.cpp
/openbmc/phosphor-power/phosphor-regulators/test/phase_fault_detection_tests.cpp
/openbmc/phosphor-power/phosphor-regulators/test/system_tests.cpp
/openbmc/phosphor-power/phosphor-regulators/test/test_utils.hpp
/openbmc/phosphor-power/pmbus.cpp
/openbmc/phosphor-power/pmbus.hpp
/openbmc/phosphor-power/power-sequencer/pgood_monitor.hpp
/openbmc/phosphor-power/power-sequencer/runtime_monitor.hpp
/openbmc/phosphor-power/power-supply/main.cpp
/openbmc/phosphor-power/power-supply/power_supply.cpp
/openbmc/phosphor-power/temporary_file.cpp
/openbmc/phosphor-power/temporary_subdirectory.cpp
/openbmc/phosphor-power/tools/i2c/i2c.cpp
/openbmc/phosphor-power/tools/i2c/i2c.hpp
/openbmc/phosphor-power/tools/i2c/i2c_interface.hpp
/openbmc/phosphor-power/tools/power-utils/updater.cpp
/openbmc/phosphor-power/tools/power-utils/version.cpp
/openbmc/phosphor-power/utility.cpp
3828e95107-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 ...


/openbmc/phosphor-power/README.md
/openbmc/phosphor-power/compatible_system_types_finder.hpp
/openbmc/phosphor-power/dbus_interfaces_finder.hpp
/openbmc/phosphor-power/format_utils.hpp
/openbmc/phosphor-power/phosphor-power-sequencer/README.md
/openbmc/phosphor-power/phosphor-power-sequencer/docs/README.md
/openbmc/phosphor-power/phosphor-power-sequencer/docs/config_file/config_file.md
/openbmc/phosphor-power/phosphor-power-sequencer/docs/config_file/gpio.md
/openbmc/phosphor-power/phosphor-power-sequencer/docs/config_file/rail.md
/openbmc/phosphor-power/phosphor-power-sequencer/docs/testing.md
/openbmc/phosphor-power/phosphor-power-sequencer/test/meson.build
/openbmc/phosphor-power/phosphor-power-supply/README.md
/openbmc/phosphor-power/phosphor-regulators/README.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/README.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/action.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/and.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/chassis.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/compare_presence.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/compare_vpd.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/config_file.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/configuration.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/device.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/i2c_capture_bytes.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/i2c_compare_bit.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/i2c_compare_byte.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/i2c_compare_bytes.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/i2c_interface.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/i2c_write_bit.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/i2c_write_byte.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/i2c_write_bytes.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/if.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/log_phase_fault.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/not.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/or.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/phase_fault_detection.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/pmbus_read_sensor.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/pmbus_write_vout_command.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/presence_detection.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/rail.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/rule.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/run_rule.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/sensor_monitoring.md
/openbmc/phosphor-power/phosphor-regulators/docs/config_file/set_device.md
/openbmc/phosphor-power/test/format_utils_tests.cpp
/openbmc/phosphor-power/test/meson.build
b9d4fb7129-Jul-2024 Andrew Geissler <geissonator@yahoo.com>

gcc14: continue dangling-reference workaround

The latest yocto is moving to gcc14 and the workaround to ignore
dangling references is still needed with gcc14.

Tested:
- Confirmed phosphor-power bui

gcc14: continue dangling-reference workaround

The latest yocto is moving to gcc14 and the workaround to ignore
dangling references is still needed with gcc14.

Tested:
- Confirmed phosphor-power builds with latest yocto rebase

Change-Id: I900cb11d66730a74bb5860769214dfa93f83a40d
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>

show more ...

768d226909-Jul-2024 Shawn McCarney <shawnmm@us.ibm.com>

Move to std::format

The OpenBMC project is moving from the fmt project to the built-in
std::format() support.

Update source files and meson files to move to std::format().

Tested:
* Verified build

Move to std::format

The OpenBMC project is moving from the fmt project to the built-in
std::format() support.

Update source files and meson files to move to std::format().

Tested:
* Verified builds cleanly in local CI
* Verified all automated tests run successfully
* Verified builds cleanly in bitbake
* Verified an affected phosphor-psu-monitor journal message still works
correctly.
* Verified an affected phosphor-power-sequencer journal message still
works correctly.

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

show more ...

dd6c366103-Jul-2024 Shawn McCarney <shawnmm@us.ibm.com>

pseq: Update documentation

Update the phosphor-power-sequencer documentation to reflect recent
enhancements:
* New JSON configuration file format
* PowerSequencerDevice class hierarchy
* Enhanced pg

pseq: Update documentation

Update the phosphor-power-sequencer documentation to reflect recent
enhancements:
* New JSON configuration file format
* PowerSequencerDevice class hierarchy
* Enhanced pgood isolation support
* Automated tests

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

show more ...

d1b8b1b028-Jun-2024 Shawn McCarney <shawnmm@us.ibm.com>

pseq: Remove deprecated files

Remove C++ and JSON files that are no longer needed by the
phosphor-power-sequencer application.

Over the past few months, several large enhancements have been
impleme

pseq: Remove deprecated files

Remove C++ and JSON files that are no longer needed by the
phosphor-power-sequencer application.

Over the past few months, several large enhancements have been
implemented in this application:
* New JSON file format that merges pin and rail elements, defines power
on sequence order of rails, defines PMBus PAGEs, and provides an
additional type of pgood fault checking based on output voltage.
* New pgood fault detection algorithm that is device independent, checks
rails in power on sequence order, ignores PAGEs that are not voltage
rails, and checks for faults using new output voltage method.
* New Device class hierarchy and Rail class that support automated
testing.

Remove the old C++ classes that are no longer used. Also remove the
configuration files that use the old JSON format.

Tested:
* Verified repository builds without errors
* Verified automated tests run without errors
* Verified application can successfully power the system on and off
without errors

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

show more ...


1f8b110321-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 ...

1627583127-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 ...

1838dbf905-Jun-2024 Shawn McCarney <shawnmm@us.ibm.com>

Move D-Bus finder class constructors

Three classes in this repository search for D-Bus interfaces and call
a callback when interfaces are found:
- DBusInterfacesFinder
- CompatibleSystemTypesFinder

Move D-Bus finder class constructors

Three classes in this repository search for D-Bus interfaces and call
a callback when interfaces are found:
- DBusInterfacesFinder
- CompatibleSystemTypesFinder
- DeviceFinder

The constructors of these three classes may immediately call the
callback. For this reason, these constructors should not be used in the
initialization list of constructors in other classes. Otherwise the
callback may be called before the other class is fully initialized,
leading to unpredictable behavior.

Move usage of these three constructors from initialization lists to
constructor bodies.

Tested:
+ CompatibleSystemTypesFinder
+ Test where compatible system types interface already exists on D-Bus
+ Verify callback is called immediately
+ Test where compatible system types interface does not already exist
on D-Bus
+ Verify callback is called later when interface is added
+ Verify callback is passed the correct data
+ DeviceFinder
+ Test where device interface already exists on D-Bus
+ Verify callback is called immediately
+ Test where device interface does not already exist on D-Bus
+ Verify callback is called later when interface is added
+ Verify callback is passed the correct data

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

show more ...

452de22e30-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 ...

3a11d63223-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 ...

e9144ab422-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 ...

b545144703-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 ...

fec3833402-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 ...

71d7fe4302-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 ...

fe78c17802-May-2024 Shawn McCarney <shawnmm@us.ibm.com>

pseq: Refactor storage of debug data

After a pgood fault is detected, debug data is collected from the power
sequencer device. This data is stored in the additional data map used
to log an error.

pseq: Refactor storage of debug data

After a pgood fault is detected, debug data is collected from the power
sequencer device. This data is stored in the additional data map used
to log an error. The data is also written to the journal.

Previously the debug data was stored by one virtual method declared in
the StandardDevice class. This method stored all the debug data
including the GPIO values.

GPIO values are device-specific, so it is likely that subclasses will
need to override this method to provide better formatting of the GPIO
values. However, this means they will also be overriding other data
storage performed by an ancestor class. This will likely lead to
duplicated code.

Refactor the storage of GPIO values to a separate virtual method. This
will allow child classes to override just that functionality while
inheriting and reusing other data storage from ancestor classes.

Tested:
* Verified automated tests ran successfully

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

show more ...

b89395b123-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 ...

fc3f31fb23-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 ...

472101c517-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 ...

f47a7a7218-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 ...

fe44e83618-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 ...

df4e0e7e12-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 ...

2495659819-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 ...

e4fef0fc05-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 ...

9ec0d43d09-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 ...

123