bb54ba3a | 17-Nov-2022 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Initial Bonnell config file
Create an initial version of the voltage regulators JSON configuration file for Bonnell systems.
The file contains the minimum required structure plus some g
regulators: Initial Bonnell config file
Create an initial version of the voltage regulators JSON configuration file for Bonnell systems.
The file contains the minimum required structure plus some general rules that will likely be used in subsequent commits.
This minimal file is enough for Bonnell hardware bring-up. No voltage regulator configuration or monitoring will occur. The regulators will power on with their default register values.
Testing: * Ran validation tool * Started Rainier 2S2U simulation session * Modified EntityManager data so that system appeared to be a Bonnell * Tested that file was found and loaded successfully * Tested that chassis powered on successfully with no errors logged
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: I30309e3096401c5464ae1bff75334491e2bc00d7
show more ...
|
f7019cb5 | 12-Sep-2022 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Fix possible uninitialized variable
The latest version of tools used during CI are emitting a new warning in the phosphor-regulators source code. The warning states that a variable valu
regulators: Fix possible uninitialized variable
The latest version of tools used during CI are emitting a new warning in the phosphor-regulators source code. The warning states that a variable value might not be getting defined before being used.
This is not an actual bug; the variable value will always be defined. However, modify the code so that CI will pass.
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: I090b50c3565ffbb57bfeab02fbcfd98d86aa527c
show more ...
|
7354ce62 | 22-Jul-2022 |
Patrick Williams <patrick@stwcx.xyz> |
sdbusplus: use shorter type aliases
The sdbusplus headers provide shortened aliases for many types. Switch to using them to provide better code clarity and shorter lines. Possible replacements are
sdbusplus: use shorter type aliases
The sdbusplus headers provide shortened aliases for many types. Switch to using them to provide better code clarity and shorter lines. Possible replacements are for: * bus_t * exception_t * manager_t * match_t * message_t * object_t * slot_t
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ief05bd757cffb1453e058a719ee4b060861752e7
show more ...
|
d1307294 | 19-Apr-2022 |
Zev Weiss <zev@bewilderbeest.net> |
regulators: Add phosphor-regulators service dependencies
'regsctl' can't do anything useful until phosphor-regulators is running, so add systemd unit dependencies to ensure it's started before regul
regulators: Add phosphor-regulators service dependencies
'regsctl' can't do anything useful until phosphor-regulators is running, so add systemd unit dependencies to ensure it's started before regulators-config and regulators-monitor-{enable,disable}.
While we're at it, change phosphor-regulators.service to be of type dbus so we get a more meaningful check that it's really up and running, and tweak the instantiation of ManagerObject so that it emits the necessary signals.
Signed-off-by: Zev Weiss <zev@bewilderbeest.net> Change-Id: I724e4f335c4347ad6789e2d68cfb58c6387e6073
show more ...
|
3fa31a7c | 05-Apr-2022 |
Patrick Williams <patrick@stwcx.xyz> |
sdbusplus: object: don't use 'bool' argument constructor
`sdbusplus::server::object_t` has long had an enum-based parameter for signal action, but maintained a backwards compatible boolean mapping.
sdbusplus: object: don't use 'bool' argument constructor
`sdbusplus::server::object_t` has long had an enum-based parameter for signal action, but maintained a backwards compatible boolean mapping. It is time to remove this boolean to make it more observable which actions are being used in applications. Map all `true` occurrences to `action::defer_emit`.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ied6d1b6116b07a8f73b398a098298f4990b24818
show more ...
|
fa2734d6 | 30-Mar-2022 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Retry failed sensor monitoring
If a failure occurs while trying to read voltage regulator sensors, retry the operation 5 times before logging an error.
This provides "de-glitching" to i
regulators: Retry failed sensor monitoring
If a failure occurs while trying to read voltage regulator sensors, retry the operation 5 times before logging an error.
This provides "de-glitching" to ignore transient hardware problems.
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: I310c15eb0f0d36d938057d6280a12b5aef854d20
show more ...
|
d97aa516 | 24-Mar-2022 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Add rules and devices to Rainier JSON
Add rules and devices to the Rainier JSON voltage regulator configuration file.
The JSON rule objects define sequences of actions to configure and
regulators: Add rules and devices to Rainier JSON
Add rules and devices to the Rainier JSON voltage regulator configuration file.
The JSON rule objects define sequences of actions to configure and read sensors from Rainier voltage regulators.
The JSON device objects define the regulator devices and what rules should be run to configure and monitor them.
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: I07210080e67131c157806235baf7be4b7c33f9fd
show more ...
|
b3ba516f | 30-Nov-2021 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Enhance additional error data capture
Enhance the additional error data capture support to allow the same register to be captured multiple times.
The additional error data is stored as
regulators: Enhance additional error data capture
Enhance the additional error data capture support to allow the same register to be captured multiple times.
The additional error data is stored as key/value pairs. The key format is normally:
<deviceID>_register_<register>
For example, "vdd1_register_0x7A".
If the same register is captured multiple times, a counter is appended to make the key unique. For example, "vdd1_register_0x7A_2".
One use case for capturing the same register multiple times is when a voltage regulator produces multiple rails. It may be necessary to do the following: * Set the PMBus PAGE to 0 * Capture a register for the first rail * Set the PMBus PAGE to 1 * Capture the same register again for the second rail
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: I55c3e071b4b60e103f1de5778ede58b032ea29da
show more ...
|
a61c1aa0 | 19-Nov-2021 |
Patrick Williams <patrick@stwcx.xyz> |
sdbusplus: remove usage of deprecated alias
The alias `server::match` has been deprecated since 2016. Use the new alias under bus.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I9
sdbusplus: remove usage of deprecated alias
The alias `server::match` has been deprecated since 2016. Use the new alias under bus.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I92347acd0b73d93e2f1c9efdb2a503cf3aba91bf
show more ...
|
5d23d9d6 | 08-Nov-2021 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Retry failed I2C operations
A previous commit enhanced the I2CInterface class hierarchy to support retrying failed I2C operations.
Modify the phosphor-regulators application to utilize
regulators: Retry failed I2C operations
A previous commit enhanced the I2CInterface class hierarchy to support retrying failed I2C operations.
Modify the phosphor-regulators application to utilize this new support. Specify that failed I2C operations should be retried a maximum of 3 times.
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: Ia6b7ce3852f1563a5e9d854ad75e42ec7ca3797b
show more ...
|
a2a830b1 | 30-Oct-2021 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Allow empty expected VPD value
Modify the compare_vpd action to support specifying an empty string or empty byte vector as the expected keyword value.
The VPD service was modified in a
regulators: Allow empty expected VPD value
Modify the compare_vpd action to support specifying an empty string or empty byte vector as the expected keyword value.
The VPD service was modified in a previous commit to return an empty keyword value if the VPD interface or keyword does not exist on the specified D-Bus object path. Thus, the actual keyword value may be empty.
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: If48ab6423c40e5b24d6cff72264dc2efe750c85f
show more ...
|
5e0346b3 | 30-Oct-2021 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Treat missing VPD keyword as empty
Modify the VPD service to return an empty value if the specified VPD interface or keyword does not exist on the specified object path.
This condition
regulators: Treat missing VPD keyword as empty
Modify the VPD service to return an empty value if the specified VPD interface or keyword does not exist on the specified object path.
This condition can occur when the system is operating normally and should not result in an error being logged.
Tested: * Verified an empty value is returned if the VPD interface does not exist on the object path. * Verified an empty value is returned if the VPD keyword does not exist on the object path. * Verified correct value is returned if the VPD interface and keyword exist * See complete test plan at https://gist.github.com/smccarney/47b167706da49c7d78c4df818040ae72
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: Iaa7c24f4e00ee17506fd5acfd0145c733fa0d57b
show more ...
|
c1d4de5e | 06-Oct-2021 |
Patrick Williams <patrick@stwcx.xyz> |
catch exceptions as const
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: If6aba71f482f75143e6d669763b8853db22318cf |
4c88a4c2 | 21-Sep-2021 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Make inventory_path required property
Make "inventory_path" a required property of the "chassis" object in the regulators JSON configuration file.
This property is used to create the ch
regulators: Make inventory_path required property
Make "inventory_path" a required property of the "chassis" object in the regulators JSON configuration file.
This property is used to create the chassis <-> sensor associations required by bmcweb for finding regulator sensors.
The property is already documented in the markdown file as being required. However, that requirement was not being enforced in the JSON schema nor in the C++ configuration file parser.
The existing configuration files did not have the property, and requiring it would have caused errors.
Those configuration files have been updated to include the property, so the requirement is now being enforced.
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: If9af7969f8b92068e66c750681179db70eae489e
show more ...
|
54b3ab9b | 14-Sep-2021 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Remove monitoring freq from comments
Update doxygen comments to remove the exact frequency of sensor monitoring and phase fault detection.
Currently sensors are monitored every second a
regulators: Remove monitoring freq from comments
Update doxygen comments to remove the exact frequency of sensor monitoring and phase fault detection.
Currently sensors are monitored every second and phase faults are detected every 15 seconds. However, that could change in the future.
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: I3ac39955721fde98dfe9e6059693ceeea7e504c2
show more ...
|
c8cbeac2 | 10-Sep-2021 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Enable phase fault detection
Modify the top level Manager class to perform phase fault detection every 15 seconds.
If the chassis is powered on, phase faults will be detected in every r
regulators: Enable phase fault detection
Modify the top level Manager class to perform phase fault detection every 15 seconds.
If the chassis is powered on, phase faults will be detected in every regulator device in the system.
Tested: * Tested where no phase fault found for a regulator. * Tested where an N phase fault found for a regulator. * Tested where an N+1 phase fault found for a regulator. * Tested where additional data was captured in phase fault error log. * Verified detection occurs every 15 seconds * Verified detection starts during power on after regulators are enabled. * Verified detection stops during power off before regulators are disabled. * Tested where no JSON configuration file was loaded. * Tested when application was restarted while system was powered on.
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: I12ac16dfcf4f754e168ce1ff76795520f823349f
show more ...
|
37af670e | 10-Sep-2021 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Add detectPhaseFaults() to System
Add a detectPhaseFaults() method to the System class. This method detects redundant phase faults in all regulator devices in the system.
Add a gtest t
regulators: Add detectPhaseFaults() to System
Add a detectPhaseFaults() method to the System class. This method detects redundant phase faults in all regulator devices in the system.
Add a gtest test case to exercise the new code.
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: I61b897b6b563280a2c0440aa2f35f3eb6c5de232
show more ...
|
a3fecef3 | 09-Sep-2021 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Simplify System test cases
Simplify the gtest test cases for the System class by using auto when creating objects with std::make_unique(). This eliminates some redundant type declaratio
regulators: Simplify System test cases
Simplify the gtest test cases for the System class by using auto when creating objects with std::make_unique(). This eliminates some redundant type declarations.
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: I5ffcfd8bda62950b393c2ba3d6a56e84e4f6be38
show more ...
|
50e57c6b | 09-Sep-2021 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Add detectPhaseFaults() to Chassis
Add a detectPhaseFaults() method to the Chassis class. This method detects redundant phase faults in all regulator devices in the chassis.
Add a gtes
regulators: Add detectPhaseFaults() to Chassis
Add a detectPhaseFaults() method to the Chassis class. This method detects redundant phase faults in all regulator devices in the chassis.
Add a gtest test case to exercise the new code.
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: Ie4efce27e4c96c2f77831434c94e07dcd5c3d7db
show more ...
|
83058606 | 09-Sep-2021 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Simplify Chassis test cases
Simplify the gtest test cases for the Chassis class by making the following enhancements: * Convert the test suite to a test fixture class. Automatically cre
regulators: Simplify Chassis test cases
Simplify the gtest test cases for the Chassis class by making the following enhancements: * Convert the test suite to a test fixture class. Automatically create the parent System object in the class constructor. * Use auto when creating objects using std::make_unique() to eliminate redundant type declarations.
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: I8ff635507d4e25a26705d85a0994b26edd903da5
show more ...
|
2ee4494c | 09-Sep-2021 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Clear phase fault history in Device
Enhance the clearErrorHistory() method of the Device class to clear phase fault error history.
Update the gtest test case to exercise the modified co
regulators: Clear phase fault history in Device
Enhance the clearErrorHistory() method of the Device class to clear phase fault error history.
Update the gtest test case to exercise the modified code.
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: I109932c0f4812bb36af05ac24e47a561270b4fcc
show more ...
|
0c9a33d6 | 13-Sep-2021 |
Adriana Kobylak <anoo@us.ibm.com> |
clang updates
The openbmc CI was recently updated to clang-12 which requires some formatting updates to the code: https://github.com/openbmc/openbmc-build-scripts/commit/4569bf49daaebff06be048242690
clang updates
The openbmc CI was recently updated to clang-12 which requires some formatting updates to the code: https://github.com/openbmc/openbmc-build-scripts/commit/4569bf49daaebff06be0482426908bb5497fad08
Make those updates and refresh the clang-format file with the one from docs: https://github.com/openbmc/docs/blob/master/style/cpp/.clang-format
Change-Id: Ieb3626526373a053ec84431e7560003f229f338d Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
show more ...
|
1fd0b145 | 09-Sep-2021 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Add detectPhaseFaults() to Device
Add a detectPhaseFaults() method to the Device class. This method executes the PhaseFaultDetection data member added in a previous commit.
Add a gtest
regulators: Add detectPhaseFaults() to Device
Add a detectPhaseFaults() method to the Device class. This method executes the PhaseFaultDetection data member added in a previous commit.
Add a gtest test case to exercise the new code.
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: Ie8a2bf7d1b60ebc29c256e8563e3e4808bb6a20e
show more ...
|
2874e902 | 09-Sep-2021 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Simplify Device test cases
Simplify the gtest test cases for the Device class by making the following enhancements: * Convert the test suite to a test fixture class. Automatically creat
regulators: Simplify Device test cases
Simplify the gtest test cases for the Device class by making the following enhancements: * Convert the test suite to a test fixture class. Automatically create the parent Chassis and System objects in the class constructor. * Use auto when creating objects using std::make_unique() to eliminate redundant type declarations. * Define a constant for the Device inventory path.
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: I86702a33c7ea7e1595ec251935e648c1c228d02b
show more ...
|
32252599 | 08-Sep-2021 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Add PhaseFaultDetection to Device
Add a PhaseFaultDetection data member to the Device class. This is the first step in enabling phase fault detection for Device objects.
Create and mod
regulators: Add PhaseFaultDetection to Device
Add a PhaseFaultDetection data member to the Device class. This is the first step in enabling phase fault detection for Device objects.
Create and modify gtest test cases to exercise new code.
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: Icc771eda5c79ace854acb1d7c395b82b34213996
show more ...
|