Dear Stefan Herbrechtsmeier, > The commit 5dd95cf93dfffa1d19a1928990852aac9f55b9d9 'usb_storage: > Fix EHCI "out of buffer pointers" with CD-ROM' introduce a bug in > usb_storage as it wrongly assumes that every transfer can use 4k > per qt_buffer. This is wrong if the start address of the data > is not 4k aligned and leads to 'EHCI timed out on TD' messages > because of 'out of buffer pointers' in ehci_td_buffer function. > > Cc: Marek Vasut <ma...@denx.de> > Signed-off-by: Stefan Herbrechtsmeier <ste...@herbrechtsmeier.net>
Ok, first I have to admit I broke my promise to look into this ASAP, sorry about it :-( Just curious, but shouldn't it be ((4096 * 5) / dev_desc->blk_sz) - 1 ? > --- > common/usb_storage.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/common/usb_storage.c b/common/usb_storage.c > index faad237..612a553 100644 > --- a/common/usb_storage.c > +++ b/common/usb_storage.c > @@ -1416,10 +1416,10 @@ int usb_stor_get_info(struct usb_device *dev, > struct us_data *ss, USB_STOR_PRINTF("partype: %d\n", dev_desc->part_type); > > /* > - * The U-Boot EHCI driver cannot handle more than 4096 * 5 bytes in a > - * transfer without running itself out of qt_buffers. > + * The U-Boot EHCI driver cannot handle more than 4096 * 4 bytes in a > + * unaligned transfer without running itself out of qt_buffers. > */ > - ss->max_xfer_blk = (4096 * 5) / dev_desc->blksz; > + ss->max_xfer_blk = (4096 * 4) / dev_desc->blksz; > > init_part(dev_desc); Best regards, Marek Vasut _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot