unable to map IRQ for my pccard

Zhang Weiwu zhangweiwu at realss.com
Mon Jul 9 00:59:49 UTC 2007


于 Mon, 9 Jul 2007 02:38:16 +1000 (EST)
Ian Smith <smithi at nimnet.asn.au> 写道:

> On Sat, 7 Jul 2007, Zhang Weiwu wrote:
> 
>  > My notebook has two 16-bit PCMCIA slots, the card in the second
>  > slot always doesn't work, it was until after a week I start to
>  > notice dmesg showed useful information:
> 
> Sorry, but it's not clear whether the card stopped working (but it
> used to?) or the slot has stopped working (but used to?)  When did
> behaviour change - after upgrading FreeBSD version, hardware, or what?
> 
> To rule out hardware failure, can you boot it with the first card (or
> any other card) only in the second slot, with nothing in the first
> slot?
> 
> Have you checked that both cards work, in another machine, or other
> OS?
> 
> Also, we try! to remember what you've said elsewhere but if you can
> post `uname -a` and give the precise model numbers of the old
> Thinkpad (380 something?) and both cards mentioned in your messages,
> it might help.

Thank you for the nice prompt. I should have organized the message in
more detail way. I have checked both card working by insert them into
slot one, once a time. There is a possibility of hardware failure
because 
     I. if I insert any card in slot II, even if the first slot is
        empty, the card always doesn't work
    II. if both slots were empty, I still get $PIR: ROUTE_INTERRUPT
        failed

[zhangweiwu at quasimodo ~]$ uname -a
FreeBSD quasimodo.realss.com 6.1-RELEASE FreeBSD 6.1-RELEASE #0: Thu
Jul  5 12:26:43 CST 2007
root at quasimodo.realss.com:/usr/obj/usr/src/sys/QUASIMODO  i386

