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().