On Sun, Sep 2, 2012 at 9:49 AM, Pete Batard <p...@akeo.ie> wrote:
> On 2012.08.31 11:13, Xiaofan Chen wrote:
>> I have seen some potential issues with USB composite
>> device (FT2232H based JTAG debugger) with libusbK or
>> libusb0.sys (filter or device driver) when I tested OpenOCD
>> 0.6.0-rc2 with libusbx git. I will try to use xusb to replicate
>> the issues and post the details.
>
> Was it with K/0 used in lieu of the composite parent? Or were the
> drivers installed against the children devices?

Here are the results with the simple "xusb -g". BTW,
"xusb -j" does not seem to do much more than "xusb -g".

The tests are with Amontec JTAGKey2 under a Windows 7 x64
machine (not using VM).

Summary:
a) Filter driver + Vendor driver: failed
b) Using libusb0.sys or libusbk.sys or winusb.sys to replace
the Windows composite parent driver: passed
c) Keeping the Windows composite parent driver but using
libusb0.sys or libusbk.sys or winusb.sys to replace
the vendor driver for both interfaces, failed

Detailed results:

1) Using filter driver + FTDI driver, failed, I tried to install the filter
driver on top of both interface or on top of the composite parent
or both

D:\work\libusbx\libusbx\x64\Release\examples>xusb.exe -g 0403:cff8
Using libusbx v1.0.12.10557

Opening device...
libusbx: info [cache_config_descriptors] could not access configuration descript
or (dummy) for '\\.\USB#VID_0B05&PID_1788#1C4BD6065A96': [31] A device attached
to the system is not functioning.
libusbx: info [cache_config_descriptors] could not access configuration descript
or (dummy) for '\\.\USB#VID_0B05&PID_1788#1C4BD6065A96': [31] A device attached
to the system is not functioning.
bus: 2, port path from HCD: 4
speed: 480 Mbit/s (USB HighSpeed)

Reading device descriptor:
            length: 18
      device class: 0
               S/N: 3
           VID:PID: 0403:CFF8
         bcdDevice: 0700
   iMan:iProd:iSer: 1:2:3
          nb confs: 1

Reading configuration descriptors:
             nb interfaces: 2
              interface[0]: id = 0
interface[0].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: FF.FF.FF
       endpoint[0].address: 81
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 02
           max packet size: 0200
          polling interval: 00
              interface[1]: id = 1
interface[1].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: FF.FF.FF
       endpoint[0].address: 83
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 04
           max packet size: 0200
          polling interval: 00

Claiming interface 0...
   Failed.

Claiming interface 1...
   Failed.

Reading string descriptors:
libusbx: error [composite_submit_control_transfer] no libusbx supported interfac
es to complete request
libusbx: error [composite_submit_control_transfer] no libusbx supported interfac
es to complete request
libusbx: error [composite_submit_control_transfer] no libusbx supported interfac
es to complete request
libusbx: error [composite_submit_control_transfer] no libusbx supported interfac
es to complete request

Releasing interface 0...
Releasing interface 1...
Closing device...

2) To use WinUSB driver to replace the composite parent, okay

D:\work\libusbx\libusbx\x64\Release\examples>xusb.exe -g 0403:cff8
Using libusbx v1.0.12.10557

Opening device...
bus: 2, port path from HCD: 4
speed: 480 Mbit/s (USB HighSpeed)

Reading device descriptor:
            length: 18
      device class: 0
               S/N: 3
           VID:PID: 0403:CFF8
         bcdDevice: 0700
   iMan:iProd:iSer: 1:2:3
          nb confs: 1

Reading configuration descriptors:
             nb interfaces: 2
              interface[0]: id = 0
interface[0].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: FF.FF.FF
       endpoint[0].address: 81
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 02
           max packet size: 0200
          polling interval: 00
              interface[1]: id = 1
interface[1].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: FF.FF.FF
       endpoint[0].address: 83
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 04
           max packet size: 0200
          polling interval: 00

Claiming interface 0...

Claiming interface 1...

Reading string descriptors:
   String (0x01): "Amontec"
   String (0x02): "Amontec JTAGkey-2"
   String (0x03): "53T9XDR4"

Releasing interface 0...
Releasing interface 1...
Closing device...

3) To use WinUSB driver for interface 0 (A) only, it will fail as expected since
WinUSB needs to claim both interface. But then when I use WInUSB
driver for both interface 0 and 1, it still fails, this is a bit strange.

D:\work\libusbx\libusbx\x64\Release\examples>xusb.exe -g 0403:cff8
Using libusbx v1.0.12.10557

Opening device...
bus: 2, port path from HCD: 4
speed: 480 Mbit/s (USB HighSpeed)

Reading device descriptor:
            length: 18
      device class: 0
               S/N: 3
           VID:PID: 0403:CFF8
         bcdDevice: 0700
   iMan:iProd:iSer: 1:2:3
          nb confs: 1

Reading configuration descriptors:
             nb interfaces: 2
              interface[0]: id = 0
interface[0].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: FF.FF.FF
       endpoint[0].address: 81
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 02
           max packet size: 0200
          polling interval: 00
              interface[1]: id = 1
interface[1].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: FF.FF.FF
       endpoint[0].address: 83
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 04
           max packet size: 0200
          polling interval: 00

Claiming interface 0...
   Failed.

Claiming interface 1...
   Failed.

Reading string descriptors:
libusbx: error [auto_claim] could not auto-claim any interface
libusbx: error [auto_claim] could not auto-claim any interface
libusbx: error [auto_claim] could not auto-claim any interface
libusbx: error [auto_claim] could not auto-claim any interface

