From owner-freebsd-questions Sun Feb 3 20: 3:50 2002 Delivered-To: freebsd-questions@freebsd.org Received: from mail.visi.com (msp-65-30-224-230.mn.rr.com [65.30.224.230]) by hub.freebsd.org (Postfix) with ESMTP id D164237B419; Sun, 3 Feb 2002 20:03:42 -0800 (PST) Received: (from hrp@localhost) by mail.visi.com (8.11.3/8.11.3) id g1443a200921; Sun, 3 Feb 2002 22:03:36 -0600 (CST) (envelope-from hrp) From: Hal Peterson MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15454.2071.788157.885858@localhost.pinemarten.org.pri> Date: Sun, 3 Feb 2002 22:03:35 -0600 To: freebsd-questions@freebsd.org, freebsd-scsi@freebsd.org Subject: Microtech CameraMate has two LUNs. Now what? X-Mailer: VM 7.00 under 21.1 (patch 12) "Channel Islands" XEmacs Lucid Sender: owner-freebsd-questions@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Hoping for help getting a USB interface to SmartMedia working. I get ENXIO when I try to mount the SmartMedia as a filesystem. Here are the gory details. I have a kernel built from fresh RELENG_4 sources: FreeBSD melchett.pinemarten.org.pri 4.5-STABLE FreeBSD 4.5-STABLE #1: Sun Feb 3 16:35:37 CST 2002 hrp@melchett.pinemarten.org.pri:/usr/src/sys/compile/MELCHETT i386 I made a cvsup copy of the source tree yesterday, so it's quite recent. The first problem was to recognize the CameraMate as a umass device. That took a patch to umass_match_proto (stolen from the freebsd-scsi archive), so: ================================================================ --- umass.c.bak Sun Feb 3 16:31:27 2002 +++ umass.c Sun Feb 3 16:35:26 2002 @@ -629,6 +629,15 @@ umass_match_proto(struct umass_softc *sc return(UMATCH_VENDOR_PRODUCT); } + if (UGETW(dd->idVendor) == USB_VENDOR_MICROTECH + && UGETW(dd->idProduct) == USB_PRODUCT_MICROTECH_DPCM) { + /* the cameramate does not provide valid + class/subclass information. fake it. */ + sc->proto = PROTO_SCSI | PROTO_CBI; + sc->quirks |= NO_TEST_UNIT_READY | NO_START_STOP; + return(UMATCH_VENDOR_PRODUCT); + } + id = usbd_get_interface_descriptor(iface); if (id == NULL || id->bInterfaceClass != UCLASS_MASS) return(UMATCH_NONE); ================================================================ When I boot with the CameraMate attached, the right things appear to happen: uhci0: port 0x1080-0x109f irq 9 at device 7.2 on pci0 usb0: on uhci0 usb0: USB revision 1.0 uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 2 ports with 2 removable, self powered umass0: Microtech International, Inc DPCM-USB, rev 1.00/1.00, addr 2 uhid0: WACOM ET-0405-UV1.1-1, rev 1.00/1.11, addr 3, iclass 3/1 That agrees with usbdevs -v: Controller /dev/usb0: addr 1: self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 0x0100 port 1 addr 2: power 100 mA, config 1, DPCM-USB(0x0006), Microtech International, Inc(0x07af), rev 0x0100 port 2 addr 3: low speed, power 40 mA, config 1, ET-0405-UV1.1-1(0x0010), WACOM(0x056a), rev 0x0111 and camcontrol devlist agrees: at scbus0 target 0 lun 0 (pass0,da0) Trouble appears when I try "mount -t msdos /dev/da0 /mnt": msdos: /dev/da0: Device not configured the console bleats: (da0:umass-sim0:0:0:0): READ CAPACITY. CDB: 25 0 0 0 0 0 0 0 0 0 (da0:umass-sim0:0:0:0): NOT READY asc:3a,0 (da0:umass-sim0:0:0:0): Medium not present That is not true; I have an 8MB SmartMedia card plugged in. ================================================================ Here's what I think is going on. When I plug the CameraMate into a box running W2K, it shows up as *two* drives: the first one for the CompactFlash slot on the CameraMate, the second for the SmartMedia slot. When I read the drive properties with W2K, it tells me that the CompactFlash is (ScsiPort 2 Target 0 Lun 0), and that the SmartMedia is (ScsiPort 2 Target 0 Lun 1). Can it be that the umass driver is only reporting the first LUN, so the SmartMedia slot is invisible? If so, what do I do to fix it? Do I need to hack umass_bbb_get_max_lun? -- Hal Peterson Bloomington, MN, USA To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message