From ecu@hsc.fr Thu May 1 13:59:27 2003 Return-Path: Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B800E37B401 for ; Thu, 1 May 2003 13:59:27 -0700 (PDT) Received: from itesec.hsc.fr (itesec.hsc.fr [192.70.106.33]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5B2C943F93 for ; Thu, 1 May 2003 13:59:26 -0700 (PDT) (envelope-from ecu@hsc.fr) Received: from silver.hsc.fr (silver.hsc.fr [192.70.106.98]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (Client CN "silver.hsc.fr", Issuer "HSC CA" (verified OK)) by itesec.hsc.fr (Postfix) with ESMTP id 7D5C82105B for ; Thu, 1 May 2003 22:59:24 +0200 (CEST) Received: by silver.hsc.fr (Postfix, from userid 1000) id 534D45850; Thu, 1 May 2003 22:59:22 +0200 (CEST) Message-Id: <20030501205922.534D45850@silver.hsc.fr> Date: Thu, 1 May 2003 22:59:22 +0200 (CEST) From: Nicolas Jombart Reply-To: Nicolas Jombart To: FreeBSD-gnats-submit@freebsd.org Cc: Subject: Quirks for i-Bead MP3 player/USB key X-Send-Pr-Version: 3.113 X-GNATS-Notify: >Number: 51675 >Category: kern >Synopsis: Quirks for i-Bead MP3 player/USB key >Confidential: no >Severity: non-critical >Priority: medium >Responsible: njl >State: closed >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Thu May 01 14:00:23 PDT 2003 >Closed-Date: Thu Aug 21 22:45:57 PDT 2003 >Last-Modified: Thu Aug 21 22:45:57 PDT 2003 >Originator: Nicolas Jombart >Release: FreeBSD 5.0-CURRENT i386 >Organization: >Environment: System: FreeBSD silver.hsc.fr 5.0-CURRENT FreeBSD 5.0-CURRENT #27: Thu May 1 22:25:24 CEST 2003 ecu@silver.hsc.fr:/usr/obj/usr/src/sys/SILVER i386 >Description: I have an i-Bead MP3 player, which is seen as a USB disk. http://www.i-bead.co.kr/ (exact model is EXATELECOM i-BEAD100) Errors when plugging the device are : May 1 12:56:58 silver kernel: umass0: EXATEL , Inc. I-BEAD Multi Player, rev 1.10/0.01, addr 2 May 1 12:56:58 silver kernel: umass0: Get Max Lun not supported (IOERROR) May 1 12:56:58 silver kernel: da0 at umass-sim0 bus 0 target 0 lun 0 May 1 12:56:58 silver kernel: da0: Removable Direct Access SCSI-4 device May 1 12:56:58 silver kernel: da0: 1.000MB/s transfers May 1 12:56:58 silver kernel: da0: 122MB (249857 512 byte sectors: 64H 32S/T 122C) May 1 12:57:03 silver kernel: umass0: BBB reset failed, IOERROR May 1 12:57:03 silver kernel: umass0: BBB bulk-in clear stall failed, IOERROR May 1 12:57:03 silver kernel: umass0: BBB bulk-out clear stall failed, IOERROR May 1 12:57:08 silver kernel: umass0: BBB reset failed, IOERROR (many times) May 1 12:57:09 silver kernel: (da0:umass-sim0:0:0:0): Synchronize cache failed, status == 0x4, scsi status == 0x0 [12:57] root@silver # usbdevs -v Controller /dev/usb0: addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 1.00 port 1 addr 2: full speed, self powered, config 1, product 0x8008(0x8008), Sigmatel(0x066f), rev 0.01 port 2 powered Controller /dev/usb1: addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 1.00 port 1 powered port 2 powered After compiling with quirks, I can mount the drive and don't get error or panic when unplugging anymore. [22:39] root@silver # camcontrol inquiry da0 pass0: Removable Direct Access SCSI-4 device pass0: Serial Number pass0: 1.000MB/s transfers Logs when the device is ok are : May 1 22:38:49 silver kernel: umass0: EXATEL , Inc. I-BEAD Multi Player, rev 1.10/0.01, addr 2 May 1 22:38:49 silver kernel: umass0: SCSI over Bulk-Only; quirks = 0x0010 May 1 22:38:49 silver kernel: umass0: Get Max Lun not supported (IOERROR) May 1 22:38:49 silver kernel: umass0:0:0:-1: Attached to scbus0 May 1 22:38:49 silver kernel: da0 at umass-sim0 bus 0 target 0 lun 0 May 1 22:38:49 silver kernel: da0: Removable Direct Access SCSI-4 device May 1 22:38:49 silver kernel: da0: 1.000MB/s transfers May 1 22:38:49 silver kernel: da0: 122MB (249857 512 byte sectors: 64H 32S/T 122C) (...) May 1 22:39:13 silver kernel: umass0: at uhub0 port 2 (addr 2) disconnected May 1 22:39:13 silver kernel: (da0:umass-sim0:0:0:0): lost device May 1 22:39:13 silver kernel: (da0:umass-sim0:0:0:0): removing device entry May 1 22:39:13 silver kernel: umass0: detached >How-To-Repeat: Plug this device with clean kernel. >Fix: In fact, this just comes from many many tries (may need optimization) : --- scsi_da.c Thu May 1 11:40:11 2003 +++ /usr/src/sys/cam/scsi/scsi_da.c Thu May 1 22:44:14 2003 @@ -463,6 +463,14 @@ */ {T_DIRECT, SIP_MEDIA_REMOVABLE, "SanDisk", "ImageMate*", "*"}, /*quirks*/ DA_Q_NO_6_BYTE + }, + { + /* + * EXATEL i-BEAD MP3 player/USB key + * + */ + {T_DIRECT, SIP_MEDIA_REMOVABLE, "EXATEL", "i-BEAD*", "*"}, + DA_Q_NO_6_BYTE | DA_Q_NO_SYNC_CACHE } }; --- usbdevs.h Thu May 1 18:25:06 2003 +++ /usr/src/sys/dev/usb/usbdevs.h Thu May 1 18:27:24 2003 @@ -1032,6 +1032,9 @@ /* Siemens products */ #define USB_PRODUCT_SIEMENS_SPEEDSTREAM 0x1001 /* SpeedStream USB */ +/* Sigmatel */ +#define USB_PRODUCT_SIGMATEL_IBEAD 0x8008 /* i-BEAD MP3 player */ + /* SIIG products */ #define USB_PRODUCT_SIIG_DIGIFILMREADER 0x0004 /* DigiFilm-Combo Reader */ --- umass.c Thu May 1 14:52:11 2003 +++ /usr/src/sys/dev/usb/umass.c Thu May 1 22:20:39 2003 @@ -379,6 +379,10 @@ UMASS_PROTO_ATAPI | UMASS_PROTO_CBI_I, FORCE_SHORT_INQUIRY }, + { USB_VENDOR_SIGMATEL, USB_PRODUCT_SIGMATEL_IBEAD, RID_WILDCARD, + UMASS_PROTO_SCSI | UMASS_PROTO_BBB, + SHUTTLE_INIT + }, { VID_EOT, PID_EOT, RID_EOT, 0, 0 } }; >Release-Note: >Audit-Trail: Responsible-Changed-From-To: freebsd-bugs->njl Responsible-Changed-By: johan Responsible-Changed-When: Tue May 6 12:24:33 PDT 2003 Responsible-Changed-Why: Over to quirks maintainer. http://www.freebsd.org/cgi/query-pr.cgi?pr=51675 State-Changed-From-To: open->feedback State-Changed-By: njl State-Changed-When: Wed May 14 16:24:58 PDT 2003 State-Changed-Why: What dmesg do you get if you leave the NO_SYNC_CACHE quirk out? Does it stop working? What about if you remove the USB quirk entry? My feeling is that only the NO_6_BYTE quirk is needed. http://www.freebsd.org/cgi/query-pr.cgi?pr=51675 From: Nicolas Jombart To: Nate Lawson Cc: FreeBSD-gnats-submit@freebsd.org, ecu@ipv42.net Subject: Re: kern/51675: Quirks for i-Bead MP3 player/USB key Date: Sun, 18 May 2003 10:50:52 +0200 On Wed, May 14, 2003 at 04:25:44PM -0700, Nate Lawson wrote: > What dmesg do you get if you leave the NO_SYNC_CACHE quirk out? Does it > stop working? What about if you remove the USB quirk entry? My feeling is > that only the NO_6_BYTE quirk is needed. With only NO_6_BYTE : umass0: EXATEL , Inc. I-BEAD Multi Player, rev 1.10/0.01, addr 2 umass0: SCSI over Bulk-Only; quirks = 0x0010 umass0: Get Max Lun not supported (IOERROR) umass0:0:0:-1: Attached to scbus0 da0 at umass-sim0 bus 0 target 0 lun 0 da0: Removable Direct Access SCSI-4 device da0: 1.000MB/s transfers da0: 122MB (249857 512 byte sectors: 64H 32S/T 122C) umass0: BBB reset failed, IOERROR umass0: BBB bulk-in clear stall failed, IOERROR umass0: BBB bulk-out clear stall failed, IOERROR (da0:umass-sim0:0:0:0): Synchronize cache failed, status == 0x10, scsi status == 0x0 umass0: BBB reset failed, IOERROR umass0: BBB bulk-in clear stall failed, IOERROR umass0: BBB bulk-out clear stall failed, IOERROR umass0: BBB reset failed, IOERROR umass0: BBB bulk-in clear stall failed, IOERROR umass0: BBB bulk-out clear stall failed, IOERROR umass0: BBB reset failed, IOERROR umass0: BBB bulk-in clear stall failed, IOERROR umass0: BBB bulk-out clear stall failed, IOERROR umass0: BBB reset failed, IOERROR umass0: BBB bulk-in clear stall failed, IOERROR umass0: BBB bulk-out clear stall failed, IOERROR umass0: BBB reset failed, IOERROR umass0: BBB bulk-in clear stall failed, IOERROR umass0: BBB bulk-out clear stall failed, IOERROR umass0: BBB reset failed, IOERROR umass0: BBB bulk-in clear stall failed, IOERROR umass0: BBB bulk-out clear stall failed, IOERROR Opened disk da0 -> 5 (this sequence 2 more times) umass0: BBB bulk-in clear stall failed, IOERROR umass0: BBB bulk-out clear stall failed, IOERROR umass0: BBB reset failed, IOERROR umass0: BBB bulk-in clear stall failed, IOERROR umass0: at uhub0 port 2 (addr 2) disconnected (da0:umass-sim0:0:0:0): lost device umass0: detached (null): BBB bulk-out clear stall failed, CANCELLED (da0:umass-sim0:0:0:0): removing device entry Opened disk da0 -> 5 panic: (null): Unknown state 1 syncing disks, buffers remaining... 1396 1396 1396 1396 1396 1396 1396 1396 1396 1 396 1396 1396 1396 1396 1396 1396 1396 1396 1396 1396 giving up on 1292 buffers With only NO_SYNC_CACHE : umass0: EXATEL , Inc. I-BEAD Multi Player, rev 1.10/0.01, addr 2 umass0: SCSI over Bulk-Only; quirks = 0x0010 umass0: Get Max Lun not supported (IOERROR) umass0:0:0:-1: Attached to scbus0 da0 at umass-sim0 bus 0 target 0 lun 0 da0: Removable Direct Access SCSI-4 device da0: 1.000MB/s transfers da0: 122MB (249857 512 byte sectors: 64H 32S/T 122C) umass0: BBB reset failed, IOERROR umass0: BBB bulk-in clear stall failed, IOERROR umass0: BBB bulk-out clear stall failed, IOERROR (ten times) Opened disk da0 -> 5 umass0: at uhub0 port 2 (addr 2) disconnected (da0:umass-sim0:0:0:0): lost device (da0:umass-sim0:0:0:0): removing device entry umass0: detached => system OK but device don't work Some new info : From time to time, with SHUTTLE_INIT, NO_6_BYTE and NO_SYNC_CACHE, in normal operations, I get these messages : May 14 09:46:15 silver kernel: usbd_start_next: error=5 => can't umount, etc. Freeze if I leave out the device. Or : May 15 17:36:18 silver kernel: umass0: BBB reset failed, IOERROR May 15 17:36:18 silver kernel: umass0: BBB bulk-in clear stall failed, IOERROR May 15 17:36:18 silver kernel: umass0: BBB bulk-out clear stall failed, IOERROR May 15 17:36:18 silver kernel: umass0: Invalid CSW: tag 545 should be 546 May 15 17:36:18 silver kernel: umass0: BBB reset failed, IOERROR May 15 17:36:19 silver kernel: umass0: BBB bulk-in clear stall failed, IOERROR May 15 17:36:19 silver kernel: umass0: BBB bulk-out clear stall failed, IOERROR May 15 17:36:23 silver kernel: umass0: BBB reset failed, IOERROR May 15 17:36:23 silver kernel: umass0: BBB bulk-in clear stall failed, IOERROR May 15 17:36:24 silver kernel: umass0: BBB bulk-out clear stall failed, IOERROR May 15 17:36:28 silver kernel: umass0: BBB reset failed, IOERROR May 15 17:36:28 silver kernel: umass0: BBB bulk-in clear stall failed, IOERROR May 15 17:36:29 silver kernel: umass0: BBB bulk-out clear stall failed, IOERROR May 15 17:36:34 silver kernel: umass0: BBB reset failed, IOERROR May 15 17:36:34 silver kernel: umass0: BBB bulk-in clear stall failed, IOERROR May 15 17:36:34 silver kernel: umass0: BBB bulk-out clear stall failed, IOERROR => after umount -> freeze These errors are non reproductible, they only occur "from time to time". Thanks, Nicolas. From: Nate Lawson To: Nicolas Jombart Cc: freebsd-gnats-submit@freebsd.org Subject: Re: kern/51675 Date: Fri, 8 Aug 2003 11:41:39 -0700 (PDT) Please try -current or -stable and see which quirks are still needed. I think the NO_6_BYTE can go away. After you test, I'll commit whatever is still needed. From: Nicolas Jombart To: Nate Lawson Cc: freebsd-gnats-submit@freebsd.org Subject: Re: kern/51675 Date: Wed, 20 Aug 2003 19:28:30 +0200 Hi Nate, On Fri, Aug 08, 2003 at 11:41:39AM -0700, Nate Lawson wrote: > Please try -current or -stable and see which quirks are still needed. I > think the NO_6_BYTE can go away. After you test, I'll commit whatever is > still needed. The NO_6_BYTE can go away. I tested on a fresh -CURRENT system, and I still need DA_Q_NO_SYNC_CACHE : diff -ruN scsi/scsi_da.c /usr/src/sys/cam/scsi/scsi_da.c --- scsi/scsi_da.c Wed Aug 20 18:41:14 2003 +++ /usr/src/sys/cam/scsi/scsi_da.c Wed Aug 20 19:09:09 2003 @@ -364,6 +364,14 @@ {T_DIRECT, SIP_MEDIA_REMOVABLE, "MITSUMI", "USB FDD", "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE }, + { + /* + * EXATEL i-BEAD MP3 player/USB key + * + */ + {T_DIRECT, SIP_MEDIA_REMOVABLE, "EXATEL", "i-BEAD*", "*"}, + DA_Q_NO_SYNC_CACHE + }, #endif /* DA_OLD_QUIRKS */ }; Logs without any quirks in scsi_da are the same as in the beginning of the PR. And of course, SHUTTLE_INIT in dev/usb. The logs with this and DA_OLD_QUIRKS is : Aug 20 19:05:12 silver kernel: umass0: EXATEL , Inc. I-BEAD MultiPlayer, rev 1.10/0.01, addr 2 Aug 20 19:05:12 silver kernel: umass0: Get Max Lun not supported (IOERROR) Aug 20 19:05:13 silver kernel: da0 at umass-sim0 bus 0 target 0 lun 0 Aug 20 19:05:13 silver kernel: da0: Removable Direct Access SCSI-4 device Aug 20 19:05:13 silver kernel: da0: 1.000MB/s transfers Aug 20 19:05:13 silver kernel: da0: 122MB (249857 512 byte sectors: 64H 32S/T 122C) I'm still confused about "Get Max Lun not supported", but it works. Thanks! State-Changed-From-To: feedback->closed State-Changed-By: njl State-Changed-When: Thu Aug 21 22:45:31 PDT 2003 State-Changed-Why: A slightly modified version of the patch has been committed to 5.x and will be mfcd in 3 days. http://www.freebsd.org/cgi/query-pr.cgi?pr=51675 >Unformatted: