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>
