[U-Boot] Issue with USB mass storage (thumb drives)

Marek Vasut marex at denx.de
Wed May 4 23:36:46 CEST 2016


On 05/04/2016 04:06 PM, Diego wrote:
> In data mercoledì 4 maggio 2016 13:45:57, Marek Vasut ha scritto:
>> On 05/04/2016 11:13 AM, Diego wrote:
>>> In data martedì 3 maggio 2016 23:01:10, Marek Vasut ha scritto:
>>>> On 04/29/2016 09:58 AM, Diego wrote:
>>>>> For me it fails for files bigger than 16MB:
>>>> Ha ok, I see it now. According to the bus analyzer, the stick Acks long
>>>> block transfer, but then just times out, I guess because it prepares the
>>>> data or something. Just a dummy question, did you try reducing
>>>> USB_MAX_XFER_BLK ? Try with 4096 instead of 65536 , that might work.
>>>
>>> Hi Marek,
>>>
>>> that was the original argument of my mail thread:
>>> http://lists.denx.de/pipermail/u-boot/2016-April/251799.html
>>> Changing USB_MAX_XFER_BLK from 65535 to 32767 definitely fixed the "EHCI
>>> timed out on TD".
>>>
>>> I was questioning what was the best approach to fix the problem.
>>> It seems that 65536 doesn't work for quite some USB thumb drives. Seeing
>>> my
>>> experience, my coworker's experience, and previous mails in this same
>>> thread, I'd guess something like 50% or lower work with 65535, while
>>> something like 90% or more work with 32767.
>>> http://lists.denx.de/pipermail/u-boot/2016-February/245893.html
>>>
>>> So I see three options:
>>> 1) 65535 default with quirk table
>>> 2) 32767 default without quirk table
>>> 3) 32767 default with quirk table
>>>
>>> Personally I think 3) would be the safest solution, but I think 2) would
>>> at
>>> least work for most thumb drives.
>>
>> 1) with the quirk table would be the way to go, modern(ish) drives
>> should work fine with 65535 .
>>
> 
> I personally can't see any improvement with more recent thumb drives, quite 
> the opposite.
> WORKING WITH 65535:
> - ancient Sandisk 256MB
> 	ID 0781:5151 SanDisk Corp. Cruzer Micro Flash Drive
> - old Sony 8GB
> 	ID 054c:0243 Sony Corp. MicroVault Flash Drive
> - recent Kingston DT101 G2 16GB
> 	ID 0951:1642 Kingston Technology DT101 G2
> 
> NOT WORKING WITH 65535:
> - recent Kingston G3 16GB
> 	ID 0951:1665 Kingston Technology Digital DataTraveler SE9 64GB
> - new Kingston USB 2.0 8GB
> 	ID 0951:1689 Kingston Technology DataTraveler SE9
> - brand new Kingston G2 16GB / 32GB USB 3.0
> 	ID 0951:1666 Kingston Technology DataTraveler G4
> 
> Why are you saying modern(ish) drives should work?

Hmmmmm :-(

> For others following the thread, please post your experience, especially with 
> more recent drives (remember to test with files >16MB).

I don't think it's really worth doing a thread about which sticks work
and which don't. I would find it much more valuable to address this
issue properly. I wonder if it would make sense to, instead of starting
with a big value which might not work, start with a small(er) value and
increase it with each subsequent block transfer. Quite similarly to what
TCP does. Would you be willing to look into it ?

> Diego
> 


-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list