Date: Wed, 20 Feb 2019 20:18:30 +0100 From: Hans Petter Selasky <hps@selasky.org> To: Idwer Vollering <vidwer@gmail.com>, freebsd-usb@freebsd.org Subject: Re: quirky Sandisk SDCZ48-032G when using XHCI Message-ID: <26d963ed-4b9f-a9db-6d7d-ca4a802eb7ed@selasky.org> In-Reply-To: <CAPp9OrnndSfb%2BzWr2tRemostB12yJ-GmxZTPyhNx2wa0qHCKJw@mail.gmail.com> References: <CAPp9OrnndSfb%2BzWr2tRemostB12yJ-GmxZTPyhNx2wa0qHCKJw@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2/20/19 7:29 PM, Idwer Vollering wrote: > Running 13-CURRENT, r344363 on amd64. > > dmesg: > ugen1.3: <SanDisk Ultra> at usbus1 > umass0 on uhub4 > umass0: <SanDisk Ultra, class 0/0, rev 3.00/1.00, addr 2> on usbus1 > umass0: SCSI over Bulk-Only; quirks = 0xc100 > umass0:2:0: Attached to scbus2 > (probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 00 00 00 24 00 > (probe0:umass-sim0:0:0:0): CAM status: CCB request completed with an error > (probe0:umass-sim0:0:0:0): Retrying command, 3 more tries remain > (probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 00 00 00 24 00 > (probe0:umass-sim0:0:0:0): CAM status: CCB request completed with an error > (probe0:umass-sim0:0:0:0): Retrying command, 2 more tries remain > da0 at umass-sim0 bus 0 scbus2 target 0 lun 0 > da0: <SanDisk Ultra 1.00> Removable Direct Access SPC-4 SCSI device > da0: Serial Number <redacted> > da0: 400.000MB/s transfers > da0: 29328MB (60063744 512 byte sectors) > da0: quirks=0x2<NO_6_BYTE> > > > usbconfig -d ugen1.3 dump_all_desc: > ugen1.3: <SanDisk Ultra> at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) > pwr=ON (224mA) > > bLength = 0x0012 > bDescriptorType = 0x0001 > bcdUSB = 0x0300 > bDeviceClass = 0x0000 <Probed by interface class> > bDeviceSubClass = 0x0000 > bDeviceProtocol = 0x0000 > bMaxPacketSize0 = 0x0009 > idVendor = 0x0781 > idProduct = 0x5581 > bcdDevice = 0x0100 > iManufacturer = 0x0001 <SanDisk> > iProduct = 0x0002 <Ultra> > iSerialNumber = 0x0003 <redacted> > bNumConfigurations = 0x0001 > > Configuration index 0 > > bLength = 0x0009 > bDescriptorType = 0x0002 > wTotalLength = 0x002c > bNumInterfaces = 0x0001 > bConfigurationValue = 0x0001 > iConfiguration = 0x0000 <no string> > bmAttributes = 0x0080 > bMaxPower = 0x0070 > > Interface 0 > bLength = 0x0009 > bDescriptorType = 0x0004 > bInterfaceNumber = 0x0000 > bAlternateSetting = 0x0000 > bNumEndpoints = 0x0002 > bInterfaceClass = 0x0008 <Mass storage> > bInterfaceSubClass = 0x0006 > bInterfaceProtocol = 0x0050 > iInterface = 0x0000 <no string> > > Endpoint 0 > bLength = 0x0007 > bDescriptorType = 0x0005 > bEndpointAddress = 0x0081 <IN> > bmAttributes = 0x0002 <BULK> > wMaxPacketSize = 0x0400 > bInterval = 0x0000 > bRefresh = 0x0000 > bSynchAddress = 0x0000 > > Additional Descriptor > > bLength = 0x06 > bDescriptorType = 0x30 > bDescriptorSubType = 0x01 > RAW dump: > 0x00 | 0x06, 0x30, 0x01, 0x00, 0x00, 0x00 > > > Endpoint 1 > bLength = 0x0007 > bDescriptorType = 0x0005 > bEndpointAddress = 0x0002 <OUT> > bmAttributes = 0x0002 <BULK> > wMaxPacketSize = 0x0400 > bInterval = 0x0000 > bRefresh = 0x0000 > bSynchAddress = 0x0000 > > Additional Descriptor > > bLength = 0x06 > bDescriptorType = 0x30 > bDescriptorSubType = 0x0f > RAW dump: > 0x00 | 0x06, 0x30, 0x0f, 0x00, 0x00, 0x00 > > > Proposed, yet unimproving the CCB stall, diff: > Index: sys/dev/usb/quirk/usb_quirk.c > =================================================================== > --- sys/dev/usb/quirk/usb_quirk.c (revision 344363) > +++ sys/dev/usb/quirk/usb_quirk.c (working copy) > @@ -396,6 +396,8 @@ > UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_IGNORE_RESIDUE), > USB_QUIRK(SANDISK, SDCZ4_256, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB, > UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_IGNORE_RESIDUE), > + USB_QUIRK(SANDISK, SDCZ48_32, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB, > + UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_IGNORE_RESIDUE), > USB_QUIRK(SANDISK, SDDR31, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB, > UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_READ_CAP_OFFBY1), > USB_QUIRK(SANDISK, IMAGEMATE_SDDR289, 0x0000, 0xffff, > Index: sys/dev/usb/usbdevs > =================================================================== > --- sys/dev/usb/usbdevs (revision 344363) > +++ sys/dev/usb/usbdevs (working copy) > @@ -4067,6 +4067,7 @@ > product SANDISK SDCZ2_256 0x7104 Cruzer Mini 256MB > product SANDISK SDCZ4_128 0x7112 Cruzer Micro 128MB > product SANDISK SDCZ4_256 0x7113 Cruzer Micro 256MB > +product SANDISK SDCZ48_32 0x5581 Ultra 32GB > product SANDISK IMAGEMATE_SDDR289 0xb6ba ImageMate SDDR-289 > > /* Sanwa Electric Instrument Co., Ltd. products */ > Index: sys/cam/scsi/scsi_da.c > =================================================================== > --- sys/cam/scsi/scsi_da.c (revision 344363) > +++ sys/cam/scsi/scsi_da.c (working copy) > @@ -871,6 +871,10 @@ > {T_DIRECT, SIP_MEDIA_REMOVABLE, "16G SLC", "CHIPFANCIER", > "1.00"}, /*quirks*/ DA_Q_NO_RC16 > }, > + { > + {T_DIRECT, SIP_MEDIA_REMOVABLE, "SanDisk", "Ultra", > + "1.00"}, /*quirks*/ DA_Q_RETRY_BUSY|DA_Q_NO_6_BYTE > + }, > /* ATA/SATA devices over SAS/USB/... */ > { > /* Sandisk X400 */ > > I reasoned that scsi_da.c might benefit from "*" in the version field > ("1.00"), however that won't clear the stall either. > Could you upload the patch in a PR and assign it to freebsd-usb@freebsd.org ? --HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?26d963ed-4b9f-a9db-6d7d-ca4a802eb7ed>