Sensor readings as 1-byte

guhan balasubramanian guhan.sac at gmail.com
Sat Mar 10 13:31:06 AEDT 2018


Hi,

According to the IPMI spec, we represent all sensor readings (Volt, Temp,
Amp, etc.) as 1-byte.

Since we represent them as 1-byte, we use a linearization formula to
convert to actual value as follows:

y = (M*x + B*10^(k1))*10^(k2)

where x is the 1-byte value that is filled in the get sensor reading
command.

We see in the ipmitool example on how an example of 3.36 V is represented
as 1-byte.
https://computercheese.blogspot.com/2013/10/ipmi-sensor-reading-conversion-formula.html?q=sensor

Can any one please help on how the values for M, B, k1 and k2 are populated
for each sensor?

In the openbmc repo, I believe these values are present in the config.yaml
of phosphor-ipmi-sensor-inventory (based on the following sample).

0xF1:
  sensorType: 0x01
  path: /xyz/openbmc_project/sensors/temperature/temp1
  sensorReadingType: 0x01
  *multiplierM*: 511
  *offsetB*: 0
  *bExp*: 0
  mutability: Mutability::Write|Mutability::Read
  serviceInterface: org.freedesktop.DBus.Properties
  readingType: readingData
  interfaces:
    xyz.openbmc_project.Sensor.Value:
      Value:
        Offsets:
          0x0:
            type: int64_t


Thanks,
Guhan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20180309/139299dd/attachment.html>


More information about the openbmc mailing list