Subject: problems with LASAT PCMCIA modem card and Dell Latitude CPi laptop
To: None <current-users@netbsd.org>
From: Jarle Greipsland <jarle@runit.sintef.no>
List: current-users
Date: 03/29/1999 23:49:55
Hi,

I've recently encountered a problem with NetBSD-current on my Dell
Latitude/CPi laptop computer.  When dialing up my employer's terminal
server I use a "LASAT COMMUNICATIONS A/S, LASAT CREDIT 336" pcmcia
modem.  Until earlier this month I ran a NetBSD-current kernel from
approximately Dec 98, and the modem worked ok.  But then I decided to
try out -current again (sources as of Mar 23rd), and then the modem no
longer worked.

>From the dmesg output of the two versions I gathered the following
output, first from the December 98 kernel:

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
pcmcia0: CIS version PCMCIA 2.0 or 2.1
pcmcia0: CIS info: LASAT COMMUNICATIONS A/S, LASAT CREDIT 336
pcmcia0: Manufacturer code 0x134, product 0x3611
pcmcia0: function 0: serial port, ccr addr 3f0 mask 7
pcmcia0: function 0, config table entry 8: I/O card; irq mask 86bc; iomask 3, iospace 3f8-3ff; audio
pcmcia0: function 0, config table entry 24: I/O card; irq mask 86bc; iomask 3, iospace 2f8-2ff; io8 audio
pcmcia0: function 0, config table entry 40: I/O card; irq mask 86bc; iomask 3, iospace 3e8-3ef; io8 audio
pcmcia0: function 0, config table entry 56: I/O card; irq mask 86bc; iomask 3, iospace 2e8-2ef; io8 audio
com3 at pcmcia0 function 0 port 0x2f8-0x2ff: serial device
com3: ns16550a, working fifo

and then from the March 99 kernel:

pcmcia1 at pcic0 controller 0 socket 1
pcmcia1: CIS version PCMCIA 2.0 or 2.1
pcmcia1: CIS info: LASAT COMMUNICATIONS A/S, LASAT CREDIT 336
pcmcia1: Manufacturer code 0x134, product 0x3611
pcmcia1: function 0: serial port, ccr addr 3f0 mask 7
pcmcia1: function 0, config table entry 8: I/O card; irq mask 86bc; iomask 3, iospace 3f8-3ff; audio
pcmcia1: function 0, config table entry 24: I/O card; irq mask 86bc; iomask 3, iospace 2f8-2ff; io8 audio
pcmcia1: function 0, config table entry 40: I/O card; irq mask 86bc; iomask 3, iospace 3e8-3ef; io8 audio
pcmcia1: function 0, config table entry 56: I/O card; irq mask 86bc; iomask 3, iospace 2e8-2ef; io8 audio
com3 at pcmcia1 function 0sc_io_window=0x0, addr=0x340, size=0x8
 port 0x340-0x347: serial device

With the March 99 kernel I then get the error messages

com3: com_iflush timeout 0d
com3: com_iflush timeout 0d
com3: com_iflush timeout 0d
com3: com_iflush timeout 0d

when ttyflags are being run from /etc/rc.  Any subsequent attempts
(tip, pppd etc.) to access the serial port then hang.

The only thing different (apart the modem having been moved from
pcmcia slot 0 to 1) is that the assigned/mapped I/O port range is no
longer any of the ones listed in the function 0 config table entries
returned by the card.  If I make the following change to com_pcmcia.c

diff -u0 -r1.1 com_pcmcia.c
--- com_pcmcia.c        1999/03/28 11:23:32     1.1
+++ com_pcmcia.c        1999/03/29 21:35:16
@@ -242 +242 @@
-                       if ((cfe->iomask != 3) && (cfe->iospace[0].start != 0)) {
+                       if ((cfe->iospace[0].start != 0)) {

then the card again get mapped at one of the I/O slots returned by the
card, and everything works normally again.  (This is definitely not
the appropriate fix, but it was the first mod I made where the modem
again worked).

I don't know much about the whole PCMCIA stuff, so someone more
knowledgeable should probably tell us what is the problem here.

o Is my modem card somehow at fault?  Does it return entries it should
  not, or is it being more strict than what it tells the system?
  Should it have some sort of `quirks' entry?

o Is the PCMCIA probing and mapping mechanisms for serial ports in
  NetBSD-current broken in some way?  Are other cards just more forgiving?

Any thoughts on this?
						-jarle
-- 
"WorldCom to Acquire Itself; Expects Revenues to Double Overnight"
                                -- http://www.denounce.com/