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", }