Bug 103041 - [ipmi] unloading ipmi panics Dell PE 2850, ipmi doesn't work, 1850 works fine
Summary: [ipmi] unloading ipmi panics Dell PE 2850, ipmi doesn't work, 1850 works fine
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 6.1-STABLE
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-09-08 17:00 UTC by Paul Dekkers
Modified: 2015-02-06 16:42 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Paul Dekkers 2006-09-08 17:00:38 UTC
After using the ipmi module from -stable (or the port in most cases...)
on a couple of PowerEdge 1850's from Dell, I tried the same on the
bigger 2850... unfortunally, it fails. I updated the source-tree today,
and tried both SMP and GENERIC kernel.

On the 1850 I get:

ipmi0: <System Management BIOS> at iomem 0xf9900-0xf991e,0xf9920-0xfa5ba
on isa0
ipmi0: SMBIOS Version: 2.03, revision: 2.03
ipmi0: KCS mode found at io 0xca8 alignment 0x4 on isa
ipmi0: IPMI device rev. 0, firmware rev. 1.81, version 1.5
ipmi0: Number of channels 4
ipmi0: Attached watchdog

The 2850 gives me:

ipmi0: <System Management BIOS> at iomem 0xf9900-0xf991e,0xf9920-0xfa5bf
on isa0
ipmi0: SMBIOS Version: 2.03, revision: 2.03
ipmi0: KCS mode found at io 0xca8 alignment 0x4 on isa
ipmi0: couldn't configure smbios io res

But more scary, as soon as I unload the module (since it has no use
anyway ;-)) the kernel panics. Unloading ipmi from the 1850 works just fine.

I have a kgdb output included below, but I'm afraid it lacks some detail.

Unfortunally I only have this 2850 to test on (and I'm not sure how long
I can keep testing ;-)) - I tried multiple 1850's where things work as
expected.

I tried this earlier in August, but no changes in this area.

