We've got a relatively old system which we've been upgrading to a more
recent kernel. When we were applying the OpenIPMI kernel patches, we
found the following issue.

 

It's a case of a broken BIOS reporting the BMC I2C slave address in the
base address field. The ipmi_smb.c decode_dmi() method tries to work
around this problem, but appears to be off by one bit. My colleagues
Paul Sangree and Trevor Highland deserve the credit for finding this
issue.

 

Thanks for all the great work. 

 

Intel(R) server platform SE7520JR2, BIOS 10.0 build 0087

Linux 2.6.29.1

 

--- linux-ipmismb-2.6.30-v39.2.diff     2009-09-30 17:06:42.349841000
-0500

+++ linux-ipmismb-2.6.30-v39.3.diff     2009-10-20 18:12:58.730019000
-0500

@@ -1686,7 +1686,7 @@

 +              addr[i*2+1] = data[8] >> 1;

 +

 +      if (!addr_in_slave_addr) {

-+              slave_addrs[i] = data[6];

++              slave_addrs[i] = data[6] >> 1;

 +              printk(KERN_INFO PFX "DMI specifies SSIF @ 0x%x, "

 +                     "slave address 0x%x\n",

 +                     addr[i*2+1], slave_addrs[i]);

 

 

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Openipmi-developer mailing list
Openipmi-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openipmi-developer

Reply via email to