Kenneth Schultz | 11 May 2012 00:54
Favicon

Re: Making LibUsbK xfer-iso-read.c work as a High-BW EP

OK, I got my problem fixed with High BW endpoints and I can now get an Iso 2 x 1K endpoint going but I am having
issues with 3 x 1K High BW endpoint.  I am getting error for the libusbk and it looks like this host does not
like me sending a Data2 Packet as seen on CATC.  As soon as it sees the first packet with a DATA2 PID, is does not
send the next IN.  In debugging this, I have found the following.  In this example, when it prints out the EP
information, it says I have a 2K endpoint, but this should be 3K.  I have included the example code log, the
example code in question, descriptor, debug log, and CATC Trace.
Any ideas?

ken
------------------------------------------------
Output from this ISO Read Example.
------------------------------------------------
Looking for device vid/pid 1286/00F0..
Using 1286:00F0 (5&152AB9AD&0&3): FX3 - Marvell Semiconductor, Inc.
Device opened successfully!
  PipeId=0x83 PipeType=0x01 Interval=1 MaximumPacketSize=2048   <<<<<<<<<<<<<<<SHOULD BE 3K
Device hardware fully prepared..
OvlK_Wait failed. ErrorCode: 0000001Fh

---------------------------------------------------
Section of code that prints this out.
---------------------------------------------------
        /*
        Select interface by pipe id and get descriptors.
        */
        interfaceIndex = (UCHAR) - 1;
        while(UsbK_SelectInterface(usbHandle, ++interfaceIndex, TRUE))
        {
                memset(&gInterfaceDescriptor, 0, sizeof(gInterfaceDescriptor));
                memset(&gPipeInfo, 0, sizeof(gPipeInfo));
                gAltsettingNumber = (UCHAR) - 1;
                while(UsbK_QueryInterfaceSettings(usbHandle, ++gAltsettingNumber, &gInterfaceDescriptor))
                {
                        UCHAR pipeIndex = (UCHAR) - 1;
                        while(UsbK_QueryPipe(usbHandle, gAltsettingNumber, ++pipeIndex, &gPipeInfo))
                        {
                                if (gPipeInfo.PipeId == EP_READ &&
                                        gPipeInfo.PipeType == UsbdPipeTypeIsochronous &&
                                        gPipeInfo.MaximumPacketSize)
                                        break;

                                memset(&gPipeInfo, 0, sizeof(gPipeInfo));
                        }
                        printf("  PipeId=0x%02X PipeType=0x%02X Interval=%u MaximumPacketSize=%u\n",
                       gPipeInfo.PipeId, gPipeInfo.PipeType, gPipeInfo.Interval, gPipeInfo.MaximumPacketSize);
                        if (gPipeInfo.PipeId) break;
                        memset(&gInterfaceDescriptor, 0, sizeof(gInterfaceDescriptor));
                }
        }

-------------------------------------------
The Descriptor
-------------------------------------------
REQUEST SUMMARY Setup Data 80 06 00 02 00 00 20 00
Direction Device-to-host
Type Standard
Recipient Device
bRequest GET_DESCRIPTOR
wValue CONFIGURATION, Index 0
wIndex 0x0000
wLength 0x0020

DECODING INFORMATION

  Field     Decoded     Hex Value
  bRequest     GET_DESCRIPTOR     0x06
  wValue     CONFIGURATION type, Index 0     0x0200
  wIndex     0x0000     0x0000

CONFIGURATION Descriptor (9 bytes)   Field     Decoded     Hex Value
  bLength      0x09      0x09
  bDescriptorType      0x02      0x02
  wTotalLength      0x0020      0x0020
  bNumInterfaces      0x01      0x01
  bConfigurationValue      0x01      0x01
  iConfiguration      0x00      0x00
  bmAttributes      0x80      0x80
  bMaxPower      0x32      0x32

