[PATCH] Fix weird PCI bus numbers with pci_linkX

John Baldwin jhb at freebsd.org
Wed Nov 23 05:59:38 PST 2005


On Wednesday 23 November 2005 05:21 am, Mathieu Prevot wrote:
> Le 22 nov. 05 à 23:19, John Baldwin a écrit :
> > On Tuesday 22 November 2005 05:03 pm, Mathieu Prevot wrote:
> >> Le 22 nov. 05 à 21:43, John Baldwin a écrit :
> >>> On Tuesday 22 November 2005 03:03 pm, Mathieu Prevot wrote:
> >>>> Weird addresses disappeared. But I don't why I have invalid IRQ ...
> >>>>
> >>>> ...
> >>>> ACPI APIC Table: <VIAK8  AWRDACPI>
> >>>> ioapic0 <Version 0.3> irqs 0-23 on motherboard
> >>>> ...
> >>>> pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
> >>>> pci_link9: BIOS IRQ 11 for 0.16.INTA is invalid
> >>>> pci_link9: BIOS IRQ 5 for 0.16.INTB is invalid
> >>>> pci_link9: BIOS IRQ 10 for 0.16.INTC is invalid
> >>>> pci_link10: BIOS IRQ 10 for 0.17.INTC is invalid
> >>>> pci_link11: BIOS IRQ 11 for 0.18.INTA is invalid
> >>>> ...
> >>>> uhci0: <VIA 83C572 USB controller> port 0xd400-0xd41f irq 21 at
> >>>> device 16.0 on pci0
> >>>
> >>> You are using an I/O APIC.  In your ASL, your pci link resources
> >>> get different
> >>> IRQs when using APIC than when not using APIC.  The BIOS never uses
> >>> APIC
> >>> mode, so it programs IRQs for each PCI device according to the non-
> >>> APIC (aka
> >>> PIC) mode.  The messages above mean that we found out during the
> >>> boot that
> >>> the interrupt for 0.16.INTA (PCI bus 0, device (slot) 16, pin A#)
> >>> is routed
> >>> via the pci_link9 device, and that the BIOS had set the IRQ for
> >>> that device
> >>> to 11.  However, when we switch over to APIC mode, then the list of
> >>> valid
> >>> IRQs for that link device are something like 20, 21, 22, and 23.
> >>> The IRQ the
> >>> BIOS used (11) isn't in that list, so we ignore it and pick an IRQ
> >>> out of the
> >>> list (21 in this case).  You don't need to worry about these
> >>> messages.  I'll
> >>> see if I can't shut them up in this case (BIOS uses an ISA IRQ but
> >>> this link
> >>> device only has non-ISA IRQs).
> >>>
> >>> In fact, I've just whipped up a patch to shut these warnings up.
> >>> It's
> >>> attached.
> >>
> >> Thanks very much for the explanation and the patch.
> >
> > Ah, you got it.  Did you test it and did it work ok?
>
> It works (it was attached). In fact there is no warning anymore (dmesg).
> Maybe there is something more clean ;-) to do (changing "invalid" to
> something less alarmistic ?) for the repository ...

Nah, this patch is what's going in the repository.  It turns off the BIOS IRQ 
stuff in the case where it isn't useful such as yours which should avoid 
spurious warnings.  In the case of interrupts routed via ISA IRQs it is still 
a valid message that points to at the least a BIOS bug.

-- 
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-acpi mailing list