Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 20 Jan 2013 08:37:28 -0800 (PST)
From:      "Waitman Gobble" <uzimac@da3m0n8t3r.com>
To:        Hans Petter Selasky <hselasky@c2i.net>
Cc:        freebsd-usb@freebsd.org
Subject:   Re: SDDR-289 slo-mo reboot
Message-ID:  <1358699848.19332@da3m0n8t3r.com>
In-Reply-To: <1358698733.18413@da3m0n8t3r.com>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.

--bound1358699848
Content-Type: text/plain; charset=iso-8859-15
Content-Transfer-Encoding: 7bit

Waitman Gobble <uzimac@da3m0n8t3r.com> wrote ..
> Hans Petter Selasky <hselasky@c2i.net> wrote ..
> > On Sunday 20 January 2013 09:06:51 Waitman Gobble wrote:
> > > Hi,
> > > 
> > > I have a SanDisk SDDR-289 hooked up through a pci-e interface card w/ VIA
> > > VL800 chipset With it plugged it, when I reboot it takes 5-6 minutes to
> > > shut down and 15 to come back up.
> > > 
> > > Jan 18 20:58:20 kamira kernel: ugen0.4 (: <SanDisk> at usbus0
> > > Jan 18 20:58:20 kamira kernel: umass2: <Bulk-In, Bulk-Out, Interface> on
> > > usbus0 Jan 18 20:58:20 kamira kernel: umass2:  SCSI over Bulk-Only; quirks
> > > = 0x4000 Jan 18 20:58:20 kamira kernel: umass2:7:2:-1: Attached to scbus7
> > > Jan 18 20:58:20 kamira kernel: da2 at umass-sim2 bus 2 scbus7 target 0 lun
> > > 0 Jan 18 20:58:20 kamira kernel: da2: <SanDisk uSD SDDR-289 1.00>
> > > Removable Direct Access SCSI-0
> > > 
> > > I don't see this model listed in sys/dev/usb/usbdevs, or
> > > sys/dev/usb/quirk/usb_quirk.c ..not sure if the 'quirks = 0x4000' refers
> > > to something. (?) I have a hunch the problem is related to missing quirks,
> > > but I'm not sure.
> > > 
> > > # uname -a
> > > FreeBSD kamira.waitman.net 9.1-RELEASE FreeBSD 9.1-RELEASE #3 r245537M: Sat
> > > Jan 19 13:41:28 PST 2013    
> > > root@kamira.waitman.net:/usr/obj/usr/src/sys/BURPLEX  amd64
> > 
> > There is currently some automagic detection of quirks. You can try to add your
> > device to the quirklist in sys/dev/usb/quirk/usb_quirk.c
> > 
> > --HPS
> 
> Hi,
> 
> Thanks. I did try just to see what happens, but it seems i need to have the device
> listed in usbdev and I wasn't sure how to list it.
> 
> for example, an older product with the same brand name, but conceivably a different
> architecture:
> 
> in usb_quirk.c
> 
> USB_QUIRK(ONSPEC2, IMAGEMATE_SDDR55, 0x0000, 0xffff,
>             UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN),
> 
> and usbdevs
> product ONSPEC2 IMAGEMATE_SDDR55        0xa103  ImageMate SDDR55
> 
> i'm not sure where i get this number:0xa103
> and if that's all that is needed?
> 
> 
> # usbconfig -u 0 -a 4 dump_curr_config_desc
> ugen0.4: <USB3.0 Card Reader SanDisk> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps)
> pwr=ON
> 
> 
>  Configuration index 0
> 
>     bLength = 0x0009 
>     bDescriptorType = 0x0002 
>     wTotalLength = 0x002c 
>     bNumInterfaces = 0x0001 
>     bConfigurationValue = 0x0001 
>     iConfiguration = 0x0004  <SDDR-289>
>     bmAttributes = 0x0080 
>     bMaxPower = 0x0064 
> 
>     Interface 0
>       bLength = 0x0009 
>       bDescriptorType = 0x0004 
>       bInterfaceNumber = 0x0000 
>       bAlternateSetting = 0x0000 
>       bNumEndpoints = 0x0002 
>       bInterfaceClass = 0x0008 
>       bInterfaceSubClass = 0x0006 
>       bInterfaceProtocol = 0x0050 
>       iInterface = 0x0005  <Bulk-In, Bulk-Out, Interface>
> 
>      Endpoint 0
>         bLength = 0x0007 
>         bDescriptorType = 0x0005 
>         bEndpointAddress = 0x0001  <OUT>
>         bmAttributes = 0x0002  <BULK>
>         wMaxPacketSize = 0x0400 
>         bInterval = 0x0000 
>         bRefresh = 0x0000 
>         bSynchAddress = 0x0000 
> 
>       Additional Descriptor
> 
>       bLength = 0x06
>       bDescriptorType = 0x30
>       bDescriptorSubType = 0x03
>        RAW dump: 
>        0x00 | 0x06, 0x30, 0x03, 0x00, 0x00, 0x00
> 
> 
>      Endpoint 1
>         bLength = 0x0007 
>         bDescriptorType = 0x0005 
>         bEndpointAddress = 0x0082  <IN>
>         bmAttributes = 0x0002  <BULK>
>         wMaxPacketSize = 0x0400 
>         bInterval = 0x0000 
>         bRefresh = 0x0000 
>         bSynchAddress = 0x0000 
> 
>       Additional Descriptor
> 
>       bLength = 0x06
>       bDescriptorType = 0x30
>       bDescriptorSubType = 0x03
>        RAW dump: 
>        0x00 | 0x06, 0x30, 0x03, 0x00, 0x00, 0x00
> 
> 
> 
> # usbconfig -u 0 -a 4 dump_device_desc
> ugen0.4: <USB3.0 Card Reader SanDisk> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps)
> pwr=ON
> 
>   bLength = 0x0012 
>   bDescriptorType = 0x0001 
>   bcdUSB = 0x0300 
>   bDeviceClass = 0x0000 
>   bDeviceSubClass = 0x0000 
>   bDeviceProtocol = 0x0000 
>   bMaxPacketSize0 = 0x0009 
>   idVendor = 0x0781 
>   idProduct = 0xb6ba 
>   bcdDevice = 0x0124 
>   iManufacturer = 0x0001  <SanDisk>
>   iProduct = 0x0002  <USB3.0 Card Reader>
>   iSerialNumber = 0x0003  <11150005027>
>   bNumConfigurations = 0x0001 
> 
> 
> Thank you,
> 
> 
> -- 
> Waitman Gobble
> San Jose California USA


OOPs, I think I answered my own question..

I put this in usbdevs, based on the output of usbconfig above.


product SANDISK IMAGEMATE_SDDR289		0xb6ba	ImageMate SDDR-289


then in 
usb_quirk.c

USB_QUIRK(SANDISK, IMAGEMATE_SDDR289, 0x0000, 0xffff,
     UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY | UQ_MSC_NO_GETMAXLUN),


Not sure if it's correct but I think maybe a starting point to experiment.

Thanks,




-- 
Waitman Gobble
San Jose California USA


--bound1358699848--




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