misc/143448: QUIRK: JMicron JM20336 USB/SATA bridge controller

Karl Lehenbauer karl-quirk at flightaware.com
Mon Feb 1 18:40:02 UTC 2010


>Number:         143448
>Category:       misc
>Synopsis:       QUIRK: JMicron JM20336 USB/SATA bridge controller
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Mon Feb 01 18:40:01 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Karl Lehenbauer
>Release:        8.0-STABLE
>Organization:
FlightAware, LLC
>Environment:
FreeBSD cfood.hou.flightaware.com 8.0-STABLE FreeBSD 8.0-STABLE #1 r+a799130: Fri Jan 29 11:25:20 CST 2010     root at cfood.hou.flightaware.com:/usr/obj/usr/src/sys/GENERIC  amd64

>Description:
There is already a quirk in place for the JMicron JM20337.  This creates the same quirk for the JMicron JM20336.

With this quirk defined we were able to successfully copy 5.7 TB of data to a dual-2TB external enclosure using zfs with compression enabled.
>How-To-Repeat:
Try to use zfs with a USB-SATA controller based on the JMicron JM20336.  You'll get the illegal request for SYNCHRONIZE CACHE error.
>Fix:
Add a quirk entry for the JM20336.  (Patch attached.)

Patch attached with submission follows:

diff --git a/sys/dev/usb/quirk/usb_quirk.c b/sys/dev/usb/quirk/usb_quirk.c
index 8405282..08bb849 100644
--- a/sys/dev/usb/quirk/usb_quirk.c
+++ b/sys/dev/usb/quirk/usb_quirk.c
@@ -225,6 +225,9 @@ static struct usb_quirk_entry usb_quirks[USB_DEV_QUIRKS_MAX] = {
 	USB_QUIRK(IOMEGA, ZIP100, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
 	    UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_TEST_UNIT_READY), /* XXX ZIP drives can also use ATAPI */
+	USB_QUIRK(JMICRON, JM20336, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_SYNC_CACHE),
 	USB_QUIRK(JMICRON, JM20337, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
 	    UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_SYNC_CACHE),
diff --git a/sys/dev/usb/usbdevs b/sys/dev/usb/usbdevs
index f2130a0..4454f36 100644
--- a/sys/dev/usb/usbdevs
+++ b/sys/dev/usb/usbdevs
@@ -1673,6 +1673,7 @@ product JABLOTRON PC60B		0x0001	PC-60B
 product JATON EDA		0x5704	Ethernet
 
 /* JMicron products */
+product JMICRON JM20336		0x2336	USB to ATA/ATAPI Bridge
 product JMICRON JM20337		0x2338	USB to ATA/ATAPI Bridge
 
 /* JVC products */


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


More information about the freebsd-bugs mailing list