Releasing interface 0...
Releasing interface 1...
Closing device...

4) Using libusbk.sys for the composite parent, okay.
D:\work\libusbx\libusbx\x64\Release\examples>xusb.exe -g 0403:cff8
Using libusbx v1.0.12.10557

Opening device...
bus: 2, port path from HCD: 4
speed: 480 Mbit/s (USB HighSpeed)

Reading device descriptor:
            length: 18
      device class: 0
               S/N: 3
           VID:PID: 0403:CFF8
         bcdDevice: 0700
   iMan:iProd:iSer: 1:2:3
          nb confs: 1

Reading configuration descriptors:
             nb interfaces: 2
              interface[0]: id = 0
interface[0].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: FF.FF.FF
       endpoint[0].address: 81
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 02
           max packet size: 0200
          polling interval: 00
              interface[1]: id = 1
interface[1].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: FF.FF.FF
       endpoint[0].address: 83
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 04
           max packet size: 0200
          polling interval: 00

Claiming interface 0...

Claiming interface 1...

Reading string descriptors:
   String (0x01): "Amontec"
   String (0x02): "Amontec JTAGkey-2"
   String (0x03): "53T9XDR4"

Releasing interface 0...
Releasing interface 1...
Closing device...

5)  Keep the composite parent Windows driver, using libusbk.sys
driver for both interface 0 and 1, it fails, same as 3).

D:\work\libusbx\libusbx\x64\Release\examples>xusb.exe -g 0403:cff8
Using libusbx v1.0.12.10557

Opening device...
bus: 2, port path from HCD: 4
speed: 480 Mbit/s (USB HighSpeed)

Reading device descriptor:
            length: 18
      device class: 0
               S/N: 3
           VID:PID: 0403:CFF8
         bcdDevice: 0700
   iMan:iProd:iSer: 1:2:3
          nb confs: 1

Reading configuration descriptors:
             nb interfaces: 2
              interface[0]: id = 0
interface[0].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: FF.FF.FF
       endpoint[0].address: 81
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 02
           max packet size: 0200
          polling interval: 00
              interface[1]: id = 1
interface[1].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: FF.FF.FF
       endpoint[0].address: 83
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 04
           max packet size: 0200
          polling interval: 00

Claiming interface 0...
   Failed.

Claiming interface 1...
   Failed.

Reading string descriptors:
libusbx: error [auto_claim] could not auto-claim any interface
libusbx: error [auto_claim] could not auto-claim any interface
libusbx: error [auto_claim] could not auto-claim any interface
libusbx: error [auto_claim] could not auto-claim any interface

Releasing interface 0...
Releasing interface 1...
Closing device...

6) Using libusb0.sys to replace the USB composite parent, okay.
The error message is a known problem with regard to Windows
OS Descriptor.

D:\work\libusbx\libusbx\x64\Release\examples>xusb.exe -g 0403:cff8
Using libusbx v1.0.12.10557

Opening device...
bus: 2, port path from HCD: 4
speed: 480 Mbit/s (USB HighSpeed)

Reading device descriptor:
            length: 18
      device class: 0
               S/N: 3
           VID:PID: 0403:CFF8
         bcdDevice: 0700
   iMan:iProd:iSer: 1:2:3
          nb confs: 1

Reading configuration descriptors:
             nb interfaces: 2
              interface[0]: id = 0
interface[0].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: FF.FF.FF
       endpoint[0].address: 81
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 02
           max packet size: 0200
          polling interval: 00
              interface[1]: id = 1
interface[1].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: FF.FF.FF
       endpoint[0].address: 83
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 04
           max packet size: 0200
          polling interval: 00

Claiming interface 0...

Claiming interface 1...

Reading string descriptors:
   String (0x01): "Amontec"
   String (0x02): "Amontec JTAGkey-2"
   String (0x03): "53T9XDR4"
libusbx: error [winusbx_submit_control_transfer] ControlTransfer failed: [31] A
device attached to the system is not functioning.

Releasing interface 0...
Releasing interface 1...
Closing device...

7) Keep the composite parent Windows driver, using libusb0.sys
driver for both interface 0 and 1, it fails, same as 3).

D:\work\libusbx\libusbx\x64\Release\examples>xusb.exe -g 0403:cff8
Using libusbx v1.0.12.10557

Opening device...
bus: 2, port path from HCD: 4
speed: 480 Mbit/s (USB HighSpeed)

Reading device descriptor:
            length: 18
      device class: 0
               S/N: 3
           VID:PID: 0403:CFF8
         bcdDevice: 0700
   iMan:iProd:iSer: 1:2:3
          nb confs: 1

Reading configuration descriptors:
             nb interfaces: 2
              interface[0]: id = 0
interface[0].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: FF.FF.FF
       endpoint[0].address: 81
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 02
           max packet size: 0200
          polling interval: 00
              interface[1]: id = 1
interface[1].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: FF.FF.FF
       endpoint[0].address: 83
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 04
           max packet size: 0200
          polling interval: 00

Claiming interface 0...
   Failed.

Claiming interface 1...
   Failed.

Reading string descriptors:
libusbx: error [auto_claim] could not auto-claim any interface
libusbx: error [auto_claim] could not auto-claim any interface
libusbx: error [auto_claim] could not auto-claim any interface
libusbx: error [auto_claim] could not auto-claim any interface

Releasing interface 0...
Releasing interface 1...
Closing device...

-- 
Xiaofan

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
libusbx-devel mailing list
libusbx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libusbx-devel

Reply via email to