Finally this works.......!!!!
Thank you  for your help.
I made it work with the David Brownell patch plus changin product and vendor ID.
Do not mark the RNDIS option in the kernel.
I act as if i were a zaurus :
//#define    SIMPLE_VENDOR_NUM    0x049f
//#define    SIMPLE_PRODUCT_NUM    0x505a
#define    SIMPLE_VENDOR_NUM    0x04DD
#define    SIMPLE_PRODUCT_NUM    0x8007
In the window side use Zaurus Drivers driver and everything works properly. I used (i think) the C860 ones.
At last we have PXA27x connecting with linux and windows host .
Here is the final patch i used.

Cheers

Juan Luis Lopez Blazquez

VIVA GAJATES!!!!!!
VIVA GAJATES!!!!!!
VIVA GAJATES!!!!!!


David Brownell escribió:

On Sunday 14 January 2007 2:01 am, Grahame Jordan wrote:
Hi,

I tried using RNDIS on PXA255 but found it unreliable. Ended up using a commercial driver from MCCI, similar to the Zaurus driver. I believe the gadget/ether.c patch is coming out on 2.6.20. I am using a patched 2.6.18.

The patch to gadget/ether.c will merge (I think) in 2.6.21 but is
in Greg's patch archive now, and is in linux-usb-devel archives; I
posted the patch on 11-Dec, subject "[patch 2.6.19-git] ethernet
gadget interop with MCCI Windows driver".  No reason it couldn't
be in 2.6.20 other than timing, IMO.


I know that MCCI are working with another customer on PXA270.