# kgdb /boot/kernel/kernel vmcore.3
[GDB will not be able to debug user-mode threads:
/usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"]
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd".
(no debugging symbols found)...Attempt to extract a component of a value
that is not a structure pointer.
(kgdb) bt
#0  0xc06665f6 in doadump ()
#1  0xc0666aec in boot ()
#2  0xc0666d6a in panic ()
#3  0xc0860a98 in trap_fatal ()
#4  0xc08607ff in trap_pfault ()
#5  0xc0860491 in trap ()
#6  0xc084f2ea in calltrap ()
#7  0xc0643209 in destroy_devl ()
#8  0xc06433c8 in destroy_dev ()
#9  0xc84018bf in ?? ()
#10 0x00000000 in ?? ()
#11 0xc83f2d00 in ?? ()
#12 0xc83c5200 in ?? ()
#13 0xe8468c18 in ?? ()
#14 0xc840278e in ?? ()
#15 0xc83c5200 in ?? ()
#16 0xc83c5200 in ?? ()
#17 0xc83c5200 in ?? ()
#18 0xc83c5200 in ?? ()
#19 0xe8468c30 in ?? ()
#20 0xc067b1c0 in device_detach ()
Previous frame inner to this frame (corrupt stack?)
(kgdb)

How-To-Repeat: kldload ipmi
kldunload ipmi
Comment 1 Alexander Logvinov 2006-11-27 03:08:54 UTC
Hello! 

Same problem with FreeBSD 6.2-RC1 and Intel SE7230NH1-E.

# kldload ipmi
sio1: configured irq 3 not in bitmap of probed irqs 0
sio1: port may not be enabled
ipmi0: <IPMI System Interface> port 0x2048-0x204b mem 0x481a0000-0x481a0fff irq 16 at device 0.4 on pci4
ipmi0: using KSC interface
ipmi0: KCS: Failed to read address
ipmi0: KCS: Failed to read address
ipmi0: KCS: Failed to read address
ipmi0: Failed GET_DEVICE_ID: 5

# kldunload ipmi

Fatal trap 12: page fault while in kernel mode 
cpuid = 0; apic id = 00
fault virtual address = 0x0
fault code = supervisor read, page not present
instruction pointer = 0x20:0xc04b6251
stack pointer = 0x28:0xe724db84
frame pointer = 0x28:0xe724db84
code segment = base rx0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 
processor eflags = interrupt enabled, resume, IOPL = 0 
current process = 1260 (kldunload) 
trap number = 12
panic: page fault 
cpuid = 0
Uptime: 25s

# kgdb /boot/kernel/kernel vmcore.1
[GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"]
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd".
(no debugging symbols found)...Attempt to extract a component of a value that is not a structure pointer.
(kgdb) bt
#0  0xc0506661 in doadump ()
#1  0xc0506cc9 in boot ()
#2  0xc05072e7 in panic ()
#3  0xc065e228 in trap_fatal ()
#4  0xc065e4c8 in trap_pfault ()
#5  0xc065e8b0 in trap ()
#6  0xc064927a in calltrap ()
#7  0xc04b6251 in devfs_destroy ()
#8  0xc04d3187 in destroy_devl ()
#9  0xc04d3390 in destroy_dev ()
#10 0xc4f6cf95 in ?? ()
#11 0x00000000 in ?? ()
#12 0x00000000 in ?? ()
#13 0xc4f7119d in ?? ()
#14 0x00000381 in ?? ()
#15 0xc47af680 in ?? ()
#16 0xc47af680 in ?? ()
#17 0xc47af680 in ?? ()
#18 0x00000000 in ?? ()
#19 0xe724dc08 in ?? ()
#20 0xc05201f1 in device_detach ()
#21 0xc4f42854 in ?? ()
#22 0xc06b9558 in device_shutdown_method_default ()
#23 0xc4f7117a in ?? ()
#24 0xc4f72350 in ?? ()
#25 0xc4a9b050 in ?? ()
#26 0xc47af680 in ?? ()
#27 0x00000000 in ?? ()
#28 0xe724dc28 in ?? ()
#29 0xc05204bb in devclass_delete_driver ()
Previous frame inner to this frame (corrupt stack?)
(kgdb)

# dmesg
Copyright (c) 1992-2006 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 6.2-RC1 #3: Mon Nov 27 11:01:20 YAKT 2006
    user@host:/usr/obj/usr/src/sys/AKA
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Pentium(R) D CPU 3.00GHz (2998.50-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0xf62  Stepping = 2
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0xe43d<SSE3,RSVD2,MON,DS_CPL,VMX,CNTX-ID,CX16,<b14>,<b15>>
  AMD Features=0x20000000<LM>
  AMD Features2=0x1<LAHF>
  Cores per package: 2
real memory  = 1072128000 (1022 MB)
avail memory = 1044226048 (995 MB)
ACPI APIC Table: <INTEL  04DT044 >
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP): APIC ID:  1
ioapic0: Changing APIC ID to 5
ioapic1: WARNING: intbase 30 != expected base r24
ioapic0 <Version 2.0> irqs 0-23 on motherboard
ioapic1 <Version 2.0> irqs 30-53 on motherboard
kbd1 at kbdmux0
acpi0: <INTEL 04DT044> on motherboard
acpi0: Power Button (fixed)
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x408-0x40b on acpi0
cpu0: <ACPI CPU> on acpi0
cpu1: <ACPI CPU> on acpi0
acpi_button0: <Sleep Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pcib1: <ACPI PCI-PCI bridge> at device 28.0 on pci0
pci1: <ACPI PCI bus> on pcib1
pcib2: <ACPI PCI-PCI bridge> at device 0.0 on pci1
pci2: <ACPI PCI bus> on pcib2
pcib3: <ACPI PCI-PCI bridge> at device 28.4 on pci0
pci3: <ACPI PCI bus> on pcib3
pcib4: <ACPI PCI-PCI bridge> at device 28.5 on pci0
pci4: <ACPI PCI bus> on pcib4
em0: <Intel(R) PRO/1000 Network Connection Version - 6.2.9> port 0x2000-0x201f mem 0x48180000-0x4819ffff,0x48100000-0x4817ffff irq 17 at device 0.0 on pci4
em0: Ethernet address: 00:13:20:d6:12:bb
atapci0: <GENERIC ATA controller> port 0x2040-0x2047,0x2050-0x2053,0x2038-0x203f,0x204c-0x204f,0x2020-0x202f irq 18 at device 0.2 on pci4
ata2: <ATA channel 0> on atapci0
ata3: <ATA channel 1> on atapci0
pci4: <simple comms, UART> at device 0.3 (no driver attached)
pci4: <serial bus> at device 0.4 (no driver attached)
uhci0: <UHCI (generic) USB controller> port 0x3080-0x309f irq 23 at device 29.0 on pci0
uhci0: [GIANT-LOCKED]
usb0: <UHCI (generic) USB controller> on uhci0
usb0: USB revision 1.0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1: <UHCI (generic) USB controller> port 0x3060-0x307f irq 19 at device 29.1 on pci0
uhci1: [GIANT-LOCKED]
usb1: <UHCI (generic) USB controller> on uhci1
usb1: USB revision 1.0
uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhci2: <UHCI (generic) USB controller> port 0x3040-0x305f irq 18 at device 29.2 on pci0
uhci2: [GIANT-LOCKED]
usb2: <UHCI (generic) USB controller> on uhci2
usb2: USB revision 1.0
uhub2: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
uhci3: <UHCI (generic) USB controller> port 0x3020-0x303f irq 16 at device 29.3 on pci0
uhci3: [GIANT-LOCKED]
usb3: <UHCI (generic) USB controller> on uhci3
usb3: USB revision 1.0
uhub3: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub3: 2 ports with 2 removable, self powered
ehci0: <Intel 82801GB/R (ICH7) USB 2.0 controller> mem 0x48200400-0x482007ff irq 23 at device 29.7 on pci0
ehci0: [GIANT-LOCKED]
usb4: EHCI version 1.0
usb4: companion controllers, 2 ports each: usb0 usb1 usb2 usb3
usb4: <Intel 82801GB/R (ICH7) USB 2.0 controller> on ehci0
usb4: USB revision 2.0
uhub4: Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub4: 8 ports with 8 removable, self powered
pcib5: <ACPI PCI-PCI bridge> at device 30.0 on pci0
pci5: <ACPI PCI bus> on pcib5
pci5: <display, VGA> at device 4.0 (no driver attached)
em1: <Intel(R) PRO/1000 Network Connection Version - 6.2.9> port 0x1100-0x113f mem 0x48020000-0x4803ffff,0x48000000-0x4801ffff irq 17 at device 5.0 on pci5
em1: Ethernet address: 00:13:20:d6:12:bc
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci1: <Intel ICH7 UDMA100 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x30b0-0x30bf irq 18 at device 31.1 on pci0
ata0: <ATA channel 0> on atapci1
ata1: <ATA channel 1> on atapci1
atapci2: <Intel ICH7 SATA300 controller> port 0x30c8-0x30cf,0x30e4-0x30e7,0x30c0-0x30c7,0x30e0-0x30e3,0x30a0-0x30af mem 0x48200000-0x482003ff irq 19 at device 31.2 on pci0
atapci2: AHCI Version 01.10 controller with 4 ports detected
ata4: <ATA channel 0> on atapci2
ata5: <ATA channel 1> on atapci2
ata6: <ATA channel 2> on atapci2
ata7: <ATA channel 3> on atapci2
ichsmb0: <SMBus controller> port 0x3000-0x301f irq 19 at device 31.3 on pci0
ichsmb0: [GIANT-LOCKED]
smbus0: <System Management Bus> on ichsmb0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sio0: type 16550A
orm0: <ISA Option ROM> at iomem 0xc0000-0xcafff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sio1: configured irq 3 not in bitmap of probed irqs 0
sio1: port may not be enabled
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Timecounters tick every 1.000 msec
ipfw2 (+ipv6) initialized, divert loadable, rule-based forwarding enabled, default to deny, logging limited to 100 packets/entry by default
acd0: DVDR <PIONEER DVD-RW DVR-K16/1.33> at ata0-master UDMA33
ad8: 152627MB <WDC WD1600JS-00MHB0 02.01C03> at ata4-master SATA300
ad10: 152627MB <WDC WD1600JS-00MHB0 02.01C03> at ata5-master SATA300
ar0: 152520MB <LSILogic v3 MegaRAID RAID1> status: READY
ar0: disk0 READY (master) using ad8 at ata4-master
ar0: disk1 READY (mirror) using ad10 at ata5-master
SMP: AP CPU #1 Launched!
Trying to mount root from ufs:/dev/ar0s1a
WARNING: / was not properly dismounted
cd0 at ata0 bus 0 target 0 lun 0
cd0: <PIONEER DVD-RW  DVR-K16 1.33> Removable CD-ROM SCSI-0 device
cd0: 33.000MB/s transfers
cd0: Attempt to query device size failed: NOT READY, Medium not present

# pciconf -lv
hostb0@pci0:0:0:        class=0x060000 card=0x346a8086 chip=0x27788086 rev=0x00 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = 'Server Memory Controller Hub'
    class    = bridge
    subclass = HOST-PCI
pcib1@pci0:28:0:        class=0x060400 card=0x00000040 chip=0x27d08086 rev=0x01 hdr=0x01
    vendor   = 'Intel Corporation'
    device   = '82801G (ICH7 Family) PCI Express Root Port'
    class    = bridge
    subclass = PCI-PCI
pcib3@pci0:28:4:        class=0x060400 card=0x00000040 chip=0x27e08086 rev=0x01 hdr=0x01
    vendor   = 'Intel Corporation'
    device   = '82801GR/GH/GHM (ICH7 Family) PCI Express Root Port'
    class    = bridge
    subclass = PCI-PCI
pcib4@pci0:28:5:        class=0x060400 card=0x00000040 chip=0x27e28086 rev=0x01 hdr=0x01
    vendor   = 'Intel Corporation'
    device   = '82801GR/GH/GHM (ICH7 Family) PCI Express Root Port'
    class    = bridge
    subclass = PCI-PCI
uhci0@pci0:29:0:        class=0x0c0300 card=0x346a8086 chip=0x27c88086 rev=0x01 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '82801G (ICH7 Family) USB Universal Host Controller'
    class    = serial bus
    subclass = USB
uhci1@pci0:29:1:        class=0x0c0300 card=0x346a8086 chip=0x27c98086 rev=0x01 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '82801G (ICH7 Family) USB Universal Host Controller'
    class    = serial bus
    subclass = USB
uhci2@pci0:29:2:        class=0x0c0300 card=0x346a8086 chip=0x27ca8086 rev=0x01 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '82801G (ICH7 Family) USB Universal Host Controller'
    class    = serial bus
    subclass = USB
uhci3@pci0:29:3:        class=0x0c0300 card=0x346a8086 chip=0x27cb8086 rev=0x01 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '82801G (ICH7 Family) USB Universal Host Controller'
    class    = serial bus
    subclass = USB
ehci0@pci0:29:7:        class=0x0c0320 card=0x346a8086 chip=0x27cc8086 rev=0x01 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '82801G (ICH7 Family) USB 2.0 Enhanced Host Controller'
    class    = serial bus
    subclass = USB
pcib5@pci0:30:0:        class=0x060401 card=0x00000050 chip=0x244e8086 rev=0xe1 hdr=0x01
    vendor   = 'Intel Corporation'
    device   = '82801BA/CA/DB/DBL/EB/ER/FB (ICH2/3/4/4/5/5/6), 6300ESB Hub Interface to PCI Bridge'
    class    = bridge
    subclass = PCI-PCI
isab0@pci0:31:0:        class=0x060100 card=0x346a8086 chip=0x27b88086 rev=0x01 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '82801GB/GR (ICH7 Family) LPC Interface Controller'
    class    = bridge
    subclass = PCI-ISA
atapci1@pci0:31:1:      class=0x01018a card=0x346a8086 chip=0x27df8086 rev=0x01 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '82801G (ICH7 Family) Ultra ATA Storage Controller'
    class    = mass storage
    subclass = ATA
atapci2@pci0:31:2:      class=0x010400 card=0x346b8086 chip=0x27c38086 rev=0x01 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '82801GB I/O Controller Hub SATA cc=RAID'
    class    = mass storage
    subclass = RAID
ichsmb0@pci0:31:3:      class=0x0c0500 card=0x346a8086 chip=0x27da8086 rev=0x01 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '82801G (ICH7 Family) SMBus Controller'
    class    = serial bus
    subclass = SMBus
pcib2@pci1:0:0: class=0x060400 card=0x00000044 chip=0x032c8086 rev=0x09 hdr=0x01
    vendor   = 'Intel Corporation'
    device   = '6702PXH PCI Express-to-PCI Express Bridge'
    class    = bridge
    subclass = PCI-PCI
em0@pci4:0:0:   class=0x020000 card=0x30a28086 chip=0x108c8086 rev=0x03 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = 'PRO/1000 PM'
    class    = network
    subclass = ethernet
atapci0@pci4:0:2:       class=0x010185 card=0x00008086 chip=0x108d8086 rev=0x03 hdr=0x00
    vendor   = 'Intel Corporation'
    class    = mass storage
    subclass = ATA
none0@pci4:0:3: class=0x070002 card=0x00008086 chip=0x108f8086 rev=0x03 hdr=0x00
    vendor   = 'Intel Corporation'
    class    = simple comms
    subclass = UART
none1@pci4:0:4: class=0x0c0701 card=0x00008086 chip=0x108e8086 rev=0x03 hdr=0x00
    vendor   = 'Intel Corporation'
    class    = serial bus
none2@pci5:4:0: class=0x030000 card=0x515e8086 chip=0x515e1002 rev=0x02 hdr=0x00
    vendor   = 'ATI Technologies Inc'
    class    = display
    subclass = VGA
em1@pci5:5:0:   class=0x020000 card=0x30a18086 chip=0x10768086 rev=0x05 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '82547EI Gigabit Ethernet Controller'
    class    = network
    subclass = ethernet
  

--
Best regards,
 Alexander                          mailto:ports@logvinov.com
Comment 2 John Baldwin freebsd_committer freebsd_triage 2006-12-01 19:42:49 UTC
On Sunday 26 November 2006 22:08, Alexander Logvinov wrote:
> Hello! 
> 
> Same problem with FreeBSD 6.2-RC1 and Intel SE7230NH1-E.
> 
> # kldload ipmi
> sio1: configured irq 3 not in bitmap of probed irqs 0
> sio1: port may not be enabled
> ipmi0: <IPMI System Interface> port 0x2048-0x204b mem 0x481a0000-0x481a0fff 
irq 16 at device 0.4 on pci4
> ipmi0: using KSC interface
> ipmi0: KCS: Failed to read address
> ipmi0: KCS: Failed to read address
> ipmi0: KCS: Failed to read address
> ipmi0: Failed GET_DEVICE_ID: 5

I've yet to determine why these chips don't work. :(  They seem to just be 
broken.

Try this patch to fix the kldunload though:

Index: ipmi.c
===================================================================
RCS file: /usr/cvs/src/sys/dev/ipmi/ipmi.c,v
retrieving revision 1.6
diff -u -r1.6 ipmi.c
--- ipmi.c      12 Oct 2006 16:26:42 -0000      1.6
+++ ipmi.c      1 Dec 2006 19:40:37 -0000
@@ -888,14 +888,16 @@
        sc->ipmi_cloning = 0;
        IPMI_UNLOCK(sc);

-       EVENTHANDLER_DEREGISTER(dev_clone, sc->ipmi_clone_tag);
+       if (sc->ipmi_clone_tag)
+               EVENTHANDLER_DEREGISTER(dev_clone, sc->ipmi_clone_tag);
 #else
        if (sc->ipmi_idev.ipmi_open) {
                IPMI_UNLOCK(sc);
                return (EBUSY);
        }
        IPMI_UNLOCK(sc);
-       destroy_dev(sc->ipmi_idev.ipmi_cdev);
+       if (sc->ipmi_idev.ipmi_cdev)
+               destroy_dev(sc->ipmi_idev.ipmi_cdev);
 #endif

        /* Detach from watchdog handling and turn off watchdog. */

-- 
John Baldwin
Comment 3 Alexander Logvinov 2006-12-04 05:31:42 UTC
Hello John!

Saturday, December 2, 2006, 4:42:49 AM, you wrote:

> irq 16 at device 0.4 on pci4
>> ipmi0: using KSC interface
>> ipmi0: KCS: Failed to read address
>> ipmi0: KCS: Failed to read address
>> ipmi0: KCS: Failed to read address
>> ipmi0: Failed GET_DEVICE_ID: 5
> I've yet to determine why these chips don't work. :(  They seem to just be 
> broken.
 :(

> Try this patch to fix the kldunload though:
 It works, but:

# kldunload ipmi
Warning: memory type ipmi leaked memory on destroy (1 allocations, 64 bytes leaked).

--
Best regards,
 Alexander
Comment 4 John Baldwin freebsd_committer freebsd_triage 2006-12-05 20:33:52 UTC
On Monday 04 December 2006 00:31, Alexander Logvinov wrote:
> Hello John!
> 
> Saturday, December 2, 2006, 4:42:49 AM, you wrote:
> 
> > irq 16 at device 0.4 on pci4
> >> ipmi0: using KSC interface
> >> ipmi0: KCS: Failed to read address
> >> ipmi0: KCS: Failed to read address
> >> ipmi0: KCS: Failed to read address
> >> ipmi0: Failed GET_DEVICE_ID: 5
> > I've yet to determine why these chips don't work. :(  They seem to just be 
> > broken.
>  :(
> 
> > Try this patch to fix the kldunload though:
>  It works, but:
> 
> # kldunload ipmi
> Warning: memory type ipmi leaked memory on destroy (1 allocations, 64 bytes 
leaked).

Ok, try below:

Index: ipmi.c
===================================================================
RCS file: /usr/cvs/src/sys/dev/ipmi/ipmi.c,v
retrieving revision 1.6
diff -u -r1.6 ipmi.c
--- ipmi.c	12 Oct 2006 16:26:42 -0000	1.6
+++ ipmi.c	5 Dec 2006 20:32:50 -0000
@@ -756,18 +756,22 @@
 	error = ipmi_submit_driver_request(sc, req, MAX_TIMEOUT);
 	if (error == EWOULDBLOCK) {
 		device_printf(dev, "Timed out waiting for GET_DEVICE_ID\n");
+		ipmi_free_request(req);
 		return;
 	} else if (error) {
 		device_printf(dev, "Failed GET_DEVICE_ID: %d\n", error);
+		ipmi_free_request(req);
 		return;
 	} else if (req->ir_compcode != 0) {
 		device_printf(dev,
 		    "Bad completion code for GET_DEVICE_ID: %d\n",
 		    req->ir_compcode);
+		ipmi_free_request(req);
 		return;
 	} else if (req->ir_replylen < 5) {
 		device_printf(dev, "Short reply for GET_DEVICE_ID: %d\n",
 		    req->ir_replylen);
+		ipmi_free_request(req);
 		return;
 	}
 
@@ -888,14 +892,16 @@
 	sc->ipmi_cloning = 0;
 	IPMI_UNLOCK(sc);
 
-	EVENTHANDLER_DEREGISTER(dev_clone, sc->ipmi_clone_tag);
+	if (sc->ipmi_clone_tag)
+		EVENTHANDLER_DEREGISTER(dev_clone, sc->ipmi_clone_tag);
 #else
 	if (sc->ipmi_idev.ipmi_open) {
 		IPMI_UNLOCK(sc);
 		return (EBUSY);
 	}
 	IPMI_UNLOCK(sc);
-	destroy_dev(sc->ipmi_idev.ipmi_cdev);
+	if (sc->ipmi_idev.ipmi_cdev)
+		destroy_dev(sc->ipmi_idev.ipmi_cdev);
 #endif
 
 	/* Detach from watchdog handling and turn off watchdog. */


-- 
John Baldwin
Comment 5 Alexander Logvinov 2006-12-05 23:34:09 UTC
Hello John!

Wednesday, December 6, 2006, 5:33:52 AM, you wrote:

> Ok, try below:
 Thanks!

# kldunload ipmi
ipmi0: detached

 Can I help with Intel SE7230NH1-E and ipmi to make it work? :)

--
Best regards,
 Alexander
Comment 6 Mark Linimon freebsd_committer freebsd_triage 2007-06-13 02:12:30 UTC
State Changed
From-To: open->analyzed

To submitter: the panic on detach should have been fixed with the jhb@ 
commit to ipmi.c in 1.7.  Can you confirm this? 

Also, is the chip still not recognized? 


Comment 7 Mark Linimon freebsd_committer freebsd_triage 2007-06-13 02:12:30 UTC
Responsible Changed
From-To: freebsd-bugs->linimon

Track for now.
Comment 8 john 2007-06-13 16:16:05 UTC
The chip is recognized (I have several of these myself), but it doesn't work.  
About halfway through a KCS transaction (after sending the request) it errors 
when we try to read the reply.  I've tried to work on this several times but 
have made no headway, it really does seem that this IPMI controller is just 
broken.  Can anyone verify if it works ok on Linux?

-- 
John Baldwin
Comment 9 Alexander Logvinov 2007-06-15 06:55:06 UTC
Hello!

> Can anyone verify if it works ok on Linux?
  Sorry to say machine with this chip now in operation, but I can try live-cd linux after the end of the working day. What Linux can you advise? :)

--
Best regards,
 Alexander
Comment 10 Alexander Logvinov 2007-06-19 13:46:08 UTC
Hello!

Ubuntu 6.06 LTS

# uname -a
Linux ubuntu 2.6.15-23-386 #1 PREEMPT Tue May 23 13:49:40 UTC 2006 i686 GNU/Linux

# modprobe ipmi_msghandler
# modprobe ipmi_devintf
# modprobe ipmi_si
FATAL: Error inserting ipmi_si (/lib/modules/2.6.15-23-386/kernel/drivers/char/ipmi/ipmi_si.ko): No such device

# dmesg
ipmi message handler version 38.0
ipmi device interface
IPMI System Interface driver.
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)

 :(

--
Best regards,
 Alexander
Comment 11 Alexander Logvinov 2007-06-19 14:27:24 UTC
Hello!

  IMHO SE7230NH1-E doesn't support IPMI Standards:


http://www.intel.com/design/servers/boards/se7230nh1-e/index.htm

vs

http://www.intel.com/design/servers/boards/SE7221BK1-E/index.htm


 for example... It's a pity.

--
Best regards,
 Alexander
Comment 12 Mark Linimon freebsd_committer freebsd_triage 2010-08-28 11:42:55 UTC
Responsible Changed
From-To: linimon->freebsd-bugs

I haven't worked on this in years; back to pool.
Comment 13 John Baldwin freebsd_committer freebsd_triage 2015-02-06 16:42:09 UTC
The panic was fixed and the BMC on the 2850 doesn't work under Linux either.