|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] OpenIPMI on dom0
Has anyone had any success with the OpenIPMI kernel modules on dom0?
I've been trying to get this to work on a IBM HS20 8843-25U blade
running RHEL 4 Update 2 AS i386 (32-bit).
I've tried compiling them into the xen0 kernel with the follow options
in linux-2.6.12-xen0/.config:
#
# IPMI
#
CONFIG_IPMI_HANDLER=m
# CONFIG_IPMI_PANIC_EVENT is not set
CONFIG_IPMI_DEVICE_INTERFACE=m
CONFIG_IPMI_SI=m
CONFIG_IPMI_WATCHDOG=m
CONFIG_IPMI_POWEROFF=m
and doing
modprobe ipmi_si
which yields the following error message from dmesg:
ipmi message handler version v33
IPMI System Interface driver version v33, KCS version v33, SMIC version v33, BT
version v33
ipmi_si: Trying "kcs" at I/O port 0xca2
ipmi_si: Trying "smic" at I/O port 0xca9
ipmi_si: Trying "bt" at I/O port 0xe4
ipmi_si: Unable to find any System Interface(s)
I was able to get ipmi_si to load properly on the default SMP kernel from RHEL
4,
with the following messages from the kernel:
ipmi message handler version 33.4
IPMI System Interface driver version 33.4, KCS version 33.4, SMIC version 33.4,
BT version 33.4
ipmi_si: Found SMBIOS-specified state machine at I/O address 0xca8, slave
address 0x20
IPMI kcs interface initialized
ipmi device interface version 33.4
So, the BMC I have is on port 0xca8 instead of the default 0xca2. There's code
in
linux-2.6.12-xen0/drivers/char/ipmi/ipmi_si_intf.c that is supposed to read the
SMBIOS tables to find out from the type 38 structure what the actual BMC
address is.
This code uses isa_memcpy_fromio() to read memory from 0xf0000 to 0xfffff, and
appears
to read all 0's, even though in user-space I can use mmap() on /dev/mem and
find the
SMBIOS entry point in that address space.
If I specify the port that the BMC is on with
modprobe ipmi_si ports=0xca8
I get the following message from the dom0 Linux kernel
IPMI System Interface driver version v33, KCS version v33, SMIC version v33, BT
version v33
ipmi_si: Trying "kcs" at I/O port 0xca8
ipmi_si: Unable to find any System Interface(s)
so something else appears to be wrong here too, other than
isa_memcpy_fromio()'s only
reading 0's from reserved memory blocks. The code to initialize a BMC starts
in the
init_one_smi() function in linux-2.6.12-xen0/drivers/char/ipmi/ipmi_si_intf.c .
I think this code tries to send and write bytes from IO ports using inb() and
outb() and
don't know whether these are known to work with Xen or not.
Does anyone know anything about why this doesn't work?
Thanks in advance for your help.
Andrew
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] OpenIPMI on dom0,
Andrew D. Ball <=
|
|
|
|
|