Date: Sat, 10 Feb 1996 01:02:54 +0100 From: se@zpr.uni-koeln.de (Stefan Esser) To: Terry Lambert <terry@lambert.org> Cc: hackers@freebsd.org Subject: Re: PCI problem Message-ID: <199602100002.AA20999@Sysiphos> In-Reply-To: Terry Lambert <terry@lambert.org> "Re: PCI problem" (Feb 9, 12:54)
next in thread | previous in thread | raw e-mail | index | archive | help
On Feb 9, 12:54, Terry Lambert wrote: } Subject: Re: PCI problem } > As you can see, the two network cards share the same int line, even } > though the kernel believes they are at int 11 and 10 respectively. } > } > Any ideas on what can be going on ? The motherboard is an Intel Zappa. } } Yeah. The kernel is wrong. The PCI bus is right. True. } The cards have the same interrupt assigned by the PCI BIOS. It is the } responsibility of the OS to understand PCI interrrupt multiplexing and } Deal With It(tm). Yes. And every good OS does :) } Very few OS's currently do this because almost all motherboard } manufacturers except the Intel OEM products division consider it } a mistake to not have an interrupt per PCI slot. No, that's wrong (sorry ...) If you have two cards in neighbour slots and one of them is either a multi-function PCI device or contains a PCI to PCI bridge, then just about every PCI motherboard will have to assign the same IRQ multiple times. This is caused by having IntA of one slot be connected to IntB of one neighbour. } You will need to specifically override one of the cards idea of the } "correct" interrupt (some PCI card hardware supports jumpering of ISA } interrupts), you will need to override the single interrupt assignment } on the motherboard (not possible on some Intel boards), or you will } need to modify the interrupt handling mechanism (if it hasn't already } been done) to support demuxxing the cards. In the last case, it is } correct for the cards to have the same interrupt. FreeBSD got code for shared PCI interrupts for one year now. And that code is known to work just fine ... The problem is that the Lance PCI cards aren't fully supported (their PCI features, that is). And they call the ISA register_intr() function, which doesn't know anything about shared interrupts ... As long as their is no /sys/pci/lnc.c with a wrapper that just reads teh configuration registers, registers a PCI interrupt handler and then calls the attach code in the ISA Lance driver, the card will be limited by ISA constraints ... Regards, STefan -- Stefan Esser, Zentrum fuer Paralleles Rechnen Tel: +49 221 4706021 Universitaet zu Koeln, Weyertal 80, 50931 Koeln FAX: +49 221 4705160 ============================================================================== http://www.zpr.uni-koeln.de/~se <se@ZPR.Uni-Koeln.DE>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199602100002.AA20999>