
Lukasz,
- Now I can use the patch and process till SCSI MODE_SELECT_6
command, and then problem is encountered. Basically the SCSI MODE_SELECT_6 is sent to EP1 Out, then data is sent to EP1 out, and the fsg_main_thread only sees the data. I change the code to force the CSW.
Can you explain further problems which you encounter?
I'm using this UMS version internally (the version w hich you
pointed out with the link) for debugging our targets.
I'm using Debian Linux as a host with standard tools like dd and
parted/fdisk. I don't have any problems with it (even with debug messages enabled).
In cmd_usb_mass_storage.c, do_usb_mass_storage(), the while(1) loop, the usb_gadget_handle_interrupts() will handle the interrupts that is triggered, and received data from EP1 out, and bh->state is set to BUF_STATE_FULL in bulk_out_complete(). And then fsg_main_thread() in file_storage.c is called. And then get_next_command() is called. And then start_transfer() is called. In that function, the bh->state will be set to BUF_STATE_BUSY. Because of this change, for two consecutive data from EP1 out, one data is missed.
I can send the full source code to you if it is helpful. Thanks.
Regards, Victor
================================================================================================ CONFIDENTIALITY NOTE: This e-mail and any attachments may contain confidential information and may be protected by legal privilege. If you are not the intended addressee (or authorized to receive for the addressee). be aware that any disclosure, copying, distribution or use of this e-mail or any attachment is prohibited. If you have received this e-mail in error, please notify us immediately by returning it to the sender and delete this copy from your system. Thank you for your cooperation. KeyASIC Inc. ================================================================================================