Author: wmb Date: 2007-12-06 00:12:36 +0100 (Thu, 06 Dec 2007) New Revision: 751
Modified: dev/usb2/device/storage/scsidisk.fth Log: OLPC trac 5354 - retry read-capacity command for USB mass storage devices that need extra startup time.
Modified: dev/usb2/device/storage/scsidisk.fth =================================================================== --- dev/usb2/device/storage/scsidisk.fth 2007-12-05 03:44:34 UTC (rev 750) +++ dev/usb2/device/storage/scsidisk.fth 2007-12-05 23:12:36 UTC (rev 751) @@ -67,11 +67,18 @@ \ The SCSI-2 standard requires disk devices to implement \ the "read capacity" command.
- 8 read-capacity-cmd 0a short-data-command if ( ) - true - else ( adr ) - dup 4 + 4c@ swap 4c@ 1+ false - then + \ Retry it a few times just in case that helps + d# 20 0 do + 8 read-capacity-cmd 0a short-data-command 0= if ( ) + dup 4 + 4c@ swap 4c@ 1+ false + unloop exit + then + d# 200 ms + loop + + \ If it fails, we just guess. Some devices violate the spec and + \ fail to implement read_capacity + d# 512 h# ffffffff false ;
external