lkml.org 
[lkml]   [2004]   [Nov]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: PCI & IRQ problems on TI Extensa 600CD
David Jez wrote:
> Hi Jim,
>
>
>>Need to compile a new kernel for this thing w/o tridentfb - doesn't work
>>right on my system for some reason.
>>
>><dmesg - haven't compiled a 2.6.9 for it yet>
>>
>>PCI: PCI BIOS revision 2.10 entry at 0xfd930, last bus=6
>>PCI: Using configuration type 1
>>Linux Kernel Card Services
>> options: [pci] [cardbus] [pm]
>>PCI: Probing PCI hardware
>>PCI: Probing PCI hardware (bus 00)
>
> IRQ router is missing.
>
>
>>PCI: No IRQ known for interrupt pin A of device 0000:00:02.0. Please try
>>using pci=biosirq.
>>PCI: No IRQ known for interrupt pin B of device 0000:00:02.1. Please try
>>using pci=biosirq.
>>
>>00:00.0 Class 0600: 8086:1235 (rev 02)
>>00:01.0 Class 0601: 8086:122e (rev 02)
>>00:02.0 Class 0607: 104c:ac12 (rev 04)
>>00:02.1 Class 0607: 104c:ac12 (rev 04)
>>00:03.0 Class 0300: 1023:9660 (rev d3)
>>00:05.0 Class 0400: 1014:0057
>>
>>No PCI interrupt routing table was found.
>>
>>Interrupt router at 00:01.0: Intel 82371FB PIIX PCI-to-ISA bridge
>> PIRQ1 (link 0x60): irq 11
>> PIRQ2 (link 0x61): irq 11
>> PIRQ3 (link 0x62): unrouted
>> PIRQ4 (link 0x63): unrouted
>> Serial IRQ: [disabled] [quiet] [frame=17] [pulse=4]
>> Level mask: 0x0800 [11]
>
> It looks that you have same problem and kernel doesn't find IRQ
> router. So try attached patch (for 2.6.9 and added your bridge) if it helps.
> I think that it may help (look at dump_pirq results).
> You can try turn on DEBUG (in file arch/i386/pci/pci.h) and see debug
> messages on screen.
>
> Dave
>
>

That patch comes too late in the PCI init sequence for my machine.
pirq_find_router() (where your patch goes) depends on pirq_table being set up by
pirq_find_routing_table(). When I put in the debug statement in the attached
patch, I got the "PCI: No Interrupt Routing Table found" message. Since
pirq_table wasn't set up, pirq_find_router() is never called. Let me look at this
some more (got vacation this week, so I can finally devote some time to this.)

Jim
--- linux-2.6.9/arch/i386/pci/irq.c~~ 2004-11-02 07:13:15.562669774 -0500
+++ linux-2.6.9/arch/i386/pci/irq.c 2004-11-02 09:01:05.911581344 -0500
@@ -80,6 +80,7 @@
return rt;
}
}
+ DBG("PCI: No Interrupt Routing Table found\n");
return NULL;
}
\
 
 \ /
  Last update: 2005-03-22 14:07    [W:0.052 / U:0.284 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site