Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 6 Feb 2004 11:40:22 -0800 (PST)
From:      Nate Lawson <nate@root.org>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        current@freebsd.org
Subject:   Re: Interrupt storm on acpi0 occurred after madt.c change
Message-ID:  <20040206113919.X53518@root.org>
In-Reply-To: <200402061343.49318.jhb@FreeBSD.org>
References:  <20040205151520.E48439@root.org> <200402061343.49318.jhb@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 6 Feb 2004, John Baldwin wrote:
> On Thursday 05 February 2004 06:19 pm, Nate Lawson wrote:
> > It should work fine in Linux.  mp_config_ioapic_for_sci() in
> > arch/i386/kernel/mpparse.c has an exception for Tyans:
> >
> > /*
> >  * Although the ACPI spec says that the SCI should be level/low
> >  * don't reprogram it unless there is an explicit MADT OVR entry
> >  * instructing us to do so -- otherwise we break Tyan boards which
> >  * have the SCI wired edge/high but no MADT OVR.
> >  */
> >
> > This is for the case where there is no source override in the MADT for the
> > interrupt defined as ACPI_FADT->sci_int.
>
> The problem is that these motherboards _do_ have an MADT override entry.

Sorry, my second message corrected my assumption.  I was on the road and
didn't have a chance to look at his ASL first.

> worse, I have seen different motherboards (some Tyan, some non-Tyan) that
> both have the exact same MADT override entry that maps IRQ 9 to interrupt 20
> with active-hi polarity and level trigger.  Now, on the !Tyan motherboards,
> using those params results in an interrupt storm, so I force the polarity to
> active-lo (on these motherboards, another PCI device such as fxp0 also uses
> IRQ 20).  On the Tyan motherboards, the MADT entry is _identical_, but it
> storms if I set the polarity to low but works if it uses the bogus setting of
> active-hi (but with level trigger).  The Tyan motherboards do not seem to
> share IRQ 20 with a PCI device, but I can't tell if a PCI device uses IRQ 20
> in the MADT parser.  It's a big mess, as I have two different vendors using
> the same exact MADT entry both with a bogus polarity, and one wants hte bogus
> polarity and one wants the normal polarity (i.e. use active-lo with level
> trigger).

I think we're ok.  (See previous mail).  This board should be active-hi
(due to the "conforming" polarity) and level triggered.

-Nate



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