ipmitool / test

0 stars 0 forks source link

ipmi_sdr - ipmi_sdr_print_sensor_oem_intel() needs a re-work #28

Open AlexanderAmelkin opened 11 years ago

AlexanderAmelkin commented 11 years ago

Reported by: Zdenek Styblik Original Ticket: ipmitool/bugs/203

Code to blame follows. The code is wrong as has been discussed on mailing list:

case 8: /\* SR2300, redundant, PS1 & PS2 present \*/
if \(verbose\) \{
printf\("Power Redundancy       : No\n"\);
printf\("Power Supply 2 Sensor  : %x\n",
oem->data\[8\]\);
\} else if \(csv\_output\) \{
printf\("Power Redundancy,PS@%02xh,nr\n",
oem->data\[8\]\);
\} else \{
printf
\("Power Redundancy | PS@%02xh            | nr\n",
oem->data\[8\]\);
\}
case 9: /\* SR2300, non-redundant, PSx present \*/
if \(verbose\) \{
printf\("Power Redundancy       : Yes\n"\);
printf\("Power Supply Sensor    : %x\n",
oem->data\[7\]\);
printf\("Power Supply Sensor    : %x\n",
oem->data\[8\]\);
\} else if \(csv\_output\) \{
printf
\("Power Redundancy,PS@%02xh + PS@%02xh,ok\n",
oem->data\[7\], oem->data\[8\]\);
\} else \{
printf
\("Power Redundancy | PS@%02xh + PS@%02xh   | ok\n",
oem->data\[7\], oem->data\[8\]\);
\}
break;
\}
if \(verbose\)
printf\("\n"\);
break;

Follows copy-paste from Liebig Holger:

\[Liebig, Holger\]
To answer this myself: in http://download.intel.com/support/motherboards/server/sb/imm\_tps\_12.pdf page 200 is a list and description of Intel OEM SDRs including the Power Unit Map SDR type. The same information can be found in a dusty yellow cover document from 2004 for the ESB2 BMC from Intel. A real world SDR including such an OEM SDR can be found on http://communities.intel.com/thread/11855?start=15&tstart=0, so this seems to be a common OEM SDR type for Intel systems.

Based on this information:
\- a break for the case 8 is indeed missing
\- case 8 should output the PSU sensor number from oem->data\[7\] instead of oem->data\[8\] since only one PSU sensor number is available.
\- the comments for case 8 and case 9 are misleading and should be swapped
\- references to specific system codes \(SR2300/SR1300\) could be removed
\- the "redundancy available" information should evaluate the "Power Supplies Required" field of the SDR and not simply rely on the number of PSU sensors being > 1. The sample in table 107 on page 200 requires 2 PSU for the system to work and has 3 PSU sensors \(2+1 redundancy\)

Holger
AlexanderAmelkin commented 11 years ago

Original comment by: Zdenek Styblik

AlexanderAmelkin commented 8 years ago

Original comment by: Zdenek Styblik