Hi Juan, Great news.
On the Windows side are you using a generic Windows Driver or a Zaurus driver?? Cheers Grahame Jordan Juan Luis López wrote: > 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 *) ðer_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 *) ðer_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