| commit | 9564e9451cf21903582c6b21b5a6d5cec4357bef | [log] [tgz] |
|---|---|---|
| author | Brandon Wyman <bjwyman@gmail.com> | Tue Nov 10 14:01:42 2020 -0600 |
| committer | Brandon Wyman <bjwyman@gmail.com> | Mon Nov 23 18:10:49 2020 -0600 |
| tree | 74ad5443ceaecf47d67cc0ac8d3a5fa2b62f2c3d | |
| parent | 1115153d44039b0a7ef38d8648773a29c5450908 [diff] |
psu-ng: Updates to allow PSU missing on startup
If the power supply is missing when the application starts up, the
created PMBus interface will log an INFO message about being unable to
read any of the sysfs files. Allow that informational message to occur,
but in the inventoryChange() interface, when the power supply goes
present, be sure to call the findHwmonDir() function to update the
directory/file changes that may occur when the device driver binds.
Tested:
Use simulator to verify no changes when both present and chassison.
Use simulator to mark 2nd PSU missing, restart application, mark 2nd
PSU as present and verify no PSU communication problems.
Use simulator to mark 1st PSU missing, restart application, mark 1st
PSU present and verify no PSU communication problems.
Use simulator to chassison with PSU missing, then change PSU
present, verify no errors.
Use simulator to chassison with PSUs present, mark PSU missing, then
PSU present, verify no errors.
Signed-off-by: Brandon Wyman <bjwyman@gmail.com>
Change-Id: Iba1c8296167519e7285eb680ab067bfb6046b4c7
This repository contains applications for configuring and monitoring devices that deliver power to the system.
To build all applications in this repository:
meson 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/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",
}