Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Mar 2002 18:23:45 -0800 (PST)
From:      Pete Carah <pete@portable.altadena.net>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   kern/36402: Another Pen drive quirk
Message-ID:  <200203280223.g2S2Njr00520@portable.altadena.net>

next in thread | raw e-mail | index | archive | help

>Number:         36402
>Category:       kern
>Synopsis:       Another Pen drive quirk
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Wed Mar 27 18:30:01 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Pete Carah
>Release:        FreeBSD 4.5-STABLE i386
>Organization:
Altadena Internet
>Environment:
System: FreeBSD portable.altadena.net 4.5-STABLE FreeBSD 4.5-STABLE #0: Wed Mar 27 16:08:26 PST 2002 pete@portable.altadena.net:/usr/src/sys/compile/PORT2 i386


>Description:
	Yet another usb device that doesn't like 6-byte commands etc
-------------------
Mar 26 15:49:22 portable /kernel: da0: < USB DISK 1.05> Removable Direct Access SCSI-0 device 
Mar 26 15:49:22 portable /kernel: da0: 650KB/s transfers
Mar 26 15:49:22 portable /kernel: da0: 124MB (253952 512 byte sectors: 64H 32S/T 124C)
Mar 26 15:52:16 portable /kernel: umass0: BBB reset failed, TIMEOUT
Mar 26 15:52:21 portable /kernel: umass0: BBB bulk-in clear stall failed, TIMEOUT
Mar 26 15:53:01 portable /kernel: umass0: BBB bulk-in clear stall failed, TIMEOUT
Mar 26 15:53:06 portable /kernel: umass0: BBB bulk-out clear stall failed, TIMEOUT
Mar 26 15:53:16 portable /kernel: umass0: BBB reset failed, TIMEOUT
Mar 26 15:53:21 portable /kernel: umass0: BBB bulk-in clear stall failed, TIMEOUT
Mar 26 15:53:26 portable /kernel: umass0: BBB bulk-out clear stall failed, TIMEOUT
Mar 26 15:53:36 portable /kernel: umass0: BBB reset failed, TIMEOUT
Mar 26 15:53:41 portable /kernel: umass0: BBB bulk-in clear stall failed, TIMEOUT
Mar 26 15:53:46 portable /kernel: umass0: BBB bulk-out clear stall failed, TIMEOUT
Mar 26 15:53:46 portable /kernel: da0: reading primary partition table: error reading fsbn 0
Mar 26 15:53:56 portable /kernel: umass0: BBB reset failed, TIMEOUT
Mar 26 15:54:01 portable /kernel: umass0: BBB bulk-in clear stall failed, TIMEOUMar 26 15:52:26 portable /kernel: umass0: BBB bulk-out clear stall failed, TIMEOUT
Mar 26 15:52:36 portable /kernel: umass0: BBB reset failed, TIMEOUT
Mar 26 15:52:41 portable /kernel: umass0: BBB bulk-in clear stall failed, TIMEOUT
Mar 26 15:52:46 portable /kernel: umass0: BBB bulk-out clear stall failed, TIMEOUT
Mar 26 15:52:56 portable /kernel: umass0: BBB reset failed, TIMEOUT
T
Mar 26 15:54:06 portable /kernel: umass0: BBB bulk-out clear stall failed, TIMEOUT
Mar 26 15:54:06 portable /kernel: (da0:umass-sim0:0:0:0): Synchronize cache failed, status == 0x4, scsi status == 0x0
Mar 26 15:54:16 portable /kernel: umass0: BBB reset failed, TIMEOUT
Mar 26 15:54:21 portable /kernel: umass0: BBB bulk-in clear stall failed, TIMEOUT
.....
-------------------
>How-To-Repeat:
	Buy a Pen Drive (www.pendrive.com).  Try it.
>Fix:

*** scsi_da.c.orig      Fri Feb 22 18:37:02 2002
--- scsi_da.c   Wed Mar 27 16:57:00 2002
***************
*** 317,322 ****
--- 317,329 ----
                {T_DIRECT, SIP_MEDIA_REMOVABLE, "NO BRAND", "PEN DRIVE", "*"},
                /*quirks*/ DA_Q_NO_6_BYTE|DA_Q_NO_SYNC_CACHE
        },
+         {
+               /*
+                * Pen Drive
+                */
+               {T_DIRECT, SIP_MEDIA_REMOVABLE, "", "USB DISK", "*"},
+               /*quirks*/ DA_Q_NO_6_BYTE|DA_Q_NO_SYNC_CACHE
+       },
        {
                /*
                 * FujiFilm Camera

	
================================================================
Actually it might be interesting just to try those two flags on *any*
usb-connected DA device, since they seem to be needed for most solid-state
devices and many real disks.  That would cut back a bunch on the quirk 
table, and especially on the need to figure out a device-id and recompile the 
kernel each time you try something new...  (or arbitrarily set the appropriate
flag on any device when a 6-byte read or a sync_cache gives a command error,
then retry).  It isn't clear from /var/log/messages just what error is
reported for this case; full sense isn't in the "read" log message, only
a timeout.  
(sync-cache is clearer...)

The device works fine with my suggested diff (except that it single-threads
rather badly, but one can live with that).  Cool having a 128mb USB "disk" 
that isn't much bigger than the plug.

-- Pete
>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200203280223.g2S2Njr00520>