Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Jan 1997 21:35:11 +0100
From:      se@freebsd.org (Stefan Esser)
To:        ken@housing1.stucen.gatech.edu (Kenneth Merry)
Cc:        smp@csn.net (Steve Passe), matt@lkg.dec.com, kmitch@weenix.guru.org, smp@freebsd.org
Subject:   Re: Adaptec 3940UW and SMP
Message-ID:  <Mutt.19970117213511.se@x14.mi.uni-koeln.de>
In-Reply-To: <199701160610.BAA09539@housing1.stucen.gatech.edu>; from Kenneth Merry on Jan 16, 1997 01:10:49 -0500
References:  <199701160321.UAA07607@clem.systemsix.com> <199701160610.BAA09539@housing1.stucen.gatech.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Jan 16, ken@housing1.stucen.gatech.edu (Kenneth Merry) wrote:
> 	Well, I'm not entirely sure why the SMC card was hanging the system,
> but I do think it had a whole lot to do with the fact that ahc1 (the second
> channel on the 3940UW) was using the *same* interrupt as the SMC card.  As

Interrupt sharing must be supported for PCI cards, and it does
in the non-SMP case ...

> Arlie Davis pointed out, the 3940 cards seem to steal an interrupt from the
> next PCI slot down.  In my case, the SMC card, when it was in, was in the
> next PCI slot down from the 3940UW.  

This is one common scheme: INTB of slot 2 is connected to INTA of 
slot 1, INTC of 2 to INTB of 1 and so on ...

This distributes the interrupt lines of a multi-function card
(or a card with a PPB) over the range of interrupt lines assigned
to (upto) three neighbour cards' INTA ...

> 	Well, once I realized the 3940 was grabbing an interrupt, I tried
> what Arlie suggested, and cleared a slot next to the 3940.  I now have the
> following setup:
> 
> Slot 1: Matrox Millenium (IRQ 11)
> Slot 2: Adaptec 3940UW   (IRQ 10)
> Slot 3: Empty            (IRQ 9)
> Slot 4: SMC 10/100 card  (IRQ 15)
> Slot 5: Empty            (shares IRQ w/ slot 4)
> 
> 	Well, *now* the APIC_IO/SMP_INVLTLB kernel works.  I can boot up,
> turn on both processors, etc., no problem.  ahc1 now steals IRQ 9 from slot
> 3, but since there's nothing there, there are no conflicts.  I hard-coded
> all of these interrupts to the slots in the BIOS.

Hmmm, there shouldn't be any conflicts!
But I did not check, whether shared interrupts do really work in
the SMP case. There might be some range check preventing IRQs > 15
from being shared, for example, or other assumptions that fail ...

> 	The bad thing, though, is that with this setup, it means I won't be
> able to put anything in slot 3.  And if I put anything in slot 5, it'll
> have to be able to share an interrupt with the SMC card.

Please allow for some time (a few days) to have me check this.

> de0 <Digital 21140 Fast Ethernet> rev 18 int a irq 19 on pci0:9
> Freeing (NOT implimented) irq 12 for ISA cards.
> chip3 <DEC 21050 PCI-PCI bridge> rev 2 on pci0:11
> Freeing (NOT implimented) irq 12 for ISA cards.
> vga0 <VGA-compatible display device> rev 1 int a irq 16 on pci0:12
> Freeing (NOT implimented) irq 11 for ISA cards.
> ahc0 <Adaptec 3940 Ultra SCSI host adapter> rev 0 int a irq 17 on pci1:4
> Freeing (NOT implimented) irq 10 for ISA cards.
> ahc1 <Adaptec 3940 Ultra SCSI host adapter> rev 0 int a irq 18 on pci1:5
> Freeing (NOT implimented) irq 9 for ISA cards.

Hmmm, I seem to remember an implied 16 IRQ limit in the PCI code.
This should be easy to fix, though ...

Let me see:

Please try again, with PCI_MAX_IRQ increased to 24 (see /sys/pci/pci.c).
I don't have the time to verify, that this indeed the correct fix, but 
it may give a hint ...

Regards, STefan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Mutt.19970117213511.se>