commit | a068f424e5527bd74b2e203d78f6201c70fe60de | [log] [tgz] |
---|---|---|
author | Matt Spinler <spinler@us.ibm.com> | Fri Mar 10 13:06:49 2023 -0600 |
committer | Matt Spinler <spinler@us.ibm.com> | Tue Mar 14 14:23:59 2023 +0000 |
tree | f60ee0481b1c41f26dd80b984a0c9a3658b7919f | |
parent | 86433ae8e8866b8dae23a3a5a0c240c11ff196fd [diff] |
psu-ng: Put input voltage rating on D-Bus IBM systems must tell the BIOS (called hostboot) the power supply input voltage rating during a boot, where the rating is 110 or 220. This is done via PLDM BIOS attributes where the attribute is backed by a D-Bus property. This commit adds support for that by putting the input voltage rating of each PS on D-Bus using the Value property of the xyz.openbmc_project.Sensor.Value interface. The path is like /xyz/openbmc_project/sensors/voltage/ps0_input_voltage_rating. $ busctl get-property xyz.openbmc_project.Power.PSUMonitor \ /xyz/openbmc_project/sensors/voltage/ps0_input_voltage_rating \ xyz.openbmc_project.Sensor.Value Value d 220 $ busctl get-property xyz.openbmc_project.Power.PSUMonitor \ /xyz/openbmc_project/sensors/voltage/ps0_input_voltage_rating \ xyz.openbmc_project.Sensor.Value Unit s "xyz.openbmc_project.Sensor.Value.Unit.Volts" These D-Bus objects won't have any associations, unlike normal sensors, so they will not show up in any Redfish output as a sensor. The interface is only created for present power supplies, and is only updated when the application starts up and when the boot starts. If a power supply is hot added or removed after that, the D-Bus property doesn't need to be updated as hostboot has already consumed it. Change-Id: I277516e8d86f1ba1a75b75fe76c67f192d911f88 Signed-off-by: Matt Spinler <spinler@us.ibm.com>
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", }