Bug 682512

Summary: ipmi_si requires regspacings=4 on HP microserver, should that not be detected
Product: Red Hat Enterprise Linux 6 Reporter: Patrick C. F. Ernzer <pcfe>
Component: kernelAssignee: Peter Martuccelli <peterm>
Status: CLOSED CANTFIX QA Contact: Red Hat Kernel QE team <kernel-qe>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.0CC: arozansk, tcamuso
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-04-24 12:08:00 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Patrick C. F. Ernzer 2011-03-06 10:00:14 UTC
Description of problem:
When trying to use ipmi_si on my HP ProLiant MicroServer, I have to specify regspacings=4 . Should that not be auto-probed?

Then again dmidecode tells me
IPMI Device Information
        Interface Type: KCS (Keyboard Control Style)
        Specification Version: 1.5
        I2C Slave Address: 0x10
        NV Storage Device: Not Present
        Base Address: 0x0000000000000CA8 (I/O)
        Register Spacing: Successive Byte Boundaries


Version-Release number of selected component (if applicable):
2.6.32-71.14.1.el6.x86_64

How reproducible:
always

Steps to Reproduce:
1. do _not_ have /etc/modprobe.d/ipmi_si.conf
2. modprobe impi_si
  
Actual results:
fails to load

Expected results:
ipmi_si loads

Additional info:
after some googling, I created  /etc/modprobe.d/ipmi_si.conf with
options ipmi_si type=kcs ports=0xca8 regspacings=4

Now this works, but I'd like to know why and if 4 is the correct value.

Comment 3 RHEL Program Management 2011-04-04 02:45:42 UTC
Since RHEL 6.1 External Beta has begun, and this bug remains
unresolved, it has been rejected as it is not proposed as
exception or blocker.

Red Hat invites you to ask your support representative to
propose this request, if appropriate and relevant, in the
next release of Red Hat Enterprise Linux.

Comment 4 Tony Camuso 2011-10-05 10:05:22 UTC
Please update the system BIOS and try again.

Meanwhile, I will research this.

Comment 5 RHEL Program Management 2011-10-07 15:24:51 UTC
Since RHEL 6.2 External Beta has begun, and this bug remains
unresolved, it has been rejected as it is not proposed as
exception or blocker.

Red Hat invites you to ask your support representative to
propose this request, if appropriate and relevant, in the
next release of Red Hat Enterprise Linux.

Comment 6 Patrick C. F. Ernzer 2011-10-10 18:54:12 UTC
updated BIOS to 2011.07.29 (A) (25 Aug 2011) aka 041
# mv /etc/modprobe.d/ipmi_si.conf ~
# reboot
# lsmod | grep ipmi
ipmi_watchdog          17348  0 
ipmi_devintf            7983  0 
ipmi_si                42399  0 
ipmi_msghandler        35958  3 ipmi_watchdog,ipmi_devintf,ipmi_si

so it does load but seemingly not properly.

Oct 10 21:47:05 hp-microserver kernel: ipmi message handler version 39.2
Oct 10 21:47:05 hp-microserver kernel: IPMI System Interface driver.
Oct 10 21:47:05 hp-microserver kernel: ipmi_si: Adding SMBIOS-specified kcs state machine
Oct 10 21:47:05 hp-microserver kernel: ipmi_si: Adding ACPI-specified smic state machine
Oct 10 21:47:05 hp-microserver kernel: ipmi_si: Trying SMBIOS-specified kcs state machine at
 i/o address 0xca8, slave address 0x20, irq 0
Oct 10 21:47:05 hp-microserver kernel: ipmi_si: Interface detection failed
Oct 10 21:47:05 hp-microserver kernel: ipmi_si: Trying ACPI-specified smic state machine at 
mem address 0x0, slave address 0x0, irq 0
Oct 10 21:47:05 hp-microserver kernel: Could not set up I/O space
Oct 10 21:47:05 hp-microserver kernel: ipmi device interface

If I move ipmi_si.conf back into /etc/modprobe.d/ , remove the ipmi_* modules and then reload them, they load fine, as expected.

Oct 10 21:51:22 hp-microserver kernel: ipmi message handler version 39.2
Oct 10 21:51:22 hp-microserver kernel: IPMI System Interface driver.
Oct 10 21:51:22 hp-microserver kernel: ipmi_si: Adding hardcoded-specified kcs state machine
Oct 10 21:51:22 hp-microserver kernel: ipmi_si: Trying hardcoded-specified kcs state machine at i/o address 0xca8, slave address 0x0, irq 0
Oct 10 21:51:23 hp-microserver kernel: ipmi: Found new BMC (man_id: 0x000001,  prod_id: 0x3431, dev_id: 0x20)
Oct 10 21:51:23 hp-microserver kernel: IPMI kcs interface initialized