I'd expect that adding that patch to the gadget/ether.c driver
on a PXA 270 should let folk use MCCI's MS-Windows driver too.
(That's more or less what the Zaurus PDAs ship with.)

PXA 270 USB peripheral support has been pretty painful, and I'm
hoping someone minimizes the ongoing pain by submitting a patch
for upstrea kernels that just makes it look to drivers like a
PXA 255, rather than trying to take advantage of Intel's dubious
hardware features to manage configurations and altsettings.

- Dave



Let me know if you need details.

Cheers

Grahame Jordan

Juan Luis López wrote:
Hi all
I am new in the list.
I want to connect a propietary board using pxa270 with machines running windows.
I have no problems connecting with linux hosts over usb.
My kernel is 2.6.19, and use the file pxa27x_udc.c provided by Handhelds slightly modified.
I would know if anyone achieved to connect th pxa27x with windows machines.
I dont mind if it is with RNDIS or by a windows driver that support this kernel.

Any help will be useful.
Thank you very much in advance.
________________________
________________________
Juan Luis Lopez Blazquez
[EMAIL PROTECTED]


75,85c75,77
<  * link-level setup only requires activating the configuration.  Only the
<  * endpoint descriptors, and product/vendor IDs, are relevant; no control
<  * operations are available.  Linux supports it, but other host operating
<  * systems may not.  (This is a subset of CDC Ethernet.)
<  *
<  * It turns out that if you add a few descriptors to that "CDC Subset",
<  * then some host side drivers from MCCI can treat it as one submode of
<  * a proprietary scheme called "SAFE".  So we do that, making it easier
<  * to use those MS-Windows drivers.  Those added descriptors make it look
<  * like a CDC MDLM device, but they don't change device behavior at all.
<  * (MCCI Engineering report 950198 "SAFE Networking Functions".)
---
>  * link-level setup only requires activating the configuration.
>  * Linux supports it, but other host operating systems may not.
>  * (This is a subset of CDC Ethernet.)
177,181c169,170
< //#define     SIMPLE_VENDOR_NUM       0x049f
< //#define     SIMPLE_PRODUCT_NUM      0x505a
< //Act as if we were a zaurus
< #define       SIMPLE_VENDOR_NUM       0x04DD
< #define       SIMPLE_PRODUCT_NUM      0x8007
---
> #define       SIMPLE_VENDOR_NUM       0x049f
> #define       SIMPLE_PRODUCT_NUM      0x505a
270,273d258
< #ifdef CONFIG_USB_GADGET_S3C2410
< #define DEV_CONFIG_CDC
< #endif
< 
302a288,290
> #ifdef CONFIG_USB_GADGET_S3C2410
> #define DEV_CONFIG_CDC
> #endif
506,510d493
<  *
<  * To interop with some MCCI MS-Windows drivers (MSFT's RNDIS drivers
<  * are buggy) we add some more descriptors to advertise as a CDC-MDLM
<  * variant (not strictly conformant) called "SAFE".  That borrows a
<  * little from CDC Ethernet, and a little from CDC MDLM.
543a527,528
> #if defined(DEV_CONFIG_CDC) || defined(CONFIG_USB_ETH_RNDIS)
> 
552,553d536
< #if defined(DEV_CONFIG_CDC) || defined(CONFIG_USB_ETH_RNDIS)
< 
586,623c569
< #ifndef       DEV_CONFIG_CDC
< 
< /* "SAFE" loosely follows CDC WMC MDLM, violating the spec in various
<  * ways:  data endpoints live in the control interface, there's no data
<  * interface, and it's not used to talk to a cell phone radio.
<  */
< 
< static const struct usb_cdc_mdlm_desc mdlm_desc = {
<       .bLength =              sizeof mdlm_desc,
<       .bDescriptorType =      USB_DT_CS_INTERFACE,
<       .bDescriptorSubType =   USB_CDC_MDLM_TYPE,
< 
<       .bcdVersion =           __constant_cpu_to_le16(0x0100),
<       /*.bGUID = {
<               0xd8, 0xdd, 0x1a, 0x5a, 0xda, 0xa4, 0x11, 0xd6,
<               0x87, 0x7e, 0x00, 0x00, 0x86, 0x3b, 0x02, 0x30,
<       },*/
<       .bGUID = {
<               0x5d, 0x34, 0xcf, 0x66, 0x11, 0x18, 0x11, 0xd6,
<               0xa2, 0x1a, 0x00, 0x01, 0x02, 0xca, 0x9a, 0x7f,
<       },
< };
< 
< /* since "usb_cdc_mdlm_detail_desc" is a variable length structure, we
<  * can't realy use its struct.  All we do here is say that we're using
<  * the submode of "SAFE" which directly matches the CDC Subset.
<  */
< static const u8 mdlm_detail_desc[] = {
<       6,
<       USB_DT_CS_INTERFACE,
<       USB_CDC_MDLM_DETAIL_TYPE,
< 
<       0,      /* "SAFE" */
<       0,      /* network control capabilities (none) */
<       0,      /* network data capabilities ("raw" encapsulation) */
< };
< 
< #endif
---
> #ifdef        DEV_CONFIG_CDC
637a584
> #endif
730,732d676
<  *
<  * To assist host side drivers, we fancy it up a bit, and add descriptors
<  * so some host side drivers will understand it as a "SAFE" variant.
743,744c687,688
<       .bInterfaceClass =      USB_CLASS_COMM,
<       .bInterfaceSubClass =   USB_CDC_SUBCLASS_MDLM,
---
>       .bInterfaceClass =      USB_CLASS_VENDOR_SPEC,
>       .bInterfaceSubClass =   0,
792d735
<       /* behavior is "CDC Subset"; extra descriptors say "SAFE" */
794,800c737,739
<       fs_eth_function[2] = (struct usb_descriptor_header *) &header_desc;
<       fs_eth_function[3] = (struct usb_descriptor_header *) &mdlm_desc;
<       fs_eth_function[4] = (struct usb_descriptor_header *) &mdlm_detail_desc;
<       fs_eth_function[5] = (struct usb_descriptor_header *) &ether_desc;
<       fs_eth_function[6] = (struct usb_descriptor_header *) &fs_source_desc;
<       fs_eth_function[7] = (struct usb_descriptor_header *) &fs_sink_desc;
<       fs_eth_function[8] = NULL;
---
>       fs_eth_function[2] = (struct usb_descriptor_header *) &fs_source_desc;
>       fs_eth_function[3] = (struct usb_descriptor_header *) &fs_sink_desc;
>       fs_eth_function[4] = NULL;
894d832
<       /* behavior is "CDC Subset"; extra descriptors say "SAFE" */
896,902c834,836
<       hs_eth_function[2] = (struct usb_descriptor_header *) &header_desc;
<       hs_eth_function[3] = (struct usb_descriptor_header *) &mdlm_desc;
<       hs_eth_function[4] = (struct usb_descriptor_header *) &mdlm_detail_desc;
<       hs_eth_function[5] = (struct usb_descriptor_header *) &ether_desc;
<       hs_eth_function[6] = (struct usb_descriptor_header *) &hs_source_desc;
<       hs_eth_function[7] = (struct usb_descriptor_header *) &hs_sink_desc;
<       hs_eth_function[8] = NULL;
---
>       hs_eth_function[2] = (struct usb_descriptor_header *) &fs_source_desc;
>       hs_eth_function[3] = (struct usb_descriptor_header *) &fs_sink_desc;
>       hs_eth_function[4] = NULL;
948a883
> #ifdef        DEV_CONFIG_CDC
950a886
> #endif
958d893
<       { STRING_ETHADDR,       ethaddr, },
960a896
>       { STRING_ETHADDR,       ethaddr, },
1055c991
<       dev->in = ep_desc(gadget, &hs_source_desc, &fs_source_desc);
---
>       dev->in = ep_desc (dev->gadget, &hs_source_desc, &fs_source_desc);
1058c994
<       dev->out = ep_desc(gadget, &hs_sink_desc, &fs_sink_desc);
---
>       dev->out = ep_desc (dev->gadget, &hs_sink_desc, &fs_sink_desc);
2347,2348c2283
<        * drivers aren't widely available.  (That may be improved by
<        * supporting one submode of the "SAFE" variant of MDLM.)
---
>        * drivers aren't widely available.
2350a2286
>               device_desc.bDeviceClass = USB_CLASS_VENDOR_SPEC;
2477,2480d2412
< 
<               /* use functions to set these up, in case we're built to work
<                * with multiple controllers and must override CDC Ethernet.
<                */
2544,2546c2476
<        * ends up in a persistent config database.  It's not clear if
<        * the host sides for the SAFE thing cares -- its original BLAN
<        * thing didn't, Sharp didn't assign those addresses to Zaurii.
---
>        * ends up in a persistent config database.
2551,2557c2481,2491
<       if (get_ether_addr(host_addr, dev->host_mac))
<               dev_warn(&gadget->dev,
<                       "using random %s ethernet address\n", "host");
<       snprintf (ethaddr, sizeof ethaddr, "%02X%02X%02X%02X%02X%02X",
<               dev->host_mac [0], dev->host_mac [1],
<               dev->host_mac [2], dev->host_mac [3],
<               dev->host_mac [4], dev->host_mac [5]);
---
>       if (cdc || rndis) {
>               if (get_ether_addr(host_addr, dev->host_mac))
>                       dev_warn(&gadget->dev,
>                               "using random %s ethernet address\n", "host");
> #ifdef        DEV_CONFIG_CDC
>               snprintf (ethaddr, sizeof ethaddr, "%02X%02X%02X%02X%02X%02X",
>                       dev->host_mac [0], dev->host_mac [1],
>                       dev->host_mac [2], dev->host_mac [3],
>                       dev->host_mac [4], dev->host_mac [5]);
> #endif
>       }
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
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