Re: nozomi driver (was: Vodafone Mobile Connect HSDPA/UMTS/EDGE datacard supported?)

Matthias Apitz <[email protected]>
Newsgroups gmane.os.freebsd.devel.mobile
Message-ID <[email protected]>
El día Sunday, May 04, 2008 a las 04:37:05PM +0200, Matthias Apitz escribió:

> On card insert it says:
> 
> May  4 16:19:54 rebelion kernel: nozomi0: <Option N.V. GlobeTrotter 3G+> mem 0xc8309000-0xc83097ff irq 16 at device 0.0 on cardbus0
> May  4 16:19:54 rebelion kernel: nozomi0: [GIANT-LOCKED]
> May  4 16:19:54 rebelion kernel: nozomi0: [ITHREAD]
> May  4 16:19:55 rebelion kernel: nozomi0: ver. 3 with 2048 bytes of memory
> May  4 16:19:55 rebelion kernel: nozomi0: initialization complete
> 
> As the next step I wanted to check with some serial line tool (kermit) how the
> card answers on AT commands, but I don't see any /dev file coming up in
> user space; am I missing something? what should be the name of the
> device in user space? Thanks in advance

I have digged into this and it turned out that ttycreate() is called with
incompatible (means: incompatible to FreeBSD 7.0-REL) arguments:

*** nozomi.c	2008-05-05 08:05:54.000000000 +0200
--- nozomi.c.orig	2007-04-18 00:47:50.000000000 +0200
***************
*** 1070,1078 ****
  		tmptty->t_modem = nzmodem;
  		tmptty->t_ioctl = nzioctl;
  		tmptty->t_sc = sc;
! 		// see /usr/src/sys/kern/tty.c:
! 		device_printf(sc->dev, "ttycreate for /dev/cuaN%d\n", i);
! 		ttycreate(tmptty, TS_CALLOUT, "N%r", i);
  		sc->port[i].tty_devunit = tmptty->t_devunit;
  		sc->port[i].tty_open_count = 0;
  	}
--- 1070,1076 ----
  		tmptty->t_modem = nzmodem;
  		tmptty->t_ioctl = nzioctl;
  		tmptty->t_sc = sc;
! 		ttycreate(tmptty, NULL, 0, 0, "N%r", i);
  		sc->port[i].tty_devunit = tmptty->t_devunit;
  		sc->port[i].tty_open_count = 0;
  	}

This and the missing argument for bus_setup_intr() let me think that the
driver was not ported to FreeBSD 7.0-REL (don't know if this interface
changed from 6.x to 7.0, will have a look into some older server when
I'm at work); anyway, with the above small change th devices /dev/cuaN0,
to /dev/cuaN4 get created and /dev/cuaN0 works fine with kermit and
responses on AT commands, like for example ATI2 to read the vendor
information;

I fired up as well PPPD the sign-in to the network works well with the
following chat script:

'' +++
'' AT
OK\r at_opsys=1,2
OK\r at+CGQREQ=?
OK\r at+cpin="xxxx"
O AT+CGDCONT=1,"IP","web.vodafone.de"
OK\r ATD*99***1#
CONNECT

the LCP layer worked as well, IP comes up, got an IP addr, routing came
up fine; the things went wrong when real TCP should be send encapsulated in
PPP frames, then even the LCP echo requests come out of sync:

May  4 17:50:12 rebelion pppd[3055]: sent [LCP EchoReq id=0x1 magic=0x725825f7]
May  4 17:50:12 rebelion pppd[3055]: rcvd [LCP EchoRep id=0x1 magic=0x4a0ab1cb 0a 0b 0c 0e]
May  4 17:50:42 rebelion pppd[3055]: sent [LCP EchoReq id=0x2 magic=0x725825f7]
May  4 17:50:46 rebelion pppd[3055]: rcvd [LCP EchoRep id=0x2 magic=0x4a0ab1cb 0a 0b 0c 0e]
May  4 17:51:12 rebelion pppd[3055]: sent [LCP EchoReq id=0x3 magic=0x725825f7]
May  4 17:51:42 rebelion pppd[3055]: sent [LCP EchoReq id=0x4 magic=0x725825f7]
May  4 17:51:42 rebelion pppd[3055]: rcvd [LCP EchoRep id=0x4 magic=0x4a0ab1cb 0a 0b 0c 0e]

which let me think that data sent by PPPD is not sent out properly to
the air (to UMTS); PPPD opens the device /dev/cuaN0 and sets 230400 baud
with CRTSCTS control;

will see what I can find out by enabling the debug printf()'s

thx for your comments, Volker, if you have any idea what's wrong;

	matthias
_______________________________________________
[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.