Hi, While the new lh7_udc driver performs great when plugged into a Linux host, I found that plugging into WinXP with g_ether doesn't quite work. On the gadget side I see,
usb0: full speed config #2: 100 mA, Ethernet Gadget, using RNDIS rndis_msg_parser: unknown RNDIS message 0x00430209 len -1073151486 usb0: rndis_command_complete: rndis parse error -524 On the WinXP side, I ran usbsnoop with, a) linux-2.6.14, patched lh7a40x_udc driver b) linux-2.6.16-rc4-ms28, new lh7_udc driver (I know that's changing 2 things at once, but I didn't see any major changes in the g_ether/rndis code, and I wasn't up to porting my lh7a40x_udc hacks to 2.6.16). In both configs I have, CONFIG_USB_ETH=m CONFIG_USB_ETH_RNDIS=y In both cases, rhe first 4 URB transactions were identical (except for bcdDevice == [15 02] for new driver, and [09 02] for the old one), but on the 5th URB (URB_FUNCTION_CLASS_INTERFACE) the response from lh7_udc has TransferBufferLength == 0, after which USB traffic comes to a dead stop. With lh7a40x_udc, I see TransferBufferLength == 0x18, and things roll merrily along. Log excerpts: <lh7a40x_udc> [125 ms] >>> URB 5 going down >>> -- URB_FUNCTION_CLASS_INTERFACE: TransferFlags = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK) TransferBufferLength = 00000018 TransferBuffer = 84e3c000 TransferBufferMDL = 00000000 00000000: 02 00 00 00 18 00 00 00 01 00 00 00 01 00 00 00 00000010: 00 00 00 00 00 40 00 00 UrbLink = 00000000 RequestTypeReservedBits = 00000000 Request = 00000000 Value = 00000000 Index = 00000000 [131 ms] UsbSnoop - MyInternalIOCTLCompletion(f799fdb0) : fido=00000000, Irp=850fd008, Context=850493d0, IRQL=2 [131 ms] <<< URB 5 coming back <<< -- URB_FUNCTION_CONTROL_TRANSFER: PipeHandle = 8507d700 TransferFlags = 0000000a (USBD_TRANSFER_DIRECTION_OUT, USBD_SHORT_TRANSFER_OK) TransferBufferLength = 00000018 TransferBuffer = 84e3c000 TransferBufferMDL = 86253f88 UrbLink = 00000000 SetupPacket = 00000000: 21 00 00 00 00 00 18 00 [131 ms] UsbSnoop - DispatchAny(f799e610) : IRP_MJ_INTERNAL_DEVICE_CONTROL [131 ms] UsbSnoop - MyDispatchInternalIOCTL(f799fe80) : fdo=850b3030, Irp=85bf52e8, IRQL=0 </lh7a40x_udc> <lh7_udc> [118 ms] >>> URB 5 going down >>> -- URB_FUNCTION_CLASS_INTERFACE: TransferFlags = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK) TransferBufferLength = 00000018 TransferBuffer = 85873000 TransferBufferMDL = 00000000 00000000: 02 00 00 00 18 00 00 00 01 00 00 00 01 00 00 00 00000010: 00 00 00 00 00 40 00 00 UrbLink = 00000000 RequestTypeReservedBits = 00000000 Request = 00000000 Value = 00000000 Index = 00000000 [5165 ms] UsbSnoop - MyInternalIOCTLCompletion(f7927db0) : fido=00000000, Irp=84ff9008, Context=863c88b0, IRQL=2 [5165 ms] <<< URB 5 coming back <<< -- URB_FUNCTION_CONTROL_TRANSFER: PipeHandle = 850048f8 TransferFlags = 0000000a (USBD_TRANSFER_DIRECTION_OUT, USBD_SHORT_TRANSFER_OK) TransferBufferLength = 00000000 TransferBuffer = 85873000 TransferBufferMDL = 861a12d8 UrbLink = 00000000 SetupPacket = 00000000: 21 00 00 00 00 00 18 00 [10166 ms] UsbSnoop - DispatchAny(f7926610) : IRP_MJ_PNP (IRP_MN_REMOVE_DEVICE) [10166 ms] UsbSnoop - MyDispatchPNP(f7928ee0) : IRP_MJ_PNP (IRP_MN_REMOVE_DEVICE) [10166 ms] UsbSnoop - RemoveDevice(f7928e90) : fido=8503a108 pdx=8503a1c0 [10167 ms] UsbSnoop - DriverUnload(f7928de0) : DriverObject 8619a318, IRQL=0 [10167 ms] Driver unloaded! </lh7_udc> Next I can try turning on TALK in lh7_udc.c, if that might be helpful. Full usbsnoop logs at, http://www.bluebutton.com/misc/lh7usb/ -Jamie ------------------------------------------------------- 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