[U-Boot] USB mass storage gadget patch

victor
2012-11-06T09:58:33Z

Lukasz,

> Hi victor,
>
> Regarding UMS support:
>
> The last version posted at u-boot ML can be found at [**]:
> http://thread.gmane.org/gmane.comp.boot-loaders.u-
> boot/113004/match=ums
>
>
> +if (fsg_fs_bulk_out_desc.bEndpointAddress != 0x1)
> + fsg_fs_bulk_out_desc.bEndpointAddress = 0x1;
> +
>
> If possible, please align to patch set [**], so we can have the same
setup.
>
> However, I will try to find some time to help you with the problem (that's
> why I've asked for description of the problem, which you are trying to
fix).
>

I hardcode bulk out endpoint to EP1 because the hardware only got one
endpoint. So the code has to use EP1 for both bulk in and bulk out data
transfer. Will this break the usb mass storage gadget code?

I will get the file_storage.c from [**].

The short description of the problem:
The U-boot usb mass storage gadget driver has problem with buffer
management, sometimes the buffer returned by IRQ routine and the
get_next_command function are different. It causes problem in processing
SCSI_MODE_SELECT_6 command.

The detailed description of the problem:
When receiving the SCSI_MODE_SELECT_6 command, in bulk_out_complete(), the
bh pointer is 0x1b872e4. Then, in get_next_command(), before calling
start_transfer(), the bh pointer becomes 0x1b87304. This changes in bh
pointer can cause data not to be processed by the usb mass storage gadget
code.

Thanks,