
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:
- 65535 default with quirk table
- 32767 default without quirk table
- 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.
- 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