Subject: SanDisk imagemate USB compactflash reader
To: None <>
From: Grant Beattie <>
List: current-users
Date: 11/03/2001 13:16:24
Hi all,

I'm attempting to get a SanDisk ImageMate USB compactflash reader
working with -current (as of a few days ago). This is the older
sddr-05a model.

Looking at some linux kernel source, it appears this model uses SCSI
over CBI (I believe the newer ones use SCSI over BBB-P, as per

This is what I've got in umass.c:

	if (vendor == USB_VENDOR_SANDISK &&
	    product == USB_PRODUCT_SANDISK_SDDR05A) {
		sc->wire_proto = WPROTO_CBI;
		sc->cmd_proto = CPROTO_SCSI;
		sc->subclass = UISUBCLASS_SCSI;
		sc->protocol = UIPROTO_MASS_CBI;

kernel and usb info is below.

any help would be appreciated. btw, does this belong here, or


umass0 at uhub0 port 1 configuration 1 interface 0
umass0: SanDisk Corporation SanDisk USB ImageMate, rev 1.00/2.00, addr 2
umass0: using SCSI over CBI
scsibus0 at umass0: 2 targets, 1 luns per target
scsibus0: waiting 2 seconds for devices to settle...
probe(umass0:0:1:0): invalid return code from adapter: 3
umass0: CBI bulk-in stall clear failed, TIMEOUT
umass0: CBI bulk-out stall clear failed, STALLED
probe(umass0:0:1:0): invalid return code from adapter: 3

# usbdevs -v
Controller /dev/usb0:
addr 1: self powered, config 1, UHCI root hub(0x0000), Intel(0x8086), rev 1.00
 port 1 addr 2: power 100 mA, config 1, ImageMate SDDR-05a(0x0001), SanDisk Corp(0x0781), rev 2.00
 port 2 addr 3: low speed, power 100 mA, config 1, Microsoft IntelliMouse® Optical(0x0039), Microsoft(0x045e), rev 1.21

# usbctl -a 2
DEVICE addr 2
DEVICE descriptor:
bLength=18 bDescriptorType=device(1) bcdUSB=1.00 bDeviceClass=0 bDeviceSubClass=0
bDeviceProtocol=0 bMaxPacketSize=64 idVendor=0x0781 idProduct=0x0001 bcdDevice=200
iManufacturer=1(SanDisk Corporation) iProduct=2(SanDisk USB ImageMate) iSerialNumber=0() bNumConfigurations=1

CONFIGURATION descriptor 0:
bLength=9 bDescriptorType=config(2) wTotalLength=39 bNumInterface=1
bConfigurationValue=1 iConfiguration=3(Default) bmAttributes=80 bMaxPower=100 mA

INTERFACE descriptor 0:
bLength=9 bDescriptorType=interface(4) bInterfaceNumber=0 bAlternateSetting=0
bNumEndpoints=3 bInterfaceClass=255 bInterfaceSubClass=0
bInterfaceProtocol=0 iInterface=4(Mass Storage)

ENDPOINT descriptor:
bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=1-out
bmAttributes=bulk wMaxPacketSize=64 bInterval=0

ENDPOINT descriptor:
bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=2-in
bmAttributes=bulk wMaxPacketSize=64 bInterval=0

ENDPOINT descriptor:
bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=3-in
bmAttributes=interrupt wMaxPacketSize=2 bInterval=255

current configuration 1


Get NetBSD:            ``Of course it runs NetBSD.''