Hi, On Wed, Jan 23, 2013 at 03:10:50PM +0800, victor yeo wrote: > >> >> Ok, rephrase the question, is this the flow for bulk transfer? > >> >> > >> >> 1) data is received by Usb mass storage HW, the UDC driver ISR is > >> >> called to read the data to usb_request buffer > >> >> 2) bulk_out_complete() in gadget driver, is called to set buffer state to full > >> >> 3) get_next_command() in gadget driver, is called to read the CBW. > >> >> 4) do_scsi_command() to process SCSI command encoded in CBW > >> >> 5) send_status() sends the CSW to host > >> > > >> > Something like below: > >> > > >> > OUT Token -> ISR -> giveback() -> bulk_out_complete() -> > >> > get_next_command() -> do_scsi_command() -> usb_ep_queue() -> OUT/IN > >> > Token -> ISR -> bulk_out_complete() -> send_status() > >> > >> For the IN Token, i will just write the data to the HW buffer, and the > >> flow will go to send_status(). > >> > >> I use a different USB cable, now the USB gadget is able to receive > >> bulk transfer data from host PC. I am working on the bulk transfer > >> code. Thank you for the very useful answers. > > > > np > > In fsg_dev structure, there are 3 usb_ep: bulk_in, bulk_out, and > intr_in. Why is the intr_out endpoint not defined? because it's not needed. Read the USB Mass Storage Class specification from usb.org -- balbi
Attachment:
signature.asc
Description: Digital signature