The 380XD Thinkpad is my personal console mostly for remote controlling
other servers, for reading Chinese output of applications I also
installed X plus Chinese fonts. It's not polite to post messages many
times around one (probably boring) topic, especially it's not vital I
make this laptop work. I do have two other modern laptops and it's
mostly the problem itself made me interested to find a solution rather
than any important necessity. It's not bad to through a weekend into
something that made me interested, especially through the experience
someone recommended some enlightening paper to read (which I still have
more than half don't understand). Thanks for trying to help even if I
wasn't clear abut what problem I am having.

> 
>  > 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
> 
> Was that with something, or nothing, in one or both slots?  If with
> something, do you still see that if booting with nothing in the
> slots? 

This was when both cards (both good cards) were inserted on both slots,
here is dmesg when no card is inserted:

pci0: <PCI bus> on pcib0
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
pci0: <display, VGA> at device 3.0 (no driver attached)
isab0: <PCI-ISA bridge> at device 6.0 on pci0



> 
> That is, is the error with the card or the slot itself?  Both happen.
> 
> Does the card that doesn't work in the second slot, work in the first?
> 
>  > [snip]
>  > ep0: <3Com Corporation 3C589D> at port 0x100-0x10f irq 11 function
>  > 0 config 1 on pccard0
>  > ep0: Ethernet address: 00:60:97:92:c0:27
>  > 
>  > I have checked my IRQ usage (by using dmesg | grep irq) and found
>  > IRQ 3, 8, 9, 10 are not used.
>  > 
>  > atkbd0     irq 1
>  > ...        irq 2
>  > [empty]    irq 3   <-- I disabled COM1 in kernel because
>  > hardware broken.
> 
> Yes, but have you / can you also disable it in the BIOS? (with
> PS2.EXE?)

That was a mistake, now I think the hardware probably isn't broken, it's
not usable probably because it is already disabled in BIOS. When I run
PS2.EXE it told me COM1 is disabled, but since I don't know this utility
before, so since it's disabled my previous conclusion of hardware broken
isn't realiable

> 
>  > sio4       irq 4   <-- infrared ray
>  > pcm0       irq 5
>  > fdc0       irq 6
>  > ppc0       irq 7
>  > [empty]    irq 8   <-- not used in dmesg but some articles I
>  > read says it's for Real time clock
> 
> Sure is; see 'vmstat -i'
> 
>  > [empty]    irq 9
>  > [empty]    irq 10
>  > uhci0      irq 11
>  > ep0        irq 11  <-- this is the device on first PCMCIA slot
>  > psm0       irq 12
>  > ata4       irq ?   <-- this is the (unusable) device on second
>  > PCMCIA slot
> 
> Hmmm, ata4?  Since your pccard bridges are to PCI not ISA bus, if I've
> understood anything of Warner's paper recently mentioned, there should
> be no problem both of them sharing irq 11?  Hopefully someone will
> tell me if I'm way off base; I've had trouble following
> pccard/cardbus too.

Now as I posted this IRQ problem happen even if there is no card, then
probably it's not directly related to if it is ata4 or now:)

> 
> On my older laptop, a '99 Compaq Armada 1500c:
> 
> cbb0: <TI1225 PCI-CardBus Bridge> mem 0x7fffe000-0x7fffefff irq 11 at
> device 17.0 on pci0 cardbus0: <CardBus bus> on cbb0
> pccard0: <16-bit PCCard bus> on cbb0
> cbb1: <TI1225 PCI-CardBus Bridge> mem 0x7ffff000-0x7fffffff irq 11 at
> device 17.1 on pci0 cardbus1: <CardBus bus> on cbb1
> pccard1: <16-bit PCCard bus> on cbb1
>  [..]
> dc0: <Netgear FA511 10/100BaseTX> port 0x1100-0x11ff mem
> 0x88000000-0x880003ff irq 11 at device 0.0 on cardbus1 xe0: <Xircom
> CreditCard Ethernet+Modem 33.6> at port 0x2f8-0x2ff irq 11 function 0
> config 2 on pccard0
> 
> That's one old pccard and one newer cardbus card, both on irq 11, both
> happily.  (I'm really hoping it stays happy on 6.2 - currently 5.5-S)
> 
>  > [empty] irq 13  <-- I don't think I have coprocessor on my thinkpad
> 
> All x86 processors past the 486-SX have copro built in, and need this.
> 
>  > [empty] irq 14  <-- not shown in dmesg but I do have atapci0 that
>  > might use it
> 
> It does.   Again, vmstat -i
> 
>  > [empty] irq 15  <-- probably not used because I don't have atapci1
>  > 
>  > I am not sure how to solve "ROUTE_INTERRUPT failed." problem, but
>  > since I have enough free IRQ for the devices, I guess I can simply
>  > turn off IRQ sharing or simply assign an unused IRQ number to the
>  > second device.
> 
> In a later message you point out that PS2.EXE won't let you assign
> more irqs anyway.  Unless your BIOS is not up to date (?), that tends
> to indicate that your laptop's hardware simply doesn't allow that
> setting, rememembering that PS2.EXE handles dozens of Thinkpad
> models/variants.
> 
> I may be wrong, but I think you might be chasing this rabbit down the
> wrong hole; if it's a hardware failure - looking possible - trying to
> assign another irq to cbb1, or cards on cbb1, isn't likely to help.

Yes I have completely overlooked hardware issue. I am not very
experienced in hardware and gets too easy to have "hooked up" on
studying some OS behavior and completely forgotten to check hardware.

> 
>  > The free IRQ number I filled in /etc/pccard.conf seems to be
>  > completely ignored (you can set to anything but it will always use
>  > irq 11), this is strange. As manual suggests this is the right
>  > place to configure IRQ for pccards.
> 
> Some pccard* documentation seems rather out of date, and frankly very
> sparse, but developers naturally want to work on the newer stuff.  It
> could be that eBay'ing yourself a nice secondhand (say) T23 or later
> might save you lots of time and worry, at fairly low cost?

Thanks for caring! Actually I have other modern notebooks and I am just
interested this issue and in seeing how PCCARDs works. By "Some pccard*
documentation seems rather out of date", are you confirming
the /etc/pccard.conf is no longer used?



More information about the freebsd-mobile mailing list