Date: Thu, 23 Sep 2004 11:32:45 -0400 From: John Baldwin <jhb@FreeBSD.org> To: freebsd-current@FreeBSD.org Cc: Pavel Gubin <pg@ie.tusur.ru> Subject: Re: "Multiple entries for PCI IRQ 16" and "xlock already held" panics on 5.3-BETA(3,4,5) Message-ID: <200409231132.45061.jhb@FreeBSD.org> In-Reply-To: <200409231029.47945.jhb@FreeBSD.org> References: <20040922095257.GA81709@ie.tusur.ru> <20040923042447.GA88335@ie.tusur.ru> <200409231029.47945.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 23 September 2004 10:29 am, John Baldwin wrote: > On Thursday 23 September 2004 12:24 am, Pavel Gubin wrote: > > On Wed, Sep 22, 2004 at 04:28:51PM -0400, John Baldwin wrote: > > > > 1) When MPS 1.4 is enabled with the BIOS setting and ACPI disabled > > > > either by BIOS or by unsetting `acpi_load' loader variable, the > > > > kernel panices immediately with "panic: Multiple entries for PCI IRQ > > > > 16" message. As one can see from #1 Bootlog, there are really two > > > > entries for IRQ16. I think this is the BIOS bug, but I also think the > > > > diagnostics for this situation should be more precise than that. > > > > > > There's not much more precise that can be done. mptable output would > > > be extremely helpful here. > > > > ========================================================================= > >== ==== > > > > MPTable, version 2.0.15 > > > > ------------------------------------------------------------------------- > >-- ---- > > > > MP Floating Pointer Structure: > > > > location: BIOS > > physical address: 0x000fb960 > > signature: '_MP_' > > length: 16 bytes > > version: 1.4 > > checksum: 0x7f > > mode: Virtual Wire > > > > ------------------------------------------------------------------------- > >-- ---- > > > > MP Config Table Header: > > > > physical address: 0x000f62b0 > > signature: 'PCMP' > > base table length: 256 > > version: 1.4 > > checksum: 0xcb > > OEM ID: 'SiS ' > > Product ID: '740 ' > > OEM table pointer: 0x00000000 > > OEM table size: 0 > > entry count: 25 > > local APIC address: 0xfee00000 > > extended table length: 0 > > extended table checksum: 0 > > > > ------------------------------------------------------------------------- > >-- ---- > > > > MP Config Base Table Entries: > > > > -- > > I/O Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN# > > INT active-lo level 0 2:A 2 16 > > INT active-lo level 0 2:A 2 23 > > This is the real bug and I guess I can improve the message. Then problem > is not two lines for IRQ 16, but that the PCI interrrupt for bus 0, device > 2, pin #A has two different IRQs listed, so we don't know which one we are > supposed to use. This is definitely a BIOS bug and your motherboard > manufacturer needs to harassed into giving you a BIOS update. Also, I have a patch to make the error message more useful if you want to try it: --- //depot/vendor/freebsd/src/sys/i386/i386/mptable.c 2004/07/01 07:50:36 +++ //depot/user/jhb/acpipci/i386/i386/mptable.c 2004/09/23 14:34:52 @@ -935,7 +935,9 @@ if (args->vector == vector) return; KASSERT(args->vector == -1, - ("Multiple entries for PCI IRQ %d", args->vector)); + ("Multiple IRQs for PCI interrupt %d.%d.INT%c: %d and %d\n", + args->bus, args->irq >> 2, 'A' + (args->irq & 0x3), args->vector, + vector)); args->vector = vector; } -- John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200409231132.45061.jhb>