Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 Feb 1996 10:13:19 -0700 (MST)
From:      Terry Lambert <terry@lambert.org>
To:        luigi@labinfo.iet.unipi.it (Luigi Rizzo)
Cc:        se@zpr.uni-koeln.de, hackers@FreeBSD.org
Subject:   Re: scanpci.c and pci-related stuff
Message-ID:  <199602091713.KAA10691@phaeton.artisoft.com>
In-Reply-To: <199602091530.QAA02610@labinfo.iet.unipi.it> from "Luigi Rizzo" at Feb 9, 96 04:30:12 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> > Please describe the situation where the same
> > IRQ was used for two PCI devices.
> 
> I have two identical PC-net PCI boards, plugged in adjacent slots.
> On one particular motherboard they are both configured with IRQ10, on a
> similar motherboard one gets IRQ10, the other IRQ11

Apparantly, the motherboards are not that similar...

> Also, at times I'd like to free some specific IRQs. As an example: here
> I have a system with the following devices:
> 
> 	sio0,1,2 (irq 3, 4, 5)
> 	lpt0 (irq7)
> 	ed0 (irq10, PCI)
> 	meteor (irq9,PCI)
> 	vga (irq11, PCI)
> 
> and I'd like to put in a scanner (can use irq3,5,10) and an SB16.
> I must free irq10, and possibly irq9 as well.

Make sure the ISA portion of your motherboard is PlugNPlay capable
and that *all* your ISA cards are PlugNPlay cards, and you won't
have this problem.


In general, there are three interrupts, A, B, and C, assignable for
PCI.

What ISA interupts these get set to depends on the PCI bridge chipset
configuration, which depends on hardware or software switches (very
board dependent).

The problem you are seeing is typical of internal-ISA-bridged-to-PCI
motherboards.  An internal-PCI-bridged-to-ISA (for instance, using
the chipset DEC uses in the Alpha 21064 evaluation board or the
one that Motorolla uses in the Ultra 603/604 PPC evaluation board
instead of an Intrel chipset would fix the problem.  Use the Apple
chipset, and you will get 6 PCI slots without PCI-PCI bridging).

In other words, the problem is inherent to you having ISA slots.


I'd guess that the board where multiple PCI's are getting assigned the
same interrupt is a "Genuine Intel" motherboard, probably a Zappa.

The PCI motherboards from the Intel OEM products division assign the
same interrupt to all PCI slots.  It is up to the interrupt handling
in your OS software to realize that this is allowable (but never
desirable, Intel, if you are listening) under the spec to require the
OS to demux PCI interrupts.

In general, there are Intel motherboards that "Do The Right Thing", but
Intel typically does not sell them (as Rod Grimes about this one).  I
recommend against Intel OEM Products Division boards.


In your example where the PCI interrupt is "reassigned", what is happening
is that the PCI configuration is defaulted in the driver, then read
from the PCI -- that is, it is a driver reconfiguration, not a PCI
reconfiguration.  What you thought was happening is not what actually
happened.


Without a drive specific to the bridge chip set (and without the
capability built into the chipset itself), it's not possible to
reassign interrupts once they have been assigend by the conflict
resoloution code on the PCI motherboard.

The typical conflict case is with PCI-PCI conflicts for pre-2.0 spec
motherboards and/or cards (the best example from "the FreeBSD chronicles"
is the BusLogic PCI board, which used multiple memory windows but
an Intel Zappa with Saturn II ISA->PCI bridge couldn't resolve the
conflicts without a BIOS upgrade to PCI 2.0 -- and the hardware couldn't
handle the upgrade).  This type of confligt is *impossible* to resolve
without a BIOS and/or hardware patch.

Your problem sounds more like a configuration/interrupt code problem;
I don't know the current status of PCI interrupt multiplexing in the
FreeBSD kernel (you'd have to have -current to find out yourself),
but I suspect that you want to change jumpers on the motherboard or
modify a CMOS setup for the PCI on the motherboard to fix your problem.

Stephan might have more information on this for specific hardware...


					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?199602091713.KAA10691>