First BULK IN packet from BootLdrUSBFS/BootLdrUSBFSe modules always NAK'ed by PC (PSoC Designer 5.2 and before versions)

Question: After entering the Bootloader mode while using BootLdrUSBFS/BootLdrUSBFSe user modules, the first BULK IN packet is always NAK'ed. Why?

 

Answer:

 

The root cause of the issue is as follows:
 
Firmware sends the status response to the Enter BootLoader command but with incorrect PID field. The first data transaction must have PID equal to DATA0. But UM sends data packet with DATA1 PID, therefore the response is ignored by PC Host and the packet does not come to USB Device Driver.
 
Work around for the issue is as follows:
 
 
1. Replace the "Cypress\PSoC Designer\5.1 Common\CypressSemiDeviceEditor\Data\Stdum\BootLdrUSBFS\Ver_1_50\USB_Bt_loader.asm" file by the attached "USB_Bt_loader.asm" file
 
2. Replace the "Cypress\PSoC Designer\5.1 Common\CypressSemiDeviceEditor\Data\Stdum\BootLdrUSBFS\Ver_1_50\SrcCY8C20060\USBCY8C20060_Bt_loader.asm" file by the attached "USBCY8C20060_Bt_loader.asm" file.
 
After the files replacement the USB BootLoader Host ("USB PSoC Downloader" application) will successfully operates only with 64-bytes flash block devices.
 
This issue will be fixed in the next version of PSoC Designer.