INTERFACE Descriptor (9 bytes)   Field     Decoded     Hex Value
  bLength      0x09      0x09
  bDescriptorType      0x04      0x04
  bInterfaceNumber      0x00      0x00
  bAlternateSetting      0x00      0x00
  bNumEndpoints      0x02      0x02
  bInterfaceClass      0xFF      0xFF
  bInterfaceSubClass      0x00      0x00
  bInterfaceProtocol      0x00      0x00
  iInterface      0x00      0x00

ENDPOINT Descriptor (7 bytes)   Field     Decoded     Hex Value
  bLength      0x07      0x07
  bDescriptorType      0x05      0x05
  bEndpointAddress      0x03      0x03
  bmAttributes      0x01      0x01
  wMaxPacketSize      0x1400      0x1400
  bInterval      0x01      0x01

ENDPOINT Descriptor (7 bytes)   Field     Decoded     Hex Value
  bLength      0x07      0x07
  bDescriptorType      0x05      0x05
  bEndpointAddress      0x83      0x83
  bmAttributes      0x01      0x01
  wMaxPacketSize      0x0C00      0x0C00
  bInterval      0x01      0x01

----------------------------------------------------------------------
Debug View output
----------------------------------------------------------------------
[DriverEntry](libusbK.sys) v3.0.5.10 built-on: Mar  8 2012 16:05:58
(libusbK.sys)[Registry_ReadAllDeviceKeys] Found 1 DeviceInterfaceGUIDs strings.
(libusbK.sys)[Registry_ReadAllDeviceKeys] DeviceIdleEnabled=1
(libusbK.sys)[Registry_ReadAllDeviceKeys] DeviceIdleIgnoreWakeEnable=0
(libusbK.sys)[Registry_ReadAllDeviceKeys] UserSetDeviceIdleEnabled=0
(libusbK.sys)[Registry_ReadAllDeviceKeys] DefaultIdleState=0
(libusbK.sys)[Registry_ReadAllDeviceKeys] DefaultIdleTimeout=5000
(libusbK.sys)[Registry_ReadAllDeviceKeys] SystemWakeEnabled=0
(libusbK.sys)[Device_OnAdd] [dev-id=#1] SymbolicLink=\DosDevices\libusb0-0255
(libusbK.sys)[Device_OnAdd] [dev-id=#1] assigned DeviceInterfaceGUID {83F7C04B-3879-95CA-E06D-2BAF1A62A386}.
(libusbK.sys)[Device_Create] DeviceSpeed=High RemoteWakeCapable=False SelfPowered=False
(libusbK.sys)[Device_Configure] Using single interface configuration..
(libusbK.sys)[Pipe_InitContext] pipeID=00h Creating pipe queue.
(libusbK.sys)[Pipe_InitContext] pipeID=00h queue starting..
(libusbK.sys)[Interface_InitContext] configured Write pipe: PipeID=03h MaximumPacketSize=3072
MaximumTransferSize=3145728 PipeType=Isochronous
(libusbK.sys)[Interface_InitContext] configured Read pipe: PipeID=83h MaximumPacketSize=2048
MaximumTransferSize=2097152 PipeType=Isochronous
(libusbK.sys)[Pipe_InitContext] pipeID=03h Creating pipe queue.
(libusbK.sys)[Pipe_InitQueue] Configuring parallel queue..
(libusbK.sys)[Pipe_InitContext] pipeID=03h starting..
(libusbK.sys)[Pipe_InitContext] pipeID=03h queue starting..
(libusbK.sys)[Pipe_InitContext] pipeID=83h Creating pipe queue.
(libusbK.sys)[Pipe_InitQueue] Configuring parallel queue..
(libusbK.sys)[Pipe_InitContext] pipeID=83h starting..
(libusbK.sys)[Pipe_InitContext] pipeID=83h queue starting..
(libusbK.sys)[Device_OnD0Entry] Entering D0. Leaving D4.
(libusbK.sys)[Device_OnFileCreate] begins
(libusbK.sys)[Device_OnFileCreate] ends
(libusbK.sys)[XferCtrl] bmDir=DeviceToHost(1) bmType=Standard(0) bmRecipient=Device(0)
bmReserved=000 bRequest=6 wIndex=0 wValue=512 wLength=0
(libusbK.sys)[XferCtrl] bmDir=DeviceToHost(1) bmType=Standard(0) bmRecipient=Device(0)
bmReserved=000 bRequest=6 wIndex=0 wValue=512 wLength=0
(libusbK.sys)[Interface_SetAltSetting] alternate interface index 0 already selected
(libusbK.sys)[Pipe_Reset] pipeID=83h
[ERR](libusbK.sys)[XferIsoExComplete] [Failure] PipeID=83h Status=C0000001h
[ERR](libusbK.sys)[XferIsoExComplete] [Failure] PipeID=83h Status=C0000001h
USBD-Status=C0000B00h ErrorCount=128
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[0].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[1].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[2].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[3].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[4].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[5].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[6].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[7].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[8].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[9].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[10].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[11].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[12].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[13].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[14].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[15].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[16].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[17].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[18].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[19].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[20].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[21].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[22].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[23].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[24].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[25].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[26].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[27].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[28].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[29].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[30].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[31].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[32].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[33].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[34].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[35].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[36].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[37].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[38].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[39].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[40].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[41].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[42].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[43].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[44].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[45].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[46].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[47].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[48].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[49].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[50].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[51].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[52].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[53].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[54].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[55].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[56].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[57].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[58].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[59].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[60].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[61].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[62].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[63].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[64].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[65].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[66].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[67].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[68].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[69].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[70].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[71].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[72].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[73].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[74].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[75].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[76].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[77].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[78].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[79].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[80].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[81].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[82].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[83].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[84].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[85].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[86].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[87].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[88].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[89].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[90].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[91].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[92].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[93].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[94].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[95].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[96].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[97].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[98].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[99].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[100].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[101].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[102].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[103].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[104].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[105].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[106].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[107].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[108].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[109].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[110].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[111].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[112].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[113].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[114].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[115].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[116].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[117].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[118].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[119].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[120].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[121].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[122].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[123].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[124].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[125].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[126].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] IsoPacket[127].Status=C0000011h
[WRN](libusbK.sys)[XferIsoExComplete] [Cancelled] PipeID=83h Status=C0000120h
[ERR](libusbK.sys)[XferIsoExComplete] [Failure] PipeID=83h Status=C0000120h
USBD-Status=C0010000h ErrorCount=8
[WRN](libusbK.sys)[XferIsoExComplete] [Cancelled] PipeID=83h Status=C0000120h
[ERR](libusbK.sys)[XferIsoExComplete] [Failure] PipeID=83h Status=C0000120h
USBD-Status=C0010000h ErrorCount=0
[WRN](libusbK.sys)[XferIsoExComplete] [Cancelled] PipeID=83h Status=C0000120h
[ERR](libusbK.sys)[XferIsoExComplete] [Failure] PipeID=83h Status=C0000120h
USBD-Status=C0010000h ErrorCount=0
[WRN](libusbK.sys)[XferIsoExComplete] [Cancelled] PipeID=83h Status=C0000120h
[ERR](libusbK.sys)[XferIsoExComplete] [Failure] PipeID=83h Status=C0000120h
USBD-Status=C0010000h ErrorCount=0
[WRN](libusbK.sys)[XferIsoExComplete] [Cancelled] PipeID=83h Status=C0000120h
[ERR](libusbK.sys)[XferIsoExComplete] [Failure] PipeID=83h Status=C0000120h
USBD-Status=C0010000h ErrorCount=0
[WRN](libusbK.sys)[XferIsoExComplete] [Cancelled] PipeID=83h Status=C0000120h
[ERR](libusbK.sys)[XferIsoExComplete] [Failure] PipeID=83h Status=C0000120h
USBD-Status=C0010000h ErrorCount=0
[WRN](libusbK.sys)[XferIsoExComplete] [Cancelled] PipeID=83h Status=C0000120h
[ERR](libusbK.sys)[XferIsoExComplete] [Failure] PipeID=83h Status=C0000120h
USBD-Status=C0010000h ErrorCount=0
(libusbK.sys)[Interface_ReleaseAll] releasing all interfaces bound to file object 0x86712ad0

----------------------------------------------------------------------
Portion of CATC TRACE
----------------------------------------------------------------------
  From Packet #67138 to Packet
#67205.

Packet#
_______|_______________________________________________________________________Marker(<HTML><b>Packet</b>:
Marker #1 <BR><BR></HTML>)
Packet(67138) Dir H(S)
_______| IN(0x96) ADDR(1) ENDP(3) CRC5(0x0E) High EOP(FF FE)
_______| Time Stamp(8 . 412 103 916)
_______|_______________________________________________________________________
Packet(67139) Dir H(S) DATA2(0xE1) Data(1024 bytes) CRC16(0x0335)
_______| High EOP(FF FE) Time Stamp(8 . 412 104 382)
_______|_______________________________________________________________________
Packet(67140) Dir H(S) SOF(0xA5) Frame #(749.0) CRC5(0x09)
_______| High EOP(FB FF FF FF FF FE) Time Stamp(8 . 412 228 416)
_______|_______________________________________________________________________
Packet(67141) Dir H(S) IN(0x96) ADDR(1) ENDP(3) CRC5(0x0E) High EOP(FF FE)
_______| Time Stamp(8 . 412 228 916)
_______|_______________________________________________________________________
Packet(67142) Dir H(S) DATA2(0xE1) Data(1024 bytes) CRC16(0x0335)
_______| High EOP(FF FE) Time Stamp(8 . 412 229 382)
_______|_______________________________________________________________________
Packet(67143) Dir H(S) SOF(0xA5) Frame #(749.1) CRC5(0x09)
_______| High EOP(FB FF FF FF FF FE) Time Stamp(8 . 412 353 416)
_______|_______________________________________________________________________
Packet(67144) Dir H(S) IN(0x96) ADDR(1) ENDP(3) CRC5(0x0E) High EOP(FF FE)
_______| Time Stamp(8 . 412 353 916)
_______|_______________________________________________________________________
Packet(67145) Dir H(S) DATA2(0xE1) Data(1024 bytes) CRC16(0x0335)
_______| High EOP(FF FE) Time Stamp(8 . 412 354 350)
_______|_______________________________________________________________________
Packet(67146) Dir H(S) SOF(0xA5) Frame #(749.2) CRC5(0x09)
_______| High EOP(FD FF FF FF FF FE) Time Stamp(8 . 412 478 416)
_______|_______________________________________________________________________
Packet(67147) Dir H(S) IN(0x96) ADDR(1) ENDP(3) CRC5(0x0E) High EOP(FF FE)
_______| Time Stamp(8 . 412 478 916)
_______|_______________________________________________________________________
Packet(67148) Dir H(S) DATA2(0xE1) Data(1024 bytes) CRC16(0x0335)
_______| High EOP(FF FE) Time Stamp(8 . 412 479 382)
_______|_______________________________________________________________________
Packet(67149) Dir H(S) SOF(0xA5) Frame #(749.3) CRC5(0x09)
_______| High EOP(FB FF FF FF FF FE) Time Stamp(8 . 412 603 416)
_______|_______________________________________________________________________
Packet(67150) Dir H(S) IN(0x96) ADDR(1) ENDP(3) CRC5(0x0E) High EOP(FF FE)
_______| Time Stamp(8 . 412 603 916)
_______|_______________________________________________________________________
Packet(67151) Dir H(S) DATA2(0xE1) Data(1024 bytes) CRC16(0x0335)
_______| High EOP(FF FE) Time Stamp(8 . 412 604 382)
_______|_______________________________________________________________________
Packet(67152) Dir H(S) SOF(0xA5) Frame #(749.4) CRC5(0x09)
_______| High EOP(FD FF FF FF FF FE) Time Stamp(8 . 412 728 416)
_______|_______________________________________________________________________
Packet(67153) Dir H(S) IN(0x96) ADDR(1) ENDP(3) CRC5(0x0E) High EOP(FF FE)
_______| Time Stamp(8 . 412 728 916)
_______|_______________________________________________________________________
Packet(67154) Dir H(S) DATA2(0xE1) Data(1024 bytes) CRC16(0x0335)
_______| High EOP(FF FE) Time Stamp(8 . 412 729 382)
_______|_______________________________________________________________________
Packet(67155) Dir H(S) SOF(0xA5) Frame #(749.5) CRC5(0x09)
_______| High EOP(FB FF FF FF FF FE) Time Stamp(8 . 412 853 416)
_______|_______________________________________________________________________
Packet(67156) Dir H(S) IN(0x96) ADDR(1) ENDP(3) CRC5(0x0E) High EOP(FF FE)
_______| Time Stamp(8 . 412 853 916)
_______|_______________________________________________________________________
Packet(67157) Dir H(S) DATA2(0xE1) Data(1024 bytes) CRC16(0x0335)
_______| High EOP(FF FE) Time Stamp(8 . 412 854 382)
_______|_______________________________________________________________________
Packet(67158) Dir H(S) SOF(0xA5) Frame #(749.6) CRC5(0x09)
_______| High EOP(FB FF FF FF FF FE) Time Stamp(8 . 412 978 382)
-----Original Message-----
From: Travis [mailto:libusbdotnet <at> gmail.com]
Sent: Tuesday, May 08, 2012 10:19 AM
To: libusb-win32-devel <at> lists.sourceforge.net
Subject: Re: [Libusb-win32-devel] Making LibUsbK xfer-iso-read.c work as a High-BW EP

On 5/8/2012 9:40 AM, Kenneth Schultz wrote:
> I am on a windows 7 machine.  32 bit mode.  Below is the log file and below that is the descriptor from catc.  The
log file shows that the data is transmitting fine but I am not getting any High BW traffic.  I am doing ISOC
packets.  I have tried 1K packets and I have now dropped to 768 byte packets to see if there is any difference.
>
> Since this normal test case was not coded for High BW packets, how do I tell the host driver to use High BW
packets?  Is it just changing the descriptor (Which I did) or do I need to change the number of packets or
anything else in the example?

There is nothing to tell the driver or the library in-terms of
high-speed high-bandwidth transfers.  Your devices endpoint descriptor
identifies it as such so the host knows you want multiple transactions
per frame.  IE:  This all happens between the device and host controller.

> (libusbK.sys)[XferIsoExComplete] Transferred=98304 StartFrame=000B738Fh Errors=0 Status=00000000h
> (libusbK.sys)[XferIsoExComplete] Transferred=98304 StartFrame=000B739Fh Errors=0 Status=00000000h
> (libusbK.sys)[XferIsoExComplete] Transferred=98304 StartFrame=000B73AFh Errors=0 Status=00000000h

16ms =  98304 (6144 per ms)
6144  / 8 (bInterval 1) = (768 per 125us)

Yup, you are getting 1 packet per 125us.

Everything is working, your device simply isn't turning over multiple
packets per frame or your hub is not properly requesting them.

What kind of device is this?  Usually, there is more to do in the
firmware to support this then changing the ep descriptor only.

>    bLength     0x07
>    bDescriptorType     0x05
>    bEndpointAddress     0x81
>    bmAttributes     0x01
>    wMaxPacketSize     0x0B00
>    bInterval     0x01
>

Looks like you are trying for 768 X 2.

Regards,
Travis

------------------------------------------------------------------------------
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/
_______________________________________________
Libusb-win32-devel mailing list
Libusb-win32-devel <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libusb-win32-devel

------------------------------------------------------------------------------
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/

Gmane