|
From: Tim R. <ti...@pr...> - 2012-06-12 17:07:09
|
Markus wrote: > As of now, I can read and write memory by using vendor request > control transfers. According to the manufacturer this is the way > to go for firmware dump and download. That's a common mechanism. > wValue (LSW) and wIndex (MSW) make up the address offset to write > the data to within device memory. Are you sure you have the ordering correct? (It probably is, because that lets those two fields be treated as a single little-endian dword.) > In both cases (r/w), the maximum value for wValue is 0x4000, after > that libusb_control_transfer() returns pipe errors. As it is > possible with the original tool to write beyond this address, I > suspect it's not the device that produces the stall. What is the actual error code you get from WinUSB? If the error really is a stall, then has to come from the device. What is the bmRequestType? Is it a vendor request to the device? Would you mind showing us the code? > As I don't have any known-good device where I could meaningfully > test a control transfer with wValue > 0x4000, I'd also be happy > for any hint towards how to reproduce this behaviour. I have certainly done vendor device requests with wValue larger than 0x4000. -- Tim Roberts, ti...@pr... Providenza & Boekelheide, Inc. |