CardBus, PCI: Strange I/O ports assigned to CardBus bridge

From: Felipe Alfaro Solana (falfaro@borak.es)
Date: Tue Jul 30 2002 - 10:45:08 EST


Hello,

I have bought a new 3Com 3CCFE575CT CardBus LAN adapter (3Com Megahertx,
using the 3c59x driver) and I have been having problems with it on my
Packard Bell (NEC) Chrom@ laptop: Every time I plug the card, the PCMCIA
subsystem complains that some resources were not allocated.

After some kernel hacking, I have found that, for no apparent reason, my
Linux kernel 2.4.18-3 (RH7.3) is assigning the following resources to my
CardBus bridge:

00:0c.0 CardBus bridge: Texas Instruments PCI4450 PC card Cardbus
Controller
        Subsystem: NEC Corporation: Unknown device 80b6
        Flags: bus master, medium devsel, latency 168, IRQ 10
        Memory at 10000000 (32-bit, non-prefetchable) [size=4K]
        Bus: primary=00, secondary=02, subordinate=05, sec-latency=176
        Memory window 0: 10c00000-10fff000 (prefetchable)
        Memory window 1: 11000000-113ff000
        I/O window 0: 000002c0-000002c3
        I/O window 1: 000002c0-000002c3
        16-bit legacy interface ports at 0001

00:0c.1 CardBus bridge: Texas Instruments PCI4450 PC card Cardbus
Controller
        Subsystem: NEC Corporation: Unknown device 80b6
        Flags: bus master, medium devsel, latency 168, IRQ 5
        Memory at 10001000 (32-bit, non-prefetchable) [size=4K]
        Bus: primary=00, secondary=06, subordinate=09, sec-latency=176
        Memory window 0: 10400000-107ff000 (prefetchable)
        Memory window 1: 10800000-10bff000
        I/O window 0: 000002c0-000002c3
        I/O window 1: 000002c0-000002c3
        16-bit legacy interface ports at 0001

Whenever I plug in the 3Com card, the PCI driver complains that it
cannot allocate I/O ports 0x1000->0x2c3 for resource 0. When I plug in
the 3Com card, Linux tries to find usable, free I/O ports for the device
with a minimum base I/O port of 0x1000 (don't know where this number
comes from, but it's very familiar to me and I have seen it on the past
on my machine), but however, the CardBus bridge does only allow for
0x2c0->0x2c3. Thus the kernel complains when trying to allocate ports
0x1000->0x2c3 (the end port is lower than the starting port).

If I plug the card on Windows XP, the card is recognised and works OK
using the following resources:

        I/O ports 0xfc00-0xfcff
        IRQ 5
        Memory 0xffdfcf80-0xffdfcfff
        Memory 0xffdfcf00-0xffdfcfff

Curiously, I've been using an old Xircom CreditCard 10/100 PCMCIA card
with no trouble at all, and sometime ago, I also used a 3Com 3CXFEM656C
CardBus LAN+Modem. The only thing I had to do is just enable inclusion
of I/O ports 0x1000-0x1100 in /etc/pcmcia/config.opts, but now this
doesn't seem to work.

Does anyone have an idea of what's happening here? Why does the card
work on Windows XP, but not on linux? Why only 4 I/O ports
(0x2c0->0x2c3) are allocated for my CardBus bridge?

Help!

Sincerely,

   Felipe Alfaro Solana
   Newby Kernel hacker

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Jul 30 2002 - 14:00:37 EST