FWIW: the BMC card has been at the latest firmware (1.2) for a while already.

Comment 7 Tony Camuso 2011-10-10 19:05:02 UTC
Patrick, 

I'm sorry, but HP does not support RHEL6 on the microserver.

Comment 8 Patrick C. F. Ernzer 2011-10-11 09:57:21 UTC
Tony,

(In reply to comment #7)
> I'm sorry, but HP does not support RHEL6 on the microserver.

That's quite OK, I use the machine privately and do not require HP to support el6. But, this bug is aboutt ipmi_si an whether it is expected that I need to manually add options (then I can whip up a couple lines for the docs) or whether IPMI should all be auto-probed.

Have you had the possibility to try to reproduce this bug under el5? (I can not do this easily as the machine is used as my install server. But  if there really is no way around it I can take the time to do this)

Comment 9 Tony Camuso 2011-10-11 16:58:14 UTC
Hi, Patrick. 

I have two problems.

1. I don't have access to a microserver
2. As an HP employee, I'm constrained to work within the supported platform/distro matrix. 

Do you get the same problem with RHEL5? If so, I can have the microserver team address it. Their solution might also work for RHEL6.

Comment 10 Patrick C. F. Ernzer 2011-10-12 17:32:21 UTC
Hi Tony,

(In reply to comment #9)

> 1. I don't have access to a microserver
> 2. As an HP employee, I'm constrained to work within the supported
> platform/distro matrix. 

Apologies, I thought you were one of ours.

Close the bug as unsupported configuration then. This is a machine I use personally and I know how to work around the problem.

> Do you get the same problem with RHEL5? If so, I can have the microserver team
> address it. Their solution might also work for RHEL6.

I would have to take down my install server, rip out the drives (not wanting to lose my existing RHEL6 install), plug in a fresh drive, turn another of my machines into a temporary install source and finally install RHEL5 to the microserver. While I do have the hardware needed to do all this, I'd rather not go through all that trouble for a bug on a private machine for which I have a work-around in place. But, if you believe this could be of benefit to other owners of this hardware, I can test RHEL5 one of the coming week-ends.

Kind regards,

Patrick

Comment 12 Tony Camuso 2013-04-24 12:08:00 UTC
Unsupported configuration.

Comment 13 Patrick C. F. Ernzer 2013-09-29 20:25:10 UTC
Just as a followup, no need to reopen, firmware bug.

(In reply to Patrick C. F. Ernzer from comment #0)
[...]
> after some googling, I created  /etc/modprobe.d/ipmi_si.conf with
> options ipmi_si type=kcs ports=0xca8 regspacings=4
> 
> Now this works, but I'd like to know why and if 4 is the correct value.

This turned out to be wrong. In the
  HP MicroServer Remote Access Card
  User Manual
  Part Number: 664489-002
  February 2013
  Edition: 2

It says on page 6

[start]
The default system base address for the I/O mapped KCS Interface is 0xCA2 and is byte aligned at this system address. The KCS
interface is accessible to SMS software that is running on the local system.
[end]

Sadly, even with firmware version 1.3 on the BMC, in DMI the machine reports

IPMI Device Information
        Interface Type: KCS (Keyboard Control Style)
        Specification Version: 1.5
        I2C Slave Address: 0x10
        NV Storage Device: Not Present
        Base Address: 0x0000000000000CA8 (I/O)
        Register Spacing: Successive Byte Boundaries

So RHEL has no chance of getting this right automatically (0xCA8 != 0xCA2).
 
As ipmi_si is built into 2.6.32-358.18.1.el6.x86_64, I have added 
 ipmi_si.ports=0xca2
to the kernel line, and it's fine
# dmesg | grep -i ipmi
[...]
ipmi message handler version 39.2
IPMI System Interface driver.
ipmi_si: Adding hardcoded-specified kcs state machine
ipmi_si: Trying hardcoded-specified kcs state machine at i/o address 0xca2, slave address 0x0, irq 0
ipmi: Found new BMC (man_id: 0x000001,  prod_id: 0x3431, dev_id: 0x20)
IPMI kcs interface initialized
ipmi device interface
IPMI Watchdog: driver initialized