staf...@shangtai.net (=?UTF-8?B?U3RhZmZhbiBUaG9tw6lu?=) writes:

>While I was fiddling around with it, I booted a FreeBSD-14 thumbdrive 
>and there it does work as well, and their driver helpfully tells you 
>what quirks it uses. This is what I found:

>umass quirks: 0xc104
>0x0004 - NO_START_STOP, "The drive does not support START STOP"
>0x0100 - NO_GETMAXLUN, "No GetMaxLun call"
>0x4000 - NO_SYNCHRONIZE_CACHE, "Deice cannot handle a SCSI synchronize 
>cache command."
>0x8000 - NO_PREVENT_ALLOW, "Device does not support PREVENT/ALLOW MEDIUM 
>REMOVAL"

>da: quirks: 0x2
>0x2 NO_6_BYTE - use SBC (10-byte) commands instead of RBC (6-byte) commands


There is sys/dev/usb/umass_quirks.c.

These quirks exist:

PQUIRK_NOSYNCCACHE (like NO_SYNCHRONIZE_CACHE)
PQUIRK_NODOORLOCK (like NO_PREVENT_ALLOW)
PQUIRK_ONLYBIG (like NO_6_BYTE)

We don't do GetMaxLun.

There seems to be nothing yet for NO_START_STOP. There is

PQUIRK_START

that forces a start at attach time. But at open time when
the unit still does not report ready, we issue the comamnd
again (and fail if it doesn't succeed). We probably need
another quirk PQUIRK_NOSTART and check it in scsipi_start()
similar to the PQUIRK_NODOORLOCK in scsipi_prevent().

Reply via email to