From: David Brownell <[EMAIL PROTECTED]>
To: linux-usb-devel@lists.sourceforge.net
CC: "Ethan Du" <[EMAIL PROTECTED]>
Subject: Re: [linux-usb-devel] Questions on CDC EEM
Date: Sun, 2 Apr 2006 07:56:54 -0800
On Sunday 02 April 2006 1:05 am, Ethan Du wrote:
>
> I am currently working on CDC EEM. I would like to implement a CDC
EEM
> device. But I feel confused about CDC ECM and CDC EEM. As I see, both
are
> implemented by writing a pseudo network adapter driver for both the host
> side and device side.
I don't know what you mean by "pseudo" here, but certainly drivers for
both of them would be network adapter drivers.
By the way, for clarity: "CDC ECM" is what Linux calls "CDC Ethernet".
I said pseudo, as is described in EEM spec, The term pseudo is used
because the network adapter driver does not control a traditional Ethernet
chip but instead communicates with the USB host or device controller.
I got it.
> The only difference is ECM extended a data class
> interface. EEM doesn't. Is this the benefit of EEM? And is it more
efficient
> using less interfaces?
If you look at EEM, it's clearly a bit less demanding than ECM in terms of
hardware; it can work without altsettings. (The interrupt/status endpoint
is optional for ECM.) Which means there's more choice for peripheral
hardware.
Do you mean EEM is saving endpoints? Or could you explain the relationship
between altsettings and hardware. As I see EEM only needs endpoint 0
(in/out) + a pair of bulk endpoints. And using altsetting doesnt mean
adding endpoints.
But it's a bit more demanding in terms of software, because adds all kind
of
funky (and not especially useful or necessary) in-band link control
operations.
Those happen to be a subset of the (not-useful-or-necessary) operations
that
clutter up drivers for Microsoft's RNDIS protocol; maybe one of the hidden
goals for EEM was to make MSFT happier using a standard protocol.
In my opinion, EEM is a lot more complex than it needed to be. ECM could
have
achieved the "more choice for peripheral hardware" goal by just removing
the
altsetting requirement; then it would be pretty much the "cdc_subset" that
Linux uses to talk to hardware which can't support altsettings.
> And for the driver on host side, I checked linux-2.6.13.1, and found
it
> only support ECM, there is no codes related to EEM packets. Are there
> patches for linux to support EEM or are later version of linux support
it
> now?
No, there's no host side support yet. In fact I've not even heard of a
peripheral than needs EEM yet. To debug an EEM peripheral driver, you
may well need to write the host side too. (Just add a module on top of
the usbnet core.)
- Dave
I will try it.
A lot of thanks, Dave: )
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel