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
> libusbx-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/libusbx-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/
_______________________________________________
libusbx-devel mailing list
libusbx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libusbx-devel

Reply via email to