Subject: kern/5580: Xircom PCMCIA Modem card fails to initialize
To: None <gnats-bugs@gnats.netbsd.org>
From: None <jdoorn@nc.com>
List: netbsd-bugs
Date: 06/12/1998 09:26:30
>Number:         5580
>Category:       kern
>Synopsis:       Xircom PCMCIA Modem card fails to initialize
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    kern-bug-people (Kernel Bug People)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Jun 12 09:35:00 1998
>Last-Modified:
>Originator:     Jan van Doorn
>Organization:
Network Computer, Inc
>Release:        1.3.1
>Environment:
System: NetBSD ding.nc.com 1.3.1 NetBSD 1.3.1 (DING) #0: Fri May 22 21:07:28 PDT 1998 root@ding.nc.com:/usr/src1.3.1/sys/arch/i386/compile/DING i386

    Copyright (c) 1996, 1997 The NetBSD Foundation, Inc.  All rights reserved.
    Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California.  All rights reserved.
    
    NetBSD 1.3.1 (DING) #0: Fri May 22 16:52:09 PDT 1998
        root@ding.nc.com:/usr/src1.3.1/sys/arch/i386/compile/DING
    cpu0: family 5 model 2 step 5
    cpu0: Intel Pentium (P54C) (586-class)
    real mem  = 41742336
    avail mem = 38936576
    using 535 buffers containing 2191360 bytes of memory
    mainbus0 (root)
    isa0 at mainbus0
    com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
    lpt0 at isa0 port 0x378-0x37b irq 7
    wdc0 at isa0 port 0x1f0-0x1f7 irq 14
    atapibus0 at wdc0
    wd0 at wdc0 drive 0: <TOSHIBA MK1926FCV>
    wd0: 777MB, 1579 cyl, 16 head, 63 sec, 512 bytes/sec
    wd0: using 16-sector 16-bit pio transfers, lba addressing
    sb0 at isa0 port 0x220-0x237 irq 7 drq 1: dsp v3.01
    audio0 at sb0
    npx0 at isa0 port 0xf0-0xff: using exception 16
    pc0 at isa0 port 0x60-0x6f irq 1: color
    pms0 at pc0 irq 12
    pc0: console
    fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
    fd0 at fdc0 drive 0: 1.44MB, 80 cyl, 2 head, 18 sec
    pcic0 at isa0 port 0x3e0-0x3e1 iomem 0xd0000-0xd3fff: using irq 3
    pcic0: controller 0 (Intel 82365SL Revision 1) has sockets A and B
    pcmcia0 at pcic0 controller 0 socket 0
    pcmcia1 at pcic0 controller 0 socket 1
    pcic1 at isa0 port 0x3e2-0x3e3 iomem 0xd4000-0xd7fff: using irq 5
    pcic1: controller 0 (Intel 82365SL Revision 1) has sockets A and B
    pcmcia2 at pcic1 controller 0 socket 0
    pcmcia3 at pcic1 controller 0 socket 1
    pcmcia3: CIS version 2.0 or 2.01
    pcmcia3: CIS info: 3Com Corporation, 3C589D, TP/BNC LAN Card Ver. 2a, 000002
    pcmcia3: Manufacturer code 0x101, product 0x589
    pcmcia3: function 0: network adapter, ccr addr 10000 mask 3
    pcmcia3: function 0, config table entry 1: I/O card; irq mask ffff; iomask 4, iospace 0-f; rdybsy_active wp_active bvd_active io8 io16 irqlevel
    pcmcia3: function 0, config table entry 3: I/O card; irq mask ffff; iomask 4, iospace 0-f; rdybsy_active wp_active bvd_active io8 io16 irqlevel
    ep0 at pcmcia3 function 0 port 0x330-0x33f: 3Com 3C589 Ethernet
    ep0: MAC address 00:60:97:8e:fd:45
    ep0: 8KB byte-wide FIFO, 5:3 Rx:Tx split, utp/aui/bnc (default utp)
    apm0 at mainbus0: Power Management spec V1.1
    apm0: battery life expectancy: 100%
    apm0: A/C state: on
    apm0: battery charge state: high charging
    apm0: estimated 3h 25m
    biomask 4040 netmask 4040 ttymask 50ea
    boot device: wd0
    root on wd0a dumps on wd0b
    root file system type: ffs


>Description:
Insert Xircom CreditCard Modem 33.6, CM33 PCMCIA card, I get:

    pcmcia3: card irq 9
    pcmcia1: CIS version 2.1
    pcmcia1: CIS info: Xircom, CreditCard Modem 33.6, CM33, 1.00
    pcmcia1: Manufacturer code 0x105, product 0x100d
    pcmcia1: function 0: serial port, ccr addr 800 mask 3
    pcmcia1: function 0, config table entry 1: I/O card; irq mask 8ebc; iomask a, iospace 3f8-3ff; memspace 0-1fff0; powerdown
    pcmcia1: function 0, config table entry 2: I/O card; irq mask 8ebc; iomask a, iospace 2f8-2ff; memspace 0-1fff0; io8 io16 powerdown
    pcmcia1: function 0, config table entry 35: I/O card; irq mask 8ebc; iomask a, iospace 3e8-3ef; memspace 0-1fff0; io8 io16 powerdown
    pcmcia1: function 0, config table entry 36: I/O card; irq mask 8ebc; iomask a, iospace 2e8-2ef; memspace 0-1fff0; io8 io16 powerdown
    com1 at pcmcia1 function 0: can't allocate i/o space

I figured the "com1 at pcmcia1 function 0: can't allocate i/o space" 
didn't look good, but tried a tip com2 anyway, and I get a panic:

   vm_fault(0xf08adf00,0,1,0) -> 1
   kernel: page fault trap, code=0
   Stopped at     _comopen+0x33:   movl   0x70(%esi)%eax
   

>How-To-Repeat:
Insert Card.
>Fix:

in sys/dev/pcmcia/com_pcmcia.c, function com_pcmcia_attach, 
#if 0 the following statement:

                if (cfe->num_memspace != 0)
                        continue;

This is the diff:

ding.nc.com> pwd                                
/usr/src1.3.1/sys/dev/pcmcia
ding.nc.com> diff com_pcmcia.c com_pcmcia.c.org 
156d155
< #if 0
159c158
< #endif
---
>      
ding.nc.com> 

Thanks to Chris Demetriou who helped me find & fix it. 
>Audit-Trail:
>Unformatted: