lkml.org 
[lkml]   [2004]   [Nov]   [1]   [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
  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
--
-------------------------------------------------------
David "Dave" Jez Brno, CZ, Europe
E-mail: dave.jez@seznam.cz
PGP key: finger xjezda00@eva.fit.vutbr.cz
---------=[ ~EOF ]=------------------------------------
--- linux-2.6.9/arch/i386/pci/irq.c.orig Mon Oct 18 23:55:29 2004
+++ linux-2.6.9/arch/i386/pci/irq.c Mon Nov 1 21:17:01 2004
@@ -589,6 +589,7 @@
{
switch(device)
{
+ case PCI_DEVICE_ID_AL_M1523:
case PCI_DEVICE_ID_AL_M1533:
case PCI_DEVICE_ID_AL_M1563:
printk("PCI: Using ALI IRQ Router\n");
@@ -668,8 +669,20 @@

pirq_router_dev = pci_find_slot(rt->rtr_bus, rt->rtr_devfn);
if (!pirq_router_dev) {
- DBG("PCI: Interrupt router not found at %02x:%02x\n", rt->rtr_bus, rt->rtr_devfn);
- return;
+ DBG("PCI: Interrupt router not found at %02x:%02x. Aieee, do you have crippled chipset?\n",
+ rt->rtr_bus, rt->rtr_devfn);
+ pirq_router_dev = (pci_find_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1523, NULL));
+ if (!pirq_router_dev)
+ pirq_router_dev = (pci_find_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, NULL));
+ if (!pirq_router_dev)
+ pirq_router_dev = (pci_find_device(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371FB_0, NULL));
+ if (!pirq_router_dev) {
+ DBG("PCI: ...hmmm sorry...\n");
+ return;
+ } else {
+ DBG("PCI: OK, found %04x:%04x. Let's playing a game!\n",
+ pirq_router_dev->vendor, pirq_router_dev->device);
+ }
}

for( h = pirq_routers; h->vendor; h++) {
\
 
 \ /
  Last update: 2005-03-22 14:07    [W:0.074 / U:1.080 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site