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