I have modified the sample project for ST dfuse to change the transfer size from 1K bytes to 60K bytes. I have seen considerable improvement in the programming time of a NOR device. Unfortunately this change only works in Windows 7. It doesn't work in Win XP Service Pack 3.
Upon debugging the Windows version of dfuse demo it turns out that the erase operation goes through but during the program operation any transfer size more than 4k fails immediately with STDFU_VENDOR_RQ_PB, ST documentation point to the error being "Cannot get the vendor id.".
More specifically the following call fails...
"STDFU_Dnload (PHANDLE phDevice, UCHAR *pBuffer,ULONG nBytes, USHORT nBlock)"
Since the source code for this part is closed, i am unable to proceed further.
All searches related to WinXP and Win7 regarding transfer sizes turned futile as I am not sure how exactly the ST driver is making use of URB ioctls.
Has anynody seen something similar ? Any clue whats going on?