can someone explain...[ PCI interrupts]

Jack Vogel jfvogel at gmail.com
Tue Dec 6 15:14:00 PST 2005


On 12/6/05, Julian Elischer <julian at elischer.org> wrote:
> In short words for the likes of me,
> Can someone give a quicj roundup on PCI routing in 4.x and -current.
>
> Specifically:
>
> How much is set up by the BIOS and how much is set up by the OS (4.x and
> -current).
>
> How much of my fondly held knowledge of the old hardware PICS (where
> an interrupt corresponded to an interrupt line) is now out of date?
>
> In this world of multiple PCI to PCI bridges, how much latitude doe the
> OS have in
> deciding where an interrupt turns up?
> (in 4.x and -current)
>
> An example is my Dell PE2850 (on 4.x), in which my 4 port ethernet card
> seems to
> be assigned irqs 10,14,14,2 in that order sometimes and 16,17,17,2 at
> others.
>
> Who is making those decisions? Is it the BIOS and 4.x is just playing along?
>
> Assuming the much maligned "boot interrupt" comes in on irq2, does the OS
> have the oportunity to put my 4th port somewhere else? On 4.x it collides
> with one of my ether ports but in -current it doesn't
>
> Linux and -current on teh same box a;;ocate way different irqs, and
> they agree about it.. i.e. Linux and -current assign my 4 port card IRQs
> 18,19,19,16.
>
> Do they agree becasue something else has decided it (the bios again?) or
> becasue they
> use the same algorythm to work it out..
>
> Also, if the "boot interrupt" was previously set to 2, is that likely to
> have changed in -current?
> Am I now going to get clobbered on IRQ16?  If yes, is this something
> that teh BIOS writers
> decided, or something that the Motherboard designers decided?

The canonical method for getting this kind of information now (and at
least current Linux kernels do this unless forced not to) is via ACPI...
And indirectly that really means how the BIOS sets up its tables.

I'm still coming up to speed on the current FreeBSD kernel, but I
would hope it does the same :)

Cheers,

Jack


More information about the freebsd-current mailing list