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 ...
|
716366ae | 05-Aug-2024 |
George Liu <liuxiwei@ieisystem.com> |
Fix MD034 warnings
The following warnings are generated by using markdownlint analysis: ``` phosphor-power-supply/README.md:4:1 MD034/no-bare-urls Bare URL used [Context: "https://github.com/openbmc
Fix MD034 warnings
The following warnings are generated by using markdownlint analysis: ``` phosphor-power-supply/README.md:4:1 MD034/no-bare-urls Bare URL used [Context: "https://github.com/openbmc/doc..."] ``` Refer to markdown-lint [1] to fix MD034 [1]: https://github.com/updownpress/markdown-lint/blob/master/rules/034-no-bare-urls.md
Signed-off-by: George Liu <liuxiwei@ieisystem.com> Change-Id: I3b7451b50ae2ed3ba9d9374f869025f947e01ce2
show more ...
|
cde5b16c | 05-Aug-2024 |
George Liu <liuxiwei@ieisystem.com> |
Fix MD041 warnings
The following warnings are generated by using markdownlint analysis: ``` phosphor-power-sequencer/docs/README.md:1 MD041/first-line-heading/first-line-h1 First line in a file shou
Fix MD041 warnings
The following warnings are generated by using markdownlint analysis: ``` phosphor-power-sequencer/docs/README.md:1 MD041/first-line-heading/first-line-h1 First line in a file should be a top-level heading [Context: "## Overview"] phosphor-power-sequencer/docs/testing.md:1 MD041/first-line-heading/first-line-h1 First line in a file should be a top-level heading [Context: "## Overview"] phosphor-power-sequencer/README.md:1 MD041/first-line-heading/first-line-h1 First line in a file should be a top-level heading [Context: "## Overview"] phosphor-power-supply/README.md:1 MD041/first-line-heading/first-line-h1 First line in a file should be a top-level heading [Context: "OpenBMC power supply monitoring..."] phosphor-regulators/README.md:1 MD041/first-line-heading/first-line-h1 First line in a file should be a top-level heading [Context: "## Overview"] README.md:1 MD041/first-line-heading/first-line-h1 First line in a file should be a top-level heading [Context: "## Overview"] ``` Refer to markdown-lint [1] to fix MD041 [1]: https://github.com/updownpress/markdown-lint/blob/master/rules/041-first-line-h1.md
Signed-off-by: George Liu <liuxiwei@ieisystem.com> Change-Id: Ia96bbcb17800cdccfd7de2a85da1dc01cef87303
show more ...
|
768d2269 | 09-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 ...
|
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 ...
|
2ae827a8 | 20-Mar-2024 |
Faisal Awada <faisal@us.ibm.com> |
psu-ng: Fix log error for missing PSU
Fixed missing PSU log error during power on. The issue was replicated as follow: 1 - Chassis powered off 2 - Remove power cable from PSUx 3 - Remove PSUx from t
psu-ng: Fix log error for missing PSU
Fixed missing PSU log error during power on. The issue was replicated as follow: 1 - Chassis powered off 2 - Remove power cable from PSUx 3 - Remove PSUx from the carrier 4 - Power on chassis
Expect to see error log entry for missing PSUx. Fixed validateConfig to only restart validationTimeout when there is a input fault and PSU present or VINUVFault and PSU present.
Test: 1 - System at standby a - Removed PSU0 b - Reset BMC c - Power on chassis d - Verified error logged 2 - System at standby a - Pull PSU cable b - Wait 10 seconds d - Remove PSU and power on the chassis d - Verified error logged 3 - System at standby a - Remove power cord from PSU b - Chassis power on c - Verified an error is logged
Change-Id: Ife099d2d4871cb5905e4e382180b6b8cce97c66d Signed-off-by: Faisal Awada <faisal@us.ibm.com>
show more ...
|
e4fa48c2 | 19-Feb-2024 |
George Liu <liuxiwei@ieisystem.com> |
phosphor-power-supply: Fix code security vulnerabilities
Using the invpath variable after calling std::move(invpath) may result in unexpected or undefined behavior.
Signed-off-by: George Liu <liuxi
phosphor-power-supply: Fix code security vulnerabilities
Using the invpath variable after calling std::move(invpath) may result in unexpected or undefined behavior.
Signed-off-by: George Liu <liuxiwei@ieisystem.com> Change-Id: Iad80d8844d99a0f1760d7f0f7ea354f001c3d2be
show more ...
|
7affb1f2 | 19-Jan-2024 |
Patrick Williams <patrick@stwcx.xyz> |
State.Chassis: update service name
Both phosphor-state-manager and x86-power-control have code that exposes both the Chassis and Chassis0 bus names as a backwards compatibility when multi-chassis su
State.Chassis: update service name
Both phosphor-state-manager and x86-power-control have code that exposes both the Chassis and Chassis0 bus names as a backwards compatibility when multi-chassis support was added. Switch to the numbered bus name, which is expected to be the non-deprecated one.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ief436b041d67488a75d049d283174a6ac158db84
show more ...
|
6869acb3 | 03-Nov-2021 |
Brandon Wyman <bjwyman@gmail.com> |
psu-ng: Disable Communication, Logic, and Memory (CML) fault
Turn off CML fault logging as some of the power supplies don't support all PMBus commands that could be sent from device driver or applic
psu-ng: Disable Communication, Logic, and Memory (CML) fault
Turn off CML fault logging as some of the power supplies don't support all PMBus commands that could be sent from device driver or application. The PSU sets the CML fault bit on when it receives unsupported PMBus command.
Testing: - Tested the change on simulation by setting the CML status bit on and verified no error log reported. - Tested the change on BMC System as follow and verified no error log reported * Powered on the chassis * i2cget -f -y 3 0x68 0x6c w # causes information error log for tracing purpose.
Change-Id: Ie1b52e5350a29f65bd517ad11293c6dc522ac83e Signed-off-by: Brandon Wyman <bjwyman@gmail.com> Signed-off-by: Faisal Awada <faisal@us.ibm.com>
show more ...
|
3a492527 | 30-Nov-2023 |
Andrew Geissler <geissonator@yahoo.com> |
power-supply: don't fail if synch gpio not found
Working on a new system, aptly named system1, I hit issues utilizing the psu monitor on power on where it was failing and putting the BMC state into
power-supply: don't fail if synch gpio not found
Working on a new system, aptly named system1, I hit issues utilizing the psu monitor on power on where it was failing and putting the BMC state into Quiesced.
The reason was that the power-ffs-sync-history GPIO is not defined in the device tree for system1. The power supply details are still being worked but they are going to look a lot like the p10bmc supplies so would like to utilize the psu-monitoring features. With this change I confirmed that the system1 simulation model powers on and everything looks good with the d-bus objects for the power supplies.
If the current behavior is desired, then we could look into a meson config option to define whether the power synch function is wanted.
Tested: - Confirmed system1 chassis poweron works without psu-monitor service failing
Change-Id: I3c8f50c6ae3c4ca150762e3828ab8a1935f7773f Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
show more ...
|
5c6a693e | 29-Nov-2023 |
Patrick Williams <patrick@stwcx.xyz> |
build: use allowed over enabled
Meson feature options are typically in a tri-state of enabled, disabled, or auto. The enabled and disabled functions on an option (from `get_option`) no longer retur
build: use allowed over enabled
Meson feature options are typically in a tri-state of enabled, disabled, or auto. The enabled and disabled functions on an option (from `get_option`) no longer return true for auto features. Instead, the expectation is to use `allowed()` which is true for both enabled and auto.
Switch all uses of `enabled` to `allowed`.
Change-Id: I37fcb391dcb215a86a60c26f7512f6ccb8312dc4 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
03e2a028 | 15-Nov-2023 |
Faisal Awada <faisal@us.ibm.com> |
psu-ng: Fixed PSU monitor app not to report error on valid configuration
Modified the PSU monitor app not to report error when the PSU is not present and the PSU validation timer active; or PSU pres
psu-ng: Fixed PSU monitor app not to report error on valid configuration
Modified the PSU monitor app not to report error when the PSU is not present and the PSU validation timer active; or PSU present but we don't have infomation from Entity Manager (EM),the application will have to wait for EM info while the validation timer active before reporting error.
Note: The fix was done due to sometime Entity manager gets busy may delay to post PSU information which causes this application to post invalid PSU error.
Tested: 1 - On system with 4 PSUs and chassis powered on, with modified code to allow 3 PSU interfaces and ignore the 4th interface. * Verified error reported after the validation timer expired. 2 - On system requires 4 PSUs I removed 1 PSU, powered on the chassis rebooted BMC with the fix. * Verified the system reported error after the validation timer expired. 3 - Ran a good machine pass with the fix and verified no error reported.
Change-Id: I7c99f64b589fbe7db86cb16b720cf3ff9b62baab Signed-off-by: Faisal Awada <faisal@us.ibm.com>
show more ...
|
b7131a12 | 26-Oct-2023 |
Faisal Awada <faisal@us.ibm.com> |
psu-ng: Fixed PSU monitor app to bind/unbind device driver appropriately.
Modified bindOrUnbind function: Bind the device driver when the PSU present and i2cbus-i2caddr does not exist.
psu-ng: Fixed PSU monitor app to bind/unbind device driver appropriately.
Modified bindOrUnbind function: Bind the device driver when the PSU present and i2cbus-i2caddr does not exist. Unbind the device driver when i2cbus-i2caddr exists and the PSU not present.
bindOrUnbind does not do anything when: * PSU device driver bind exist and the device present * PSU device driver bind does not exist and device not present
Added new function populateDriverName: Search for device driver name in all PSUs, then assign the device driver name to all PSUs including missing PSUs.
Testing: Verified in the following test, there is no bind/unbind error log. 1 - Removed 1 PSU and powered on the BMC with 3 PSUs 2 - Use step 1, after power on plugged in the 4th PSU and verified /sys/bus/i2c/drivers/-ibm-cffps/3-006b exist 3 - Removed 2 PSUs and powered on the BMC with 2 PSUs. 4 - Use step 3, after power on plugged in the missing PSUs, verified bind/Unbind /sys/bus/i2c/drivers/-ibm-cffps/3-006x for appropriate PSU. 5 - Powered on system with 4 PSUs then removed 2 PSUs. Verified unbind done for appropriate PSU.
Change-Id: I325fc0dbb16f9c3b582b739e8440a74e34aae753 Signed-off-by: Faisal Awada <faisal@us.ibm.com>
show more ...
|
319b0ddd | 20-Oct-2023 |
Patrick Williams <patrick@stwcx.xyz> |
clang-format: copy latest and re-format
clang-format-17 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-17 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: I49d4d5d177ce54d7e1bff7d734666a3a935b38a0 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
67f71b9e | 30-Aug-2023 |
Matt Spinler <spinler@us.ibm.com> |
psu-ng: Remove previous input history code
As mentioned in a previous commit, the org.open_power D-Bus interfaces that host the 30 second maximum and average input power values are no longer necessa
psu-ng: Remove previous input history code
As mentioned in a previous commit, the org.open_power D-Bus interfaces that host the 30 second maximum and average input power values are no longer necessary, and have been replaced by a single peak input power sensor object.
Remove all of the code that dealt with them.
For now, the code remains that toggles the GPIO to sync up the input history values between the power supplies on boots and plugs. As the input history is used to populate the new peak sensor, its values across power supplies will then be using the same time intervals.
Change-Id: Ide5b40e67bf3938606a75bcc0291bc57232ce8bc Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
592bd27c | 30-Aug-2023 |
Matt Spinler <spinler@us.ibm.com> |
psu-ng: Add peak input power sensor for some PSs
Some models of the ibm-cffps power supplies support an 'input history' command that reports 30 second maximum and average input power values. The cod
psu-ng: Add peak input power sensor for some PSs
Some models of the ibm-cffps power supplies support an 'input history' command that reports 30 second maximum and average input power values. The code was currently putting those on an 'org.open_power' D-Bus interface so that the history of those values could be captured in a single D-Bus call.
Now that there is a real telemetry feature in Redfish that can capture the history of a single sensor value, we can drop the custom D-Bus interface and just use the normal Sensor.Value interface that contains the most recent maximum value from the input history command, The sensor name will be 'psX_input_power_peak' where X is the PS instance number.
The average input power telemetry will now just be obtained from the psX_input_power sensor provided by phosphor-hwmon so an equivalent sensor to the peak isn't needed here.
This commit will add support for putting the new sensor on D-Bus, and a future one will remove the previous input history support.
Like sensors in other daemons, it will be set to not available when a PS is removed, and not functional when it has an access problem. There will be associations to the parent chassis and to the power supply so it will show up in Redfish output with the other sensors.
This commit did remove one of the input history testcases, as trying to get the right sequence of EXPECT_CALLs would get tricky when both the old and new are running together.
Tested: - New sensor shows up when PS is present and supports it. - All interfaces on the object path are correct. - Sensor value matches what org.open_power Max property had. - Works correctly when: - PS is missing on startup - PS is removed - Previously present PS is replaced.
Change-Id: Id9c33aa753c9af32880a0cc874b39c113222568f Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
d6760265 | 30-Aug-2023 |
Matt Spinler <spinler@us.ibm.com> |
psu-ng: Group all private PS class attributes
Private functions and attributes have gotten interleaved over the years, so go back to putting all the attributes at the bottom.
Change-Id: Id98128b7c3
psu-ng: Group all private PS class attributes
Private functions and attributes have gotten interleaved over the years, so go back to putting all the attributes at the bottom.
Change-Id: Id98128b7c393035108b7720ea6772c568e0d8c0c Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
9ef7a043 | 28-Aug-2023 |
Faisal Awada <faisal@us.ibm.com> |
psu-ng: Fix race condition within PSU monitor.
Modified validationTimeout to 30 seconds to give entity manager enough time to post PSU information. Previous timer was set to 10 seconds, it was goin
psu-ng: Fix race condition within PSU monitor.
Modified validationTimeout to 30 seconds to give entity manager enough time to post PSU information. Previous timer was set to 10 seconds, it was going off before the PSU information available which caused PSUManager::analyze() method to log incorrect error
"The power supply configuration is not supported"
During analysis found out on some IBM systems took the entity manager 15 seconds after boot to post the PSU information.
Test:
* Tested on the system where the defect was consistent to reproduce * Tested IBM systems with supported PSUs.
Change-Id: Ib96c5bd4dbe9b989e0e22763a70d746ff1578a23 Signed-off-by: Faisal Awada <faisal@us.ibm.com>
show more ...
|
e9b37264 | 30-Jul-2023 |
Faisal Awada <faisal@us.ibm.com> |
psu-ng: Bypass ACBEL unsupported features
ACBEL does not support input history and sync history, therefore a condition statement was added to prevent execution of input history, sync history.
Test
psu-ng: Bypass ACBEL unsupported features
ACBEL does not support input history and sync history, therefore a condition statement was added to prevent execution of input history, sync history.
Test: * Verified no error logged when powered on/off * Verified no sync history when ACBEL PSU present * Verified no change to sync history on IBM PSU * Verified PSU metrics listed in redfish for ACBEL PSU and IBM PSU.
Change-Id: I62db9ef63cddd144afe9eafc8c3de06dd808a30a Signed-off-by: Faisal Awada <faisal@us.ibm.com>
show more ...
|
9582d9cc | 11-Jul-2023 |
Faisal Awada <faisal@us.ibm.com> |
psu-ng: Add ACBEL PSU pmbus supported commands.
Update PSU monitor to use the following pmbus commands supported by ACBEL PSU DD:
- To clear STATUS_INPUT use curr1_crit_alarm instead of in1_cri
psu-ng: Add ACBEL PSU pmbus supported commands.
Update PSU monitor to use the following pmbus commands supported by ACBEL PSU DD:
- To clear STATUS_INPUT use curr1_crit_alarm instead of in1_crit_alarm fault. - Update ACBEL PSU firmware version to be read from /sys/kernel/debug/pmbus/hwmonX instead from /sys/kernel/debug/pmbus/hwmonX/3-005a/ and update the ACBEL FW version size to 6 bytes. - On/off config not supported on ACBEL PSU.
Testing: * Unplugged power cord from the ACBEL PSU, and verified an error reported on the system. * Set IIN_OC_FAULT_LIMIT fault and verified curr1_crit_alarm clears the STATUS_INPUT. * Verified the code reading the ACBEL FW revision correctly. * Verified in1_input clears all faults on ACBEL PSU. * Tested modified the code on IBMCFFPS and verified the ACBEL PSU modification did not change the behavior on IBMCFFPS.
Change-Id: I5fef87043adb5d677723eb8a20b0aedc4574b7fd Signed-off-by: Faisal Awada <faisal@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 ...
|
41a6b9f3 | 31-May-2023 |
Patrick Williams <patrick@stwcx.xyz> |
remove unnecessary std::move calls
GCC 13 now flags a std::move of an returned temporary as unnecessary and likely preventing RVO. Remove the unnecessary std::move.
Signed-off-by: Patrick Williams
remove unnecessary std::move calls
GCC 13 now flags a std::move of an returned temporary as unnecessary and likely preventing RVO. Remove the unnecessary std::move.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ibde052b5a4efd84bdbbac2f2f6e673729b32e6cd
show more ...
|
aded7a0d | 10-May-2023 |
faisal <faisal@gfwa601.aus.stglabs.ibm.com> |
psu-ng: Retrieve PSU VPD keyword from D-Bus.
Extract PSU VPD keyword from D-Bus and assign associated string value to VPD string.
Change-Id: Iaf8112df7e388e6fd4363798c92d76f0a67e3b69 Signed-off-by:
psu-ng: Retrieve PSU VPD keyword from D-Bus.
Extract PSU VPD keyword from D-Bus and assign associated string value to VPD string.
Change-Id: Iaf8112df7e388e6fd4363798c92d76f0a67e3b69 Signed-off-by: Faisal Awada <faisal@us.ibm.com>
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 ...
|
06594229 | 01-May-2023 |
Matt Spinler <spinler@us.ibm.com> |
psu-ng: Fix chassis association call
The association name from a power supply to its chassis changed from 'chassis' to 'powering', so change that in the code.
Also update the code to find the assoc
psu-ng: Fix chassis association call
The association name from a power supply to its chassis changed from 'chassis' to 'powering', so change that in the code.
Also update the code to find the association using the new GetAssociatedSubTreePaths mapper method which is like the existing GetSubTreePaths but also ensures the results are an endpoint of the passed in association path. This way if the 'powering' association is used to show the power supply powers other things it will still work.
Change-Id: I9076a6b1502ba43a29404a191bd8bc56a9c5df45 Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|