--- Begin Message ---
- Subject: gadget composite IAD problem
- From: "Jeremy Greene" <jeremy@xxxxxxxxxxxxxx>
- Date: Sun, 23 Dec 2007 12:03:14 -0500
- Thread-index: AchFhbTZQ440iiStSpaj14b47ZpXNA==
- Thread-topic: gadget composite IAD problem
Hi,
I'm working on getting a composite driver working by modifying existing gadget drivers (and the underlying device driver).
As a first, and what I thought would be simple step, I modified both g_ether and g_serial in the following ways:
1) Changed the device descriptor to have class/subclass/protocol to be 0xef, 2, 1 respectively
2) Added an "interface association descriptor" to the configuration
a. In both cases, two interfaces, first one = 0
b. Made the class ID USB_CLASS_COM in both cases. Tried various subclass and protocol values with no visible change in behavior.
3) For g_ether, changed it to have only one configuration (RNDIS)
4) For testing purposes, changed vendor id to aaaa and product id to bbbb
I then modified the XP INF file to have the identifier be: usb\pid_aaaa&pid_bbbb&mi_00. Running XP w/ SP2 (does have IAD support). Clearly do see usbccgp loaded, and work to the extent of loading the proper inf file based on the MI_00 value.
The results:
1) For g_ether, it gets pretty far in XP driver installation, then ends with "cannot start device, error code 10".
a. On the device, gets up to the set-config request from host
2) For g_serial, it installs, but no data transfers
It seems that ep0 works fine, but the interface endpoints do not... I am in the process of putting a hw sniffer on the usb, but I'm not sure that it will tell me too much. I ran a sniffer app on XP, and it did not receive any data when the device sent data (and got a transfer complete interrupt).
Any help on this would be greatly appreciated!!
Jeremy
--- End Message ---