Re: de4x5 hangs aic7xxx, tulip misses port on multiport card

Brian Ristuccia (brianr@osiris.978.org)
Wed, 21 Apr 1999 09:33:07 -0400


On Wed, Apr 21, 1999 at 03:18:42PM +0200, BROWN Nick wrote:
> >IO-APIC gives an additional IRQ's in the >15 range for PCI devices to
> >prevent conflicts with ISA devices.
>
> Yeah, I could see you had an IRQ expander thingy; I just wondered what would
> happen if you tried to get everything into nice, safe, old-fashioned, (and
> preferably non-shared) below-15 IRQs.

You can't. There's not enough low IRQ's free.

There are only four physical IRQ wires for the PCI slots and the onboard PCI
devices. No matter what, the 4 port ethernet card (which uses 4 IRQ's) will
have to share every single IRQ with at least one other card.

>
> >You can only reliably share IRQ's if every device involved is PCI.
>
> For sure; but both my DE435 and the SCSI card _are_ PCI. If I build the
> DE435 driver into the kernel, instead of the Tulip, there's no problem. If
> I run them both as modules, no problem, and if I build Tulip and the NCR
> into the kernel, no problem, because the NCR loads first. Only problem is
> Tulip/kernel with NCR/module. If I jiggle the ISA PnP cards around so that
> the DE435/SCSI don't share an IRQ, it's fine, but I don't have a way to tell
> PCI to make the DE435 share with, say, the video controller.
>

Someone said the NCR driver uses SA_INTERRUPT instead of SA_SHIRQ. If you
read the de4x5 docs, it turns out the de4x5 driver has a workaround to
reallocate that interrupt as a SA_SHIRQ on the behalf of an already loded
SA_INTERRUPT based driver. It seems this workaround is flawed, since it
breaks if it's twiddling the IRQ handler for an IRQ that's already shared by
two devices. Thus, it hoses my SCSI card.

I have no idea why this workaround occurs anyway, since my aic7xxx _should_
be allocating a SA_SHIRQ unless there's a flaw at around line 7912 that's
causing it to allocate a SA_INTERRUPT for additional cards (if this is even
possible)

If you want the same effect for the tulip driver, find SA_INTERRUPT in the
source and change it to SA_SHIRQ and see if this works. I have no idea why
this is not the default (aside from the relatively tiny performance penalty
it incurs)

-- 
Brian Ristuccia
brianr@osiris.978.org
bristucc@baynetworks.com
bristucc@cs.uml.edu

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