commit | 6a3fd2c28ee0b1d02f1bef70937521d34ee6e047 | [log] [tgz] |
---|---|---|
author | Jay Meyer <jaymeyer@us.ibm.com> | Tue Aug 25 16:37:16 2020 -0500 |
committer | Shawn McCarney <shawnmm@us.ibm.com> | Wed Sep 23 20:06:12 2020 +0000 |
tree | 44ac9222cc717ca04ab76789ae49bb6e79484e5b | |
parent | 5cfe51037ae9a2686b7782788805c1382485fd39 [diff] |
Enhance PSU tracing support - add device access info Move file names for file errors to the journal message. Enhance usablility. Logging messages for file errors contain the file names inside structured entries rather than directly in the log message. This makes viewing errors more difficult than need be. Before this change, the journal report needed to be run with '-o verbose' to see the file names. Tested: Ran unit tests. All successful Tested: * Changes to phosphor-power-supply/main.cpp were tested by running with the .json configuration file missing in either and both default locations. * Change to loadJSONFromFile() in utility.cpp for an invalid file was tested by giving invalid "psu_config.json" file to main program. * Empty file message was tested by changing main() to allow loadJSONFromFile() to be called it when the file did not exist. * Changes to other files were tested by running phosphor-power initialization and manipulating the code to force execution of various error paths. * Methods that are changed but were not directly called by phosphor-power initialization: PMBus::readBit(), PMBus::readBinary() and PMBus::write(). The changed log messages in these were tested by adding calls to them from PMBus::read() and then changing code to force execution through paths that created the log messages. Signed-off-by: Jay Meyer <jaymeyer@us.ibm.com> Change-Id: I1f0c01716495ac7022d5234e9a8dfdab8195c186
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", }