Re: unable to map IRQ for my pccard

"M. Warner Losh" <[email protected]>
Newsgroups gmane.os.freebsd.devel.mobile
Message-ID <[email protected]>
In message: <[email protected]>
            John Baldwin <[email protected]> writes:
: On Tuesday 10 July 2007 10:56:34 pm M. Warner Losh wrote:
: > In message: <[email protected]>
: >             Zhang Weiwu <[email protected]> writes:
: > : On Tue, 2007-07-10 at 15:18 -0400, John Baldwin wrote:
: > : > On Sunday 08 July 2007 08:54:40 pm Zhang Weiwu wrote:
: > : > > >  > cbb0: <TI1250 PCI-CardBus Bridge> mem 0x20822000-0x20822fff at
: > : > > >  > device 2.0 on pci0 pccard0: <16-bit PCCard bus> on cbb0
: > : > > >  > cbb1: <TI1250 PCI-CardBus Bridge> mem 0x20821000-0x20821fff at
: > : > > >  > device 2.1 on pci0 pccard1: <16-bit PCCard bus> on cbb1
: > : > > >  > $PIR: ROUTE_INTERRUPT failed.
: > : > > >  > cbb: Unable to map IRQ...
: > : > > >  > device_attach: cbb1 attach returned 12
: > : > 
: > : > We tried to set the IRQ for your device and the BIOS choked.  Can you 
: get the 
: > : > output from /usr/src/tools/tools/pirtool for your machine?
: > : 
: > : 
: > : Thanks! Here is it:
: > : 
: > : PCI Interrupt Routing Table at 0x000FB270
: > : -----------------------------------------
: > : 0x00: Signature:          $PIR
: > : 0x04: Version:            1.0
: > : 0x06: Size:               96 bytes (4 entries)
: > : 0x08: Device:             0:6:0
: > : 0x0a: PCI Exclusive IRQs: 0x00000400
: > : 0x0c: Compatible with:    0x00000000 unknown chipset
: > : 0x10: Miniport Data:      0x00000000
: > : 0x1f: Checksum:           0x4D
: > : 
: > : Entry 0: Device 0:6:0 Slot 0 (on-board)
: > :         INTA: 60h routable irqs: 3 4 5 6 7 9 10 11 12 14 15
: > :         INTB: 00h (not connected)
: > :         INTC: 00h (not connected)
: > :         INTD: 63h routable irqs: 3 4 5 6 7 9 10 11 12 14 15
: > : Entry 1: Device 0:2:0 Slot 0 (on-board)
: > :         INTA: 60h routable irqs: 3 4 5 6 7 9 10 11 12 14 15
: > :         INTB: 61h routable irqs: 3 4 5 6 7 9 10 11 12 14 15
: > :         INTC: 00h (not connected)
: > :         INTD: 00h (not connected)
: > : Entry 2: Device 0:3:0 Slot 0 (on-board)
: > :         INTA: 60h routable irqs: 3 4 5 6 7 9 10 11 12 14 15
: > :         INTB: 00h (not connected)
: > :         INTC: 00h (not connected)
: > :         INTD: 00h (not connected)
: > : Entry 3: Device 0:7:0 Slot 0 (on-board)
: > :         INTA: 60h routable irqs: 3 4 5 6 7 9 10 11 12 14 15
: > :         INTB: 61h routable irqs: 3 4 5 6 7 9 10 11 12 14 15
: > :         INTC: 00h (not connected)
: > :         INTD: 00h (not connected)
: > 
: > consider:
: > 
: > : cbb0: <TI1250 PCI-CardBus Bridge> mem 0x20822000-0x20822fff at device 2.0 
: on pci0
: > : pccard0: <16-bit PCCard bus> on cbb0
: > : cbb1: <TI1250 PCI-CardBus Bridge> mem 0x20821000-0x20821fff at device 2.1 
: on pci0
: > : pccard1: <16-bit PCCard bus> on cbb1
: > : $PIR: ROUTE_INTERRUPT failed.
: > : cbb: Unable to map IRQ...
: > : Entry 1: Device 0:2:0 Slot 0 (on-board)
: > :         INTA: 60h routable irqs: 3 4 5 6 7 9 10 11 12 14 15
: > :         INTB: 61h routable irqs: 3 4 5 6 7 9 10 11 12 14 15
: > 
: > I think we're trying to rotue wire 0x60 twice.  The second try seems
: > to be failing.
: 
: No, we only route things once.  Look at /sys/i386/pci/pci_pir.c.  It keeps 
: track of which IRQ a link is routed to, and we only use the BIOS call if it 
: didn't look like the BIOS had already routed it, and we haven't routed it 
: before.  I think we are actually trying to route 0x61 btw, not 0x60 since 
: it's device 2.1 (and thus probably INTB) that is keeling over.

Then there's another issue.  All the CardBus bridges use INTA when
they have multiple functions, with very very few exceptions...

pciconf -r pci0:2:0 0:0xff

will confirm it.  Now, if I can just find my TI1250 datasheets...

Warner
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.