Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Mar 2008 10:03:58 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-acpi@freebsd.org, Leon Kos <leon.kos@lecad.uni-lj.si>
Subject:   Re: kern/121558: Supermicro X7SB4 Fatal trap 12 when ACPI disabled
Message-ID:  <200803111003.58445.jhb@freebsd.org>
In-Reply-To: <200803111350.m2BDo3T2027051@freefall.freebsd.org>
References:  <200803111350.m2BDo3T2027051@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 11 March 2008 09:50:03 am Leon Kos wrote:
> The following reply was made to PR kern/121558; it has been noted by GNATS.
>
> From: Leon Kos <leon.kos@lecad.uni-lj.si>
> To: Dan Lukes <dan@obluda.cz>
> Cc: freebsd-acpi@freebsd.org, bug-followup@freebsd.org
> Subject: Re: kern/121558: Supermicro X7SB4 Fatal trap 12 when ACPI disabled
> Date: Tue, 11 Mar 2008 14:45:40 +0100 (CET)
>
>  mptable output of the system is located at:
>  http://www.lecad.uni-lj.si/~leon/other/x7sb4/mptable.txt

Your MPTable is broken.  It has 3 entries which use an I/O APIC ID of 0, but 
you don't have an I/O APIC with an ID of 0:

I/O APICs:	APIC ID	Version	State		Address
		 2	 0x20	 usable		 0xfec00000
		 3	 0x20	 usable		 0xfecc0000
		 4	 0x20	 usable		 0xfecc0400

--
I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN#
...
		INT	active-lo       level	    13	 0:A	      0	  16
		INT	active-lo       level	    15	 0:A	      0	  17
		INT	active-lo       level	     5	 0:A	      0	  19

You can work around this by manually specifying the routing for these devices 
with hints.  E.g. to use I/O APIC 2, you would do:

hw.pci13.0.INTA.irq=16
hw.pci15.0.INTA.irq=17
hw.pci5.0.INTA.irq=19

To use one of the other I/O APICs you will need to examine the dmesg to find 
the first IRQ for the I/O APIC (boot verbose might help) and add that to 16, 
17, 19, etc. to come up with the appropriate IRQ number.

In this case after looking at your dmesg, the BIOS uses the same GSI layout 
for the I/O APICs that FreeBSD's MP Table code uses, so you can just use the 
IRQs from the ACPI kernel.  From your dmesg ACPI is using the settings above 
(i.e. all 3 devices are using I/O APIC 2).

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200803111003.58445.jhb>