commit | 028b03ee38fbd32a8e8cb1fa83dc347b6e344c12 | [log] [tgz] |
---|---|---|
author | Faisal Awada <faisal@us.ibm.com> | Thu Oct 02 15:27:08 2025 -0500 |
committer | Faisal Awada <faisal@us.ibm.com> | Thu Oct 09 14:04:04 2025 -0500 |
tree | d5599cf998e6e85e2452fa673e9091318bf4ca68 | |
parent | 8b38b177315d40f1f9bc1e4d0784d45ea17cbd5c [diff] |
chassis-psu: Enhance PSU function state management Introduced new utility functions to enhance PSU handling in Multi-Chassis environment. - Read initial chassis power state (on/off, pgood) and sets up monitoring when power is on. - Validate supported PSU configurations. - Validate all present PSUs have same model. - Validate number of PSUs against supported configuration. - Validate each PSU reports an input voltage within range. - Set Power Config GPIO based on the system supported configuration. - Adding D-Bus call to report PSU errors setPowerSupplyError() - Clears PSU fault status bit and resets to a clean state during PSU presence or power state changes. - Implemented "onOffConfig()" to write PMBus ON_OFF_CONFIG command to all PSUs to ensure consistent PSU control. Test: The following tests were done in simulated environment: - Verified `initialize()` retrieved and set current BMC state. - Validated supported configuration had all the PSUs present and had same model.Validated that mismatching PSUs models reported an unsupported configuration error. - Confirmed that setPowerSupplyError() was invoked when mismatches occurred. - Validated all present PSUs reported voltage in the supported range. Change-Id: I5a7a6e40140829e6252e7c0ec0a04be369e3d445 Signed-off-by: Faisal Awada <faisal@us.ibm.com>
This repository contains applications for configuring and monitoring devices that deliver power to the system.
Actively-maintained applications:
Legacy applications:
To build all applications in this repository:
meson setup build ninja -C build
To clean the repository and remove all build output:
rm -rf build
You can specify meson options to customize the build process. For example, you can specify:
Several applications in this repository require a PSU JSON config to run. The JSON config file provides information for:
There is an example psu.json to describe the necessary configurations.
inventoryPMBusAccessType
defines the pmbus access type, which tells the service which sysfs type to use to read the attributes. The possible values are:
/sys/bus/i2c/devices/3-0069/
/sys/bus/i2c/devices/3-0069/hwmon/hwmonX/
/sys/kernel/debug/pmbus/hwmonX/
/sys/kernel/debug/<driver>.<instance>/
/sys/kernel/debug/pmbus/hwmonX/cffps1/
fruConfigs
defines the mapping between the attribute file and the FRU inventory interface and property. The configuration example below indicates that the service will read part_number
attribute file from a directory specified by the above pmbus access type, and assign to PartNumber
property in xyz.openbmc_project.Inventory.Decorator.Asset
interface.
"fruConfigs": [ { "propertyName": "PartNumber", "fileName": "part_number", "interface": "xyz.openbmc_project.Inventory.Decorator.Asset" } ]
psuDevices
defines the kernel device dir for each PSU in inventory. The configuration example below indicates that powersupply0
's device is located in /sys/bus/i2c/devices/3-0069
.
"psuDevices": { "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0" : "/sys/bus/i2c/devices/3-0069", }