11 May 2012 00:54
Re: Making LibUsbK xfer-iso-read.c work as a High-BW EP
Kenneth Schultz <klschult <at> marvell.com>
2012-05-10 22:54:41 GMT
2012-05-10 22:54:41 GMT
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/
RSS Feed