Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 5 Apr 1997 12:33:01 -0700 (MST)
From:      Terry Lambert <terry@lambert.org>
To:        vanmaren@fast.cs.utah.edu (Kevin Van Maren)
Cc:        nishio@caleche.kecl.ntt.co.jp, vanmaren@fast.cs.utah.edu, freebsd-smp@freebsd.org
Subject:   Re: APIC_IO problem on Tyan S1668
Message-ID:  <199704051933.MAA23338@phaeton.artisoft.com>
In-Reply-To: <199704051628.JAA17141@fast.cs.utah.edu> from "Kevin Van Maren" at Apr 5, 97 09:28:36 am

next in thread | previous in thread | raw e-mail | index | archive | help
> >I read, somewhere from AltaVista's output, that S1668
> >only supports bus mastering on 4 PCI slots out of 5 (I'm not sure
> >whether this is true or not: Tyan's manual says nothing about this). 
> >
> >Is this related to the problem?
> 
> Tyan tech support WON'T be any help.  We did have 5 PCI cards in
> a S1662 (non-ATX version) that worked fine under FreeBSD 2.1.5
> but I never tried SMP with 5 cards.  (This is why I knew about 
> the SMP table entries and the 5 slot stuff).  I believe they
> were all bus-mastering, as we used an ISA video board.

This is probably the problem (the 5th slot, not the bus mastering).

It has to do with PCI interrupt sharing.

The PCI INT's are normally daisy-chained, and slots 4 and 5 (if 5
is present) are expected to share:

       slot 1       slot 2       slot 3       slot 4       slot 5
        ,-.          ,-.          ,-.          ,-.          ,-.
INT A --|A|-. ,------|B|-. ,------|C|-. ,------|D|----------|D|
        | |  X       | |  X       | |  X       | |          | |
INT B --| |-' \ ,----| |-' \ ,----| |-' \ ,----| |----------| |
        | |    X     | |    X     | |    X     | |          | |
INT C --| |---' \ ,--| |---' \ ,--| |---' \ ,--| |----------| |
        | |      X   | |      X   | |      X   | |          | |
INT D --| |-----' `--| |-----' `--| |-----' `--| |----------| |
        `-'          `-'          `-'          `-'          `-'

By default, each PCI card will use the first interrupt connector,
which will be A, B, C, or D, depending on the slot (note: old PCI
hardware will *NOT* chain... it expects the boards to be jumper
configurable, or all boards to share INT A).


This problem is especially bad if you install an Adaptec 3940, which
takes two interrupt lines, one per channel.  It "shares" interrupts
with whatever the adjacent card is; if you put it in:

       slot 1       slot 2       slot 3       slot 4       slot 5
        ,-.          ,-.          ,-.          ,-.          ,-.
        |A|          |B|          |C|          |D|          |D|
        | |          | |          | |          | |          | |
        |B|          |C|          |D|          |A|          |A|

Typically, this was "worked around" in early UP FreeBSD PCI support
by placing the 3940 in slot 1 or slot 2, and a non-interrupting card
(like a video board) in slot 2 or slot 3 (respectively).

If the machine has 5 slots (3 "standard" and 2 "shared"), the worst
possible place to put the 3940 is slot 3, 4, or 5, since it will
conflict 3 slots instead of 2.

The slot 5 in a "shared" PCI slot design will *always* require that
PCI interrupt sharing be supported by the host OS.


Probably you are running into a problem with SMP FreeBSD not being
able to properly share PCI interrupts.


					Regards,
					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.



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