|
From: Markus <li...@ne...> - 2012-06-14 14:43:28
|
On Wed, 13 13:24 , Pete Batard wrote:
> Well, all I can say is that we seem to be getting a stall report by
> WinUSB indeed.
...
> If you see the expected >0x4000 wValue, and the rest of the request is
> the same, then the problem is likely to be with the device rather than
> libusbx or WinUSB. Maybe there's a special mode that needs to be enabled
> on the device to r/w beyond wValue 0x4000?
I don't see any value >0x4000, it's already at 0x4000 that the
problem occurs. Nevertheless, when looking at the URBs, I don't
spot any difference except for the address. I should mention
that it returns pretty quick in comparison to the good transfers
(1.2 ms vs. 250 us).
After a quick test with libusbK only (i.e. libusbK.sys and API),
I'm getting increasingly convinced that it's a device issue. I
inserted the following code into the xfer-control.c example and
see the stall at 0x4000 as well, with GetLastError() returning
31:
memset(fwBuffer, 0, sizeof(fwBuffer));
memOffset = 0x3F80;
/*
Use a vendor control transfer to transmit firmware bytes. (HostToDevice)
*/
for (i = 48; i < 52 ; i++)
{
memset(fwBuffer, i, sizeof(fwBuffer));
setupPacket.BmRequest.Dir = BMREQUEST_DIR_HOST_TO_DEVICE;
setupPacket.BmRequest.Type = BMREQUEST_TYPE_VENDOR;
setupPacket.BmRequest.Recipient = BMREQUEST_RECIPIENT_DEVICE;
setupPacket.Request = 0xA0; // Cypress
setupPacket.Value = memOffset;
setupPacket.Index = 0x0000;
setupPacket.Length = sizeof(fwBuffer);
success = Usb.ControlTransfer(usbHandle, *((WINUSB_SETUP_PACKET*)&setupPacket), fwBuffer,
sizeof(fwBuffer) - 1, &txBytes, NULL);
if (!success)
{
errorCode = GetLastError();
printf("Usb.ControlTransfer failed. Win32Error=%u(0x%08X)\n", errorCode, errorCode);
goto Done;
}
memOffset += 0x40;
}
Thanks in advance,
/Markus
>
>
>
> ------------------------------------------------------------------------------
> 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
> lib...@li...
> https://lists.sourceforge.net/lists/listinfo/libusbx-devel
|