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 ...
|
cee2e20a | 02-Aug-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
regs: Use new compatible interface
Enhance the phosphor-regulators application to use the new D-Bus interface xyz.openbmc_project.Inventory.Decorator.Compatible.
The list of compatible system type
regs: Use new compatible interface
Enhance the phosphor-regulators application to use the new D-Bus interface xyz.openbmc_project.Inventory.Decorator.Compatible.
The list of compatible system type names from this interface is used to find the configuration file for the current system.
Rename the configuration files to match the system type names in the new D-Bus interface.
Tested: * Verified phosphor-regulators loaded correct config file * When interface was available before app started * When interface was available after app started * When interface was available after configure action started * When interface was never available but default config file exists * On Rainier, Everest, and Fuji systems * Verified system could be powered on and off without error * Verified app waited up to 5 minutes during configure action for interface to become available. Verified critical error logged and power on failed if interface not found within 5 minutes.
Change-Id: Icee0c59566c68730ca318fc4521f05af2546eed1 Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
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 ...
|
8b098b97 | 05-Aug-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
Add support for re-finding interfaces/system types
The DBusInterfacesFinder class simplifies the task of finding interface instances on D-Bus. Similarly, the CompatibleSystemTypesFinder class simpl
Add support for re-finding interfaces/system types
The DBusInterfacesFinder class simplifies the task of finding interface instances on D-Bus. Similarly, the CompatibleSystemTypesFinder class simplifies the task of finding the list of compatible system types for the current system.
Both classes initially find the D-Bus objects that already exist at the time the classes are constructed. They use InterfacesAdded listeners to find new D-Bus objects that are created later.
This behavior handles most use cases. However, sometimes a caller may not be receiving D-Bus signals, but they still need to find new D-Bus objects that have been created. For example, the caller may be looping within a timeout period waiting for a D-Bus object to be created.
To handle this use case, add `refind()` methods to both classes that will re-find all matching D-Bus objects that now exist, including those created since the classes were constructed.
Tested: * DBusInterfacesFinder * Verify finds all interface instances that exist at time class is constructed * None found * Instances found * Verify finds new interface instances via InterfacesAdded listener * Verify refind() finds all interface instances, including those that were created after the class was constructed. * None found * Instances found * CompatibleSystemTypesFinder * Verify finds all compatible system type lists that exist at time class is constructed * None found * Lists found * Verify finds new compatible system type lists via InterfacesAdded listener * Verify refind() finds all compatible system type lists, including those that were created after the class was constructed. * None found * Lists found
Change-Id: I975b37524f687e6d2f3d4ff48abb5e4486a84bfe Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
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 ...
|
a6c69534 | 05-Aug-2024 |
George Liu <liuxiwei@ieisystem.com> |
Fix MD033 warnings
The following warnings are generated by using markdownlint analysis: ``` README.md:67:24 MD033/no-inline-html Inline HTML [Element: driver] README.md:67:33 MD033/no-inline-html In
Fix MD033 warnings
The following warnings are generated by using markdownlint analysis: ``` README.md:67:24 MD033/no-inline-html Inline HTML [Element: driver] README.md:67:33 MD033/no-inline-html Inline HTML [Element: instance] ``` Refer to markdown-lint [1] to fix MD033 [1]: https://github.com/updownpress/markdown-lint/blob/master/rules/033-no-inline-html.md
Signed-off-by: George Liu <liuxiwei@ieisystem.com> Change-Id: Ib9ede70d1b126910a702b829f8890084b5c3c1e0
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 ...
|
6151c286 | 05-Aug-2024 |
George Liu <liuxiwei@ieisystem.com> |
Fix MD040 warnings
The following warnings are generated by using markdownlint analysis: ``` MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] ``` Refer
Fix MD040 warnings
The following warnings are generated by using markdownlint analysis: ``` MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] ``` Refer to markdown-lint [1] to fix MD040 [1]: https://github.com/updownpress/markdown-lint/blob/master/rules/040-fenced-code-language.md
Signed-off-by: George Liu <liuxiwei@ieisystem.com> Change-Id: I456b41fe5f368798cd1d1e78cd83d29b5bb7e236
show more ...
|
4afafc8a | 01-Aug-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
regs: Document usage of new compatible intf
Update the phosphor-regulators configuration file documentation. Explain how the new xyz.openbmc_project.Inventory.Decorator.Compatible D-Bus interface is
regs: Document usage of new compatible intf
Update the phosphor-regulators configuration file documentation. Explain how the new xyz.openbmc_project.Inventory.Decorator.Compatible D-Bus interface is used to find the config file name.
The C++ changes to use the new D-Bus interface will be done in a subsequent commit.
Change-Id: If93272a5b69c9e5bd877a4ebf461b2439aa42b2e Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
b9d4fb71 | 29-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 ...
|
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 ...
|
dd6c3661 | 03-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 ...
|
9e706622 | 17-Jun-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Initial BlueRidge config file
Create the initial voltage regulator JSON configuration file for BlueRidge systems.
Tested: * Ran JSON validation tool * Set up BlueRidge simulation enviro
regulators: Initial BlueRidge config file
Create the initial voltage regulator JSON configuration file for BlueRidge systems.
Tested: * Ran JSON validation tool * Set up BlueRidge simulation environment * Verified regulators application found and loaded the file * Powered chassis on and off and verified no errors were logged
Change-Id: I05a868f7656f76de8543683e9c9e14eaa3d4b70b Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
92420f26 | 27-Jun-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Initial Fuji config file
Create the initial voltage regulator JSON configuration file for Fuji systems.
Tested: * Ran JSON validation tool * Set up Fuji simulation environment * Verifie
regulators: Initial Fuji config file
Create the initial voltage regulator JSON configuration file for Fuji systems.
Tested: * Ran JSON validation tool * Set up Fuji simulation environment * Verified regulators application found and loaded the file * Powered chassis on and off and verified no errors were logged
Change-Id: I34c22e365f084836c66e8b30df4612b0d5fb2bb8 Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
d1b8b1b0 | 28-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 ...
|
1f8b1103 | 21-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 ...
|
ce1aaddd | 27-Jun-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Update STATUS_VOUT checks in config files
Update the phosphor-power-sequencer JSON configuration files for the following systems: * Rainier * BlueRidge * Everest * Fuji
Add STATUS_VOUT checki
pseq: Update STATUS_VOUT checks in config files
Update the phosphor-power-sequencer JSON configuration files for the following systems: * Rainier * BlueRidge * Everest * Fuji
Add STATUS_VOUT checking for voltage rails connected to digital monitors (DMONs) on the UCD90320 power sequencer. Checking STATUS_VOUT is more accurate than other methods in some scenarios.
Also remove STATUS_VOUT and READ_VOUT checking for the PSU rails on Everest and Fuji. PMBus information is not available for the PSU rail due to the way it is configured in the power sequencer device.
Change-Id: If5e630b2c17e0a34e240b1df512a9662a5370289 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 ...
|
ab73001a | 20-Jun-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Add config files for BlueRidge systems
Add phosphor-power-sequencer JSON configuration files for BlueRidge systems.
Add config files in both the old and new JSON formats. The old format will
pseq: Add config files for BlueRidge systems
Add phosphor-power-sequencer JSON configuration files for BlueRidge systems.
Add config files in both the old and new JSON formats. The old format will be removed soon, but that has not occurred yet.
Tested: * Tested in simulation environment * Verified BlueRidge JSON files present in /usr/share/phosphor-power-sequencer directory in firmware image * Verified old format BlueRidge JSON file was found and loaded successfully * Powered on chassis * Verified powered on successfully and chassis pgood was true * Verified no errors logged * Verified phosphor-power-control did not write any errors to the journal * Powered off chassis * Verified powered off successfully and chassis pgood was false * Verified no errors logged * Verified phosphor-power-control did not write any errors to the journal
Change-Id: I92f8feb58557c3eabacbf3e9d7690c80c426b0a1 Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
726e1cad | 21-Jun-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
pseq: Add config files for Fuji systems
Add phosphor-power-sequencer JSON configuration files for Fuji systems.
Add config files in both the old and new JSON formats. The old format will be remove
pseq: Add config files for Fuji systems
Add phosphor-power-sequencer JSON configuration files for Fuji systems.
Add config files in both the old and new JSON formats. The old format will be removed soon, but that has not occurred yet.
Tested: * Tested in simulation environment * Verified Fuji JSON files present in /usr/share/phosphor-power-sequencer directory in firmware image * Verified old format Fuji JSON file was found and loaded successfully * Powered on chassis * Verified powered on successfully and chassis pgood was true * Verified no errors logged * Verified phosphor-power-control did not write any errors to the journal * Powered off chassis * Verified powered off successfully and chassis pgood was false * Verified no errors logged * Verified phosphor-power-control did not write any errors to the journal
Change-Id: I739ca7d387af07fc0659d0e28ba366b01342a1b2 Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
1838dbf9 | 05-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 ...
|
452de22e | 30-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 ...
|
3cc348ce | 29-May-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
Create class for finding compatible system types
Create class for finding the list of compatible system types for the current system.
Use the new D-Bus interface xyz.openbmc_project.Inventory.Decor
Create class for finding compatible system types
Create class for finding the list of compatible system types for the current system.
Use the new D-Bus interface xyz.openbmc_project.Inventory.Decorator.Compatible to find the system types.
Tested: * See test plan at https://gist.github.com/smccarney/7bfc20b258cd6ccfba908730102a32dd
Change-Id: I47063642a601991aac8e63f39d8d1f29c4896db0 Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
show more ...
|
98f42947 | 24-May-2024 |
Shawn McCarney <shawnmm@us.ibm.com> |
Create class for finding D-Bus interfaces
Create a class for finding instances of D-Bus interfaces. The class finds existing instances using the ObjectMapper. It also finds new instances using an
Create class for finding D-Bus interfaces
Create a class for finding instances of D-Bus interfaces. The class finds existing instances using the ObjectMapper. It also finds new instances using an InterfacesAdded listener.
Tested: * See test plan at https://gist.github.com/smccarney/67d7719f0cf9cea2d134b0796aa408da
Change-Id: Ia6fba9cb69ad73607dc971dd6d63ba2efecabe0d 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 ...
|