IRQ-Routing for 5.3-BETA

John Baldwin jhb at FreeBSD.org
Fri Sep 24 12:14:41 PDT 2004


On Thursday 23 September 2004 04:35 pm, Matthias Schuendehuette wrote:
> Hello,
>
> I have serious problems with the new IRQ-outing code since Aug 11, 16:00
> UTC.
>
> For some reasons I don't understand, the new code uses IRQ10 instead of
> IRQ9 on my system, which breaks my internet connection thru my ISA
> ISDN-Card.
>
> The old code report the following IRQs for PCI-Devices:
>
> \_SB_.PCI0.LNKA irq   9: [  1  3  4  5  6  7 10 11 12 14 15]
>  low,level,sharable 0.1.0
> \_SB_.PCI0.LNKB irq  11: [  1  3  4  5  6  7 10 11 12 14 15]
>  low,level,sharable 0.1.1
> \_SB_.PCI0.LNKC irq  12: [  1  3  4  5  6  7 10 11 12 14 15]
>  low,level,sharable 0.1.2
> \_SB_.PCI0.LNKD irq  11: [  1  3  4  5  6  7 10 11 12 14 15]
>  low,level,sharable 0.1.3
>
> which leeds later on to:
>
> pcib0: matched entry for 0.1.INTA (src \_SB_.PCI0.LNKA)
> pcib0: slot 1 INTA is routed to irq 9
> pcib1: slot 0 INTA is routed to irq 9
> found-> vendor=0x10de, dev=0x0110, revid=0xa1
> bus=1, slot=0, func=0
> class=03-00-00, hdrtype=0x00, mfdev=0
> cmdreg=0x0007, statreg=0x02b0, cachelnsz=0 (dwords)
> lattimer=0x20 (960 ns), mingnt=0x05 (1250 ns), maxlat=0x01 (250 ns)
> intpin=a, irq=9
>
>
>
> The new code instead reports:
>
> pcib0: matched entry for 0.1.INTA (src \_SB_.PCI0.LNKA)
> pcib0: possible interrupts:  1  3  4  5  6  7 10 11 12 14 15
> ACPI PCI link arbitrated settings:
> \_SB_.PCI0.LNKA (references 8, priority 175018):
> interrupts:    10     5    11     7     6     4     3    12    15    14\
>  1
> penalty: 1280  1330  2720  6280  6280  6280  6280  6360 51280\
>  51280101280
> atpic: Programming IRQ10 as level/low     <Oh, NO!!!>
> pcib0: slot 1 INTA routed to irq 10 via \_SB_.PCI0.LNKA
> pcib1: slot 0 INTA is routed to irq 10
> found-> vendor=0x10de, dev=0x0110, revid=0xa1
> bus=1, slot=0, func=0
> class=03-00-00, hdrtype=0x00, mfdev=0
> cmdreg=0x0007, statreg=0x02b0, cachelnsz=0 (dwords)
> lattimer=0x20 (960 ns), mingnt=0x05 (1250 ns), maxlat=0x01 (250 ns)
> intpin=a, irq=10
>
>
> How come???!!! Why gets this PCI-bridge a different IRQ? IRQ10 is not
> available for PCI devices, it is marked as "Legacy ISA" in the BIOS
> setup and this was respected all the time. I tried "PnP-OS YES/NO" in
> the BIOS, but this didn't change anything.
>
> I don't believe that the BIOS is buggy because this board (EPoX 8KTA2)
> had worked with the FreeBSD ACPI code for some time now without any
> problems.

Umm the list of IRQ numbers is the list of valid IRQs.  Your BIOS is _ineded_ 
buggy.  Note that for the IRQ in question it says this:


\_SB_.PCI0.LNKA irq   9: [  1  3  4  5  6  7 10 11 12 14 15]
low,level,sharable 0.1.0

I.e., I'm using IRQ 9, but 9 is not in the list of valid IRQs which includes 
1, 3, 4, 5, 6, 7, 10, 11, 12, 14, and 15.  Thus, the kernel believes what 
your broken BIOS says and throws out IRQ 9 and tries to use IRQ 10 instead, 
which your BIOS claims is open for use even though you've told it its not.  
One thing you can try is a patch Nate has to always treat ACPI's interrupt 
(IRQ 9 usually) as a valid interrupt for the link device to use.

-- 
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