I have a USB thumb drive in my stash which I often use for installer
images, etc.  It worked fine in OpenBSD 6.6 and older, identifying
like this:
umass0 at uhub0 port 9 configuration 1 interface 0 "Generic Mass
Storage" rev 2.00/1.07 addr 4
umass0: using SCSI over Bulk-Only
scsibus6 at umass0: 2 targets, initiator 0
sd1 at scsibus6 targ 1 lun 0: <FLASH, Drive AU_USB20, 8.07> removable
serial.058f6387000000011717
sd1: 1987MB, 512 bytes/sector, 4069376 sectors

In 6.7, however, it fails to initialize:
umass0 at uhub0 port 1 configuration 1 interface 0 "Generic Mass
Storage" rev 2.00/1.07 addr 2
umass0: using SCSI over Bulk-Only
scsibus5 at umass0: 2 targets, initiator 0
probe(umass0:1:0): Check Condition (error 0) on opcode 0x0
sd1 at scsibus5 targ 1 lun 0: <, , > serial.058f6387000000011717
[ no capacity line is printed ]

While sd1 is listed, attempting to access it fails.  I actually
discovered this by dd'ing install67.fs to it; it loaded bsd.rd just
fine but then couldn't read it as an installation source.

I've confirmed this behavior (works in 6.6, fails in 6.7) on four
different systems, i386 and amd64, on USB 1.1, 2.0, and 3.0 ports.
Other drives still work, so it appears to be an issue with this
specific model.  A 6.8-beta snapshot from mid-September also fails in
the same way.

Here is lsusb output for the device:
====
Bus 000 Device 004: ID 058f:6387 Alcor Micro Corp. Flash Drive
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x058f Alcor Micro Corp.
  idProduct          0x6387 Flash Drive
  bcdDevice            1.07
  iManufacturer           1 Generic
  iProduct                2 Mass Storage
  iSerial                 3 I0904000000000011717
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0000
  (Bus Powered)
====

It's a cheap drive which could well be non-compliant.  Still, it
worked fine before (and also works in other OSes)...

-Andrew

Reply via email to