Hi Marcel, > -----Original Message----- > From: Marcel Ziswiler [mailto:mar...@ziswiler.com] > Sent: 2019年2月2日 0:43 > To: u-boot@lists.denx.de > Cc: Peng Fan <peng....@nxp.com>; Marcel Ziswiler > <marcel.ziswi...@toradex.com>; Masahiro Yamada > <yamada.masah...@socionext.com>; Bin Meng <bmeng...@gmail.com>; > Sven Schwermer <s...@svenschwermer.de> > Subject: [RFC PATCH v1] MLK-12883 usb: limit USB_MAX_XFER_BLK to 256
Thanks for upstreaming this. The MLK-xxx could be dropped, it is NXP internal tracking number. Regards, Peng. > > From: Peng Fan <peng....@nxp.com> > > For Some USB mass storage devices, such as: > " > - Kingston DataTraveler 2.0 001D7D06CF09B04199C7B3EA > - Class: (from Interface) Mass Storage > - PacketSize: 64 Configurations: 1 > - Vendor: 0x0930 Product 0x6545 Version 1.16 " > When `usb read 0x80000000 0 0x2000`, we met "EHCI timed out on TD - > token=0x80008d80". > > The devices does not support scsi VPD page, we are not able to get the > maximum transfer length for READ(10)/WRITE(10). > > So we limit this to 256 blocks as READ(6). > > Signed-off-by: Peng Fan <peng....@nxp.com> > Acked-by: Marcel Ziswiler <marcel.ziswi...@toradex.com> (cherry picked > from commit df0052575b2bc9d66ae73584768e1a457ed5d914) > > --- > This comes from NXP's downstream and has proven to tremendously improve > the situation with those odd USB mass storage aka memory sticks. This is why > I post it here asking whether or not this may be something benefiting more > people. Any feedback and suggestions are welcome. > > common/usb_storage.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/common/usb_storage.c b/common/usb_storage.c index > 8c889bb1a6..7420438363 100644 > --- a/common/usb_storage.c > +++ b/common/usb_storage.c > @@ -949,7 +949,11 @@ static void usb_stor_set_max_xfer_blk(struct > usb_device *udev, > * there is enough free heap space left, but the SCSI READ(10) and > * WRITE(10) commands are limited to 65535 blocks. > */ > - blk = USHRT_MAX; > + /* > + * Some USB Massstorage devices have issues, limiting this to 256 > + * fixes this. > + */ > + blk = 256; > #else > blk = 20; > #endif > -- > 2.20.1 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot