
Dear Steve Heckman,
Marek,
I've been working with Jim on this.
The latest u-boot code we tried (2012.07) does seem to be much faster WRT reading ext volumes from USB media. We were still able to eke out a bit more speed by removing the Test Unit Ready calls per Read/Write. In my experience, you only call Test Unit Ready during initialization of a device (e.g., SCSI) or after device reset.
We still haven't heard a reason why it is being done for each Read and Write operation. Was it put in to work around bad hardware?
I have zero idea, it was there ever since ... let's apply similar patch and see how it fares.
Thanks, Steve Heckman
On Sun, Aug 12, 2012 at 7:54 PM, Marek Vasut marex@denx.de wrote:
Dear Jim Shimer,
While tuning ext2load, we found that usb_test_unit_ready was being called every block read. We compared the usb block storage to the scsi block storage cmd_scsi.c, and found that the scsi device was only calling its scsi_setup_test_unit_ready() during scsi_can. It appears that usb_test_unit_ready() really only needs to be called once during usb_stor_scan(), via usb_stor_get_info(). Is there a particular reason usb_test_unit_ready is called for every block read, or do you think its
ok
to only call during usb_stor_scan()? We're finding this speeds up
ext2load
quite a bit.
Jim, did we get anywhere on this one ? Can you try with the new ext4 code in Wolfgangs' u-boot-master/ext4 branch?
Regards, Jim
Best regards, Marek Vasut
Best regards, Marek Vasut