Re: [iPAQ] USB Client/Server Drivers

From: Dirk van Hennekeler <dirk.vanhennekeler.a.t.compaq.com>
Date: Thu Sep 21 2000 - 03:21:31 EDT

The timing is quite bizzare. Only recently did I get the following
additional information from Charlie (he is reading mail sporadically).

---- start of additional USB documentation ---
There are two programs that allow the USB to be connected to a PC. The first
program is the iPAQ driver and the second program is the PC driver. The iPAQ
driver implements the USB client side while the PC driver implements the USB
host side.

The PC driver ( called usbh_h3600.c )talks to the USB via an API supplied by
the Linux maintainer (www.linux.org (note1). SEA should assume that this API
will work (note 2).

The iPAQ driver is made up of 5 files. Each file is named usbc_h3600_xxx.c
where xxx = eth,recv,send,ep0,ctl (note 1).

The iPAQ driver can be thought of as being two logical modules. The first
module is the driver part and the second module is the API part.
The driver part is implemented via file usbc_h3600_eth.c ( which so happens
to be a network driver - but it just as easily could have been a device
driver or any other driver type). This is the module I failed to finish.
The iPAQ API module comprises the following files -
usbc_h3600_send.c,usbc_h3600_recv.c,usbc_h3600_ctl.c,usbc_h3600_ep0.c. I got
this part working.

The PC driver already has an API part (supplied by the USB maintainer) but
SEA provided a driver part called usbh_h3600.c.

The existing code will send packets via the USB link and display appropriate
messages on the iPAQ screen and the PC /var/log/messages file.

The existing code will not implement a network driver sice the driver module
wasn't debugged (although it is code complete).

The procedure for building and testing the USB API's is as follows:

1. Edit the iPAQ and PC makefiles to include define TXTEST (-DTXTEST) - note
1.
2. build the iPAQ and PC drivers - to get usbc_h3600.o and usbh_h3600.o
(note 1) using the makefiles I checked into the CVS repository on oils.

simply type "make" )

3. Install the iPAQ driver (usbc_h3600.o)(note 3)
4. Install the PC driver (usbh_h3600.o)
5. On the PC issue the "ifconfig up" command - this will call the PC driver
module's "_open" entry point resulting in a 50byte (note1) packet being sent
from the PC to the iPAQ. The iPAQ will respond with a 19K (note1) packet.
The procedure will be repeated until somebody exits. Info is displayed on
the screen as packets are sent from PC to iPAQ.

Notes
1. Not sure of the exact facts but should be in my original doco ( you can
forward this and the original doco in your reply and I will check it).
2. The PC API is well documented at www.linux.org (note1)
3. You need to kill X windows (xdemo stop). I think there is a command
procedure in the info I sent you. In any case I expect you will have further
questions.

---- end of additional USB documentation ---

----- Original Message -----
From: Glenn Neufeld <neuf@netcom.com>
To: <ipaq@handhelds.org>
Sent: Thursday, September 21, 2000 5:00 PM
Subject: [iPAQ] USB Client/Server Drivers

> Here's where I'm at:
>
> Installed the 2.2.14 usb backport on my desktop pc.
> Tested it w/the iPaq - host pc sees the usb slave, but can't assign it an
> address.
>
> Got the cross-toolchain working.
> Checked out the handhelds CVS kernel.
> Compiled the kernel.
>
> Read the re-post from Dirk re: C. Flynn's notes on his usb-network kernel
> bits.
> Tried to compile the modules. The usbc_h3600_*.c modules were not in the
> usb Makefile.
> Hacked the usb makefile and some .h/.c files to get the usbc_h3600_*.c
> files to compile (except for usbc_h3600_list.c)
>
> Re-read the re-post, where I discovered that the two files mentioned are
> not in the directory:
> "usb_client.o" mentioned - to be loaded on the iPaq
> "usb_h3600.o" mentioned - to be loaded on the host pc.
>
> Almost there... <famous last words>
>
> Questions:
> Do I need to link the usbc_h3600_*.o files into a usb_client.o file, or a
> usb_h3600.o file?
> Is there other source, or is this the new source structure in progress?
> Should I stop? It seems that I only need to fix the Makefile now...
>
> I'm in need of the usb net to start assembling my iPaqLinux setup on a
> large nfs-mounted drive. I'm going to load the image into the iPaq when
> the 1Gb IBM MicroDrive comes. Drool.
>
> I'd also have a net connection and a serial console both simultaneously,
> using my newly-crimped and drilled usb/serial cradle (boy those crimps are
> small!)
>
> Any ideas about how to proceed? Maybe I just have the wrong cvs tag...
%^/
>
> -Glenn Neufeld neuf@netcom.com
>
>
>
> _______________________________________________
> iPAQ mailing list
> iPAQ@handhelds.org
> http://handhelds.org/mailman/listinfo/ipaq
>
Received on Thu Sep 21 00:21:26 2000

This archive was generated by hypermail 2.1.8 : Tue May 04 2004 - 09:43:42 EDT