commit | 4180cfe9812ab14d4012e7c0cf152d80b3db1f1b | [log] [tgz] |
---|---|---|
author | Alex Schendel <alex.schendel@intel.com> | Tue Nov 29 10:46:11 2022 -0800 |
committer | Vernon Mauery <vernon.mauery@linux.intel.com> | Fri Jan 27 19:04:47 2023 +0000 |
tree | b438d71ffc166d689d9c1ac47889396cca25b3e5 | |
parent | 07574006faefed727c8db2da3fa86740b3bdd31f [diff] |
Fix Get and Set SM PWM Signal On systems with multiple fan controllers, Index value is only unique within the same controller. This means that Index alone can not be used to correctly identify a fan sensor. This commit fixes this defect by specifically searching for the "Fan_#" Entity Manager object where # is the fan being accessed. The commit which introduced this issue can be found here: https://gerrit.openbmc.org/c/openbmc/intel-ipmi-oem/+/56909 This commit also replaces phosphor-logging log with lg2. Testing: 1. System with multiple fan controllers that have duplicated index property: busctl introspect xyz.openbmc_project.EntityManager /xyz/openbmc_project/inventory/system/board/XXXXXXXX/Fan_7 xyz.openbmc_project.Configuration.I2CFan interface .Address property t 47 .BindConnector property s "System Fan connector 7" .Bus property t 6 .Index property t 0 busctl introspect xyz.openbmc_project.EntityManager /xyz/openbmc_project/inventory/system/board/XXXXXXXX/Fan_1 xyz.openbmc_project.Configuration.I2CFan interface .Address property t 44 .BindConnector property s System Fan connector 1" .Bus property t 6 .Index property t 0 Without fix: ipmitool raw 0x30 0x14 0x0d 0 0x00 3c ipmitool raw 0x30 0x14 0x0d 6 0x00 Unable to send RAW command (channel=0x0 netfn=0x30 lun=0x0 cmd=0x14 rsp=0xcc): Invalid data field in request. With fix: ipmitool raw 0x30 0x14 0x0d 0 0x00 3c ipmitool raw 0x30 0x14 0x0d 6 0x00 3c ipmitool raw 0x30 0x15 0x05 0 0x1 0x40 ipmitool raw 0x30 0x15 0x05 6 0x1 0x46 ipmitool raw 0x30 0x14 0x0d 0 0x00 40 ipmitool raw 0x30 0x14 0x0d 6 0x00 46 2. System with one pwm port controlling two fans: busctl introspect xyz.openbmc_project.EntityManager /xyz/openbmc_project/inventory/system/board/XXXXXXXX/Fan_1 xyz.openbmc_project.Configuration.I2CFan.Connector interface .Name property s "System Fan connector 1" emits-change .Pwm property t 0 emits-change .PwmName property s "Pwm_1_2" emits-change busctl introspect xyz.openbmc_project.EntityManager /xyz/openbmc_project/inventory/system/board/XXXXXXXX/Fan_2 xyz.openbmc_project.Configuration.I2CFan.Connector interface .Name property s "System Fan connector 2" emits-change .Pwm property t 0 emits-change .PwmName property s "Pwm_1_2" emits-change ipmitool raw 0x30 0x14 0x0d 0 0x00 3c ipmitool raw 0x31 0x14 0x0d 1 0x00 3c ipmitool raw 0x30 0x15 0x05 0 0x1 0x40 ipmitool raw 0x30 0x14 0x0d 0 0x00 40 ipmitool raw 0x31 0x14 0x0d 1 0x00 40 Signed-off-by: Alex Schendel <alex.schendel@intel.com> Change-Id: I8e2323c4572ed21c4e2f58d282574e65270bf60c
This component is intended to provide Intel-specific IPMI[3]
command handlers for OpenBMC. These handlers are intended to integrate BMC with servers based on Intel architecture.
intel-ipmi-oem
serves as an extension[1]
to OpenBMC IPMI daemon[2]
. It is compiled as a shared library and intended to both:
Related features provided by the library are grouped in separate source files. Main extensions to vanilla OpenBMC IPMI stack are the following:
[4]