lkml.org 
[lkml]   [2001]   [Apr]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
> Observe that the PCI DWORD (long) register at DWORD offset 15 consists
> of 4 byte-wide registers (from the PCI specification), Max_lat,
> Min_Gnt, Interrupt pin, and interrupt line. Nothing has to fit into
> 4 bits, you have 8 bits. I haven't looked at the Linux code, but if
> it provides only 4 bits for the IRQ, it's broken.

I don't have the PCI specification, but at least some network cards
ignore all writes to that register. It's only an interface between the
bios and os. (pnic-82c168: "Interrupt Line. This 8-bit register will be
written by the POST software. The value of this register indicates which
input of the system interrupt controller PNIC's interrupt pin is
connected to."). The AC97 documentation says that only the low 4 bits
are writable. Perhaps it reconfigures itself if
someone writes to that register? Linux never writes to the low byte of
DWORD offset 15.

Greg, what's the value of 'dev->irq'? Usually drivers should never read
offset 3C, instead they should use 'dev->irq'.

arch/i386/kernel/mpparse should figure out where the interrupts arrive.
If that doesn't work: the MP table is documented at
http://developer.intel.com/design/pentium/datashts/24201606.pdf
and one of the debugging options in arch/i386/kernel/mpparse.c will
print all interrupt routing entries during boot up.

The routing entries are (bus, function and pin) -> io apic pin, and the
values for bus, function and pin are known.

--
Manfred






-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:52    [W:0.024 / U:0.340 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site