Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Jan 1997 17:41:57 +0000
From:      Matt Thomas <matt@lkg.dec.com>
To:        Steve Passe <smp@csn.net>
Cc:        Keith Mitchell <kmitch@weenix.guru.org>, Kenneth Merry <ken@housing1.stucen.gatech.edu>, se@zpr.uni-koeln.de (Stefan Esser), smp@freebsd.org
Subject:   Re: Adaptec 3940UW and SMP 
Message-ID:  <199701151741.RAA27756@whydos.lkg.dec.com>
In-Reply-To: Your message of "Wed, 15 Jan 1997 13:37:11 MST." <199701152037.NAA05550@clem.systemsix.com> 

next in thread | previous in thread | raw e-mail | index | archive | help

> Hi,
> 
> I added STefan to the list as he is the PCI guru.  STefan, we are going
> after the failure of 3940s and the SMP/APIC IO kernel.
> 
> > What needs to be done is to call the PCI BIOS funtion to get the IRQ 
> > mapping.  However, we don't use the PCI BIOS.  
> > 
> > I would expect the MP table to show a mapping between a PCI slot and its
> > INT[A-D] lines to the APIC.  So while the MP table doesn't have an entry
> > for the ahc0/ahc1, it should have an entry for the PCI-PCI Bridge.  Using
> > that information, you can map the INTA line of ahc0 to INTA of ppb0 and
> > INTA of ahc0 to INTB of ppb0.
> 

> > 
> > Traditionally, ahc1 INTA gets to an ISA INT by POST processing of the BIOS
> > and the IRQ gets written into the one of the configuration registers of the
> > device.  The PCI code reads this register and uses the value; it does no
> > setup since that was done by the BIOS.
> 
> so I assumme this is done by the ahc specific BIOS.  I need a little more
> detail here, please.  you said previously that the ahc1 would use INTB. does
> the PCI INT from ahc1 go to the PCI INTA line or the INTB line?  how are the
> 4 PCI INT lines steered to the one ISA INT line?  specifically, are all 4
> PCI lines tied to the one ISA line?, or will the BIOS attach the ahc1 INTB line
> to the ISA INT, ignoring the others as it knows there are unused in this
> specific case?

The INTA line for ahc1 gets mapped by the PPB into INTB on the side closest
to the CPU.  If there was another PPB, the INTB would then get mapped again
(depending on the PPBs device number), until finally you arrive at bus 0.

The way INT lines are tied to IRQs is completely dependent on the motherboard
and the BIOS.  The only reliable way to get this information to call the
PCI BIOS and get the IRQ mapping.

No, the ahc BIOS is completely unaware of this.  This is done by the system
BIOS.

> I'm beginning to wonder if we are fighting a generic "failing" in the MP
> spec as applies to bridged PCI devices?  Is anyone successfully using a
> bridged PCI device with SMP & APIC_IO?  I know all the above can be quite
> confusing, feel free to ask questions.  A big part of the problem here
> is that the spec can be pretty vague in some areas!  I know there is alot
> I still don't grok...

I see nothing confusing.  You need to backtrack to the first PPB, find its
device number, map the device to the appropriate INT line, look up it's
mapping in the MP table, and configure it.  I was somewhat suprised to 
not see entires for INTB/C/D (are you not looking for them or are they not
present?).


-- 
Matt Thomas               Internet:   matt@3am-software.com
3am Software Foundry      WWW URL:    http://www.3am-software.com/bio/matt.html
Westford, MA              Disclaimer: I disavow all knowledge of this message





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