PERFORCE change 36551 for review

John Baldwin jhb at FreeBSD.org
Thu Aug 21 10:12:46 PDT 2003


On 21-Aug-2003 Marcel Moolenaar wrote:
> On Thu, Aug 21, 2003 at 10:40:47AM -0400, John Baldwin wrote:
>> 
>> > 
>> > @@ -266,9 +266,18 @@
>> >               struct sapic *sa = ia64_sapics[i];
>> >               if (irq < sa->sa_base || irq > sa->sa_limit)
>> >                       continue;
>> > +             /*
>> > +              * KLUDGE: Not all interrupts higher or equal to 16 are
>> > +              * active low and level sensitive. We don't know yet how
>> > +              * to check for this, so we hardcode the 2 cases we have
>> > +              * wrong explicitly. This kludge is specific to the HP
>> > +              * rx2600...
>> > +              */
>> 
>> Have you tried looking at any interrupt overrides in the MADT?
>> That is where the BIOS should tell you which interrupts above 15
>> have ISA-like parameters.
> 
> I think you said the same 8 or 9 months ago. I think I answered
> something like: there's no interrupt override, because those
> relate to overriding the legacy interrupts (0-15). It's still
> true. There's no interrupt override, because we're not overriding
> interrupts.

I'd still be interested to see what the MADT output from acpidump
is on one of these machines.

> I also said that I thought it would be related to the fact that
> the UARTs are on the acpi bus, to which you replied that ACPI
> is not a bus. I didn't disagree, but it's generally much easier
> to treat acpi as a bus in these cases. I think this too is still
> true. The interrupt trigger and polarity is non-standard because
> the UARTs are described by acpi. They are not pci devices. Yet
> we assume that any non-laegacy irq (ie any larger than 15) must
> be a pci interrupt.

What I plan to have is an ISA bus that has a identify routine
that uses ACPI to enumerate ISA devices defined in ACPI.
 
> Unfortunately, I couldn't find anywhere in the ACPI spec that
> states that devices described by ACPI have edge sensitivity and
> are active high. It may be a mistake on HP's part. Or maybe we
> should not reprogram the iosapics and assume the firmware has
> done that...

PCI devices are described in ACPI, so I don't think we can make
assumptions about ACPI devices having interrupt properties.  How
are you getting the interrupt number for the UART devices anyway?
Does ACPI specify an IRQ of 66 or whatever it is?

If the UART devices raise an ISA interrupt, then by my reading,
the ACPI resource should specify the ISA interrupt number (0-15),
and the MADT should include a source override that maps that
ISA interrupt number to a global interrupt number of 66 or
whatever (which maps to a SAPIC:intpin).  You could also just
ask someone in HP how the heck you are supposed to know how to
do this and see what they say. :)  arun@ might be another good
person to ask.

-- 

John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/


More information about the p4-projects mailing list