Re: new interrupts not working for me

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Tue, 23 Dec 2003 15:34:50 -0000
On 22-Dec-2003 Peter Schultz wrote:
> John Baldwin wrote:
>> On 22-Dec-2003 Peter Schultz wrote:
>> 
>>>John Baldwin wrote:
>>>
>>>>On 05-Nov-2003 Peter Schultz wrote:
>>>>
>>>>
>>>>>I have a Tyan S1832DL w/dual pii 350s and it's not able to boot.  Seems 
>>>>>to be having trouble with my adaptec scsi controller, I get a whole 
>>>>>bunch of output like this hand transcribed bit, it comes after "waiting 
>>>>>15 seconds for scsi devices to settle":
>>>>>
>>>>>ahc0 timeout SCB already complete interrupts may not be functioning
>>>>>Infinite interrupt loop INTSTAT=0(probe3:ahc0:0:3:0): SCB 0x6 - timed out
>>>>>
>>>>>Anyone else seeing this?  There are probably 100+ related lines of 
>>>>>output, I'll have to configure serial debugging if you need to see it.
>>>>
>>>>
>>>>The dmesg output excluding all the ahc0 errors would help figure out
>>>>why your interrupts aren't working.  However, I just committed a patch
>>>>that might fix your problem.
>>>>
>>>
>>>Here is the output I was able to capture:
>> 
>> 
>> Disable ACPI for now.  It looks like you have a buggy BIOS.
>> Can you put your ASL up at a URL somewhere?
>> 
> http://bis.midco.net/pmes/tyan_s1832dl.asl

Oh... my... goodness.  Go beat your BIOS writer UP!
NOW!

Basically, PCI interrupts are supposed to be routed differently
depending on whether or not we are using the old PIC or the newer
APIC mode.  We tell your BIOS that by executing the _PIC method
specifiying 0 for PIC and 1 for APIC.  Your BIOS does have that:

        Name (APIC, 0x00)
        Method (_PIC, 1, NotSerialized)
        {
            Store (Arg0, APIC)
        }

However, it ignores it.  Instead, it always uses the APIC for
Windows NT and uses the PIC for everything else:

            Method (_PRT, 0, NotSerialized)
            {
                ...
                If (MCTH (\_OS, "Microsoft Windows NT"))
                {
                    Return (PIC1)
                }
                Else
                {
                    Return (PIC0)
                }
            }

Does this board work in SMP mode in, say, XP or Linux?  From
the above it seems it wouldn't. :(  It needs to be testing
the value of the APIC variable to determine which table to use,
not the OS name.  See if there's a BIOS update.  If there isn't,
go complain to your motherboard manufacturer to get it fixed.
If you want to get your BIOS working for now, the guys on the
acpi-jp_at_ list (cc'd) can help you patch your AML to fix this
brain damage and get your machine working.  This is the worst
use of _OS I have seen to date myself.

-- 

John Baldwin <jhb_at_FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/
Received on Tue Dec 23 2003 - 06:34:50 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:40 UTC