[PATCH] Reworked $PIR support for non-ACPI non-APIC PCI interrupt
routing
John Baldwin
jhb at FreeBSD.org
Tue Jan 20 14:34:21 PST 2004
On i386, when we don't use ACPI and don't have an APIC, we use the $PIR table
from the BIOS to route interrupts. I have rewritten the $PIR support to be
more link-centric somewhat similar to the ACPI PCI link code. Part of this
has included a tweak to the 'virgin' interrupt algorithm. It will now first
try to use IRQ's that the BIOS has already used for other PCI devices when
trying to pick a virgin IRQ. So, if you had PCI devices routed to IRQ 3 or 4
before, this should fix that. It also allows you to use hints to override
the IRQ for a given link like so:
hint.pci.link.0x6a.irq=10
Would set the IRQ to 10 for link 0x6a. If you want to route an interrupt for
a given PCI device, look up that device in the $PIR output in the dmesg, find
the associated link device and set a tunable for that link. Patch is at
http://www.FreeBSD.org/~jhb/patches/pir.patch
--
John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve" = http://www.FreeBSD.org
More information about the freebsd-current
mailing list