On Thursday 16 June 2005 5:49 am, Aric D. Blumer wrote:
> On Wed Jun 15 23:05:52 2005 David Brownell wrote:
> > 
> > Did you follow up on my (offline) suggestions to bring up pxa27x first
> > by using the "CDC Subset" rather than full CDC Ethernet?  Did that work?
> 
> Sorry, I missed that one in the midst of my struggle with test 14. so I
> just tried it.  It works!

OK, that's a good start!  It's easy to have bugs in the controller
driver that will show up with stress tests in that mode; but if you
don't find any such bugs, then you can work on other issues.  :)


> I also noticed that the version of g_ether I 
> have has the pxa2xx_udc configured permanently for the subset.  (And
> pxa2xx_udc was already configured for the full set.)

Right, PXA 25x chips can only implement the subset.  They are not
physically capable of implementing CDC Ethernet, or any other kind
of peripheral that involves altsettings.  (Including anything that
uses isochronous endpoints and conforms to specs...)

And g_ether is configured to expect pxa27x_udc to support the CDC
Ethernet class because it can and should ... there are a fair number
of USB hosts that can talk to that.  Fewer understand the subset;
we'd rather interop with all hosts, not just Linux ones.  (But of
course, MSFT is the stumbling block, ergo the RNDIS support.)


> > Given the quirks of the PXA 27x hardware (it wants its fingers deeply
> > inside the driver's configuration policy, at the level of knowing what
> > endpoints are active in each config and altsetting), you'd be better
> > off with simple configurations -- no altsettings! -- at first, then
> > handling the more featureful bits later.
> 
> > You're going to need a layer inside that 27x driver that other UDC
> > drivers don't need.  And you'll need it most with g_ether, since it
> > actually uses multiple configurations (with RNDIS enabled, as it
> > should be) and altsettings (with CDC Ethernet enabled, ditto).  Don't
> > start at the hard end; start simple:  CDC subset first, then add the
> > RNDIS configuration, then finally full CDC Ethernet support.
> 
> Hmmm. I don't see anything in the Ethernet Emulation Model spec about
> alternate settings.  Could you give me a pointer to it?  I'll need to
> study it more before I can implement it.

The "Ethernet Emulation Model" spec from February 2005 is pretty
much brand new, few hosts or devices support it yet.  If you want
to implement EEM for Linux, feel free; just please let me know in
advance!  It'd need support in both "g_ether" and also "usbnet";
neither should be tricky unless you want to make the host make use
of the "don't poll for a while" feature.  It might be a useful
option for hosts now using the "CDC Subset", if there's a good
upgrade/migration path.


But that's not what I was talking about.  See the CDC spec (also
from usb.org) on which it builds, section 3.8.1 where it talks
about the networking models like "CDC Ethernet":

  The Data Class interface of a networking device shall have a minimum
  of two interface settings. The first setting (the default interface
  setting) includes no endpoints and therefore no networking traffic is
  exchanged whenever the default interface setting is selected. One or
  more additional interface settings are used for normal operation, and
  therefore each includes a pair of endpoints (one IN, and one OUT) to
  exchange network traffic. Select an alternate interface setting to
  initialize the network aspects of the device and to enable the exchange
  of network traffic.

CDC Ethernet has been supported on Linux for several years now, and it
works just fine.  You don't need to code anything to support it ... except
to make sure that the PXA 27x UDC controller driver supports the configs
and altsettings used by "g_ether".

- Dave



-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to