Re: [usb-storage] Re: drivers/block/ub.c

From: Pat LaVarre
Date: Sun Jul 11 2004 - 19:10:35 EST


(1) UB only supports direct-access type devices
(2) UB only supports 'transparent scsi' devices
(3) UB only supports 'bulk-only transport' devices

Yes, ... Someone mentioned on usb-storage list that Windows supports
two things only without extra drivers: Transparent SCSI over Bulk, and UFI.
IIRC, it was Pat.

I'd rather say,

Windows since ME/ 2K supports only Bulk USB Storage without device-specific software.

Generic USB storage remains generic SCSI over USB no matter whether UFI or not, direct access or not, tape or not, etc.

People tell me Apple Mac OS X supports every published spec of USB Storage.

Pat LaVarre
http://plavarre.blog-city.com/read/725648.htm

P.S. Same answer, detailed:

--- [1 of 4] Microsoft

x 08 (06|05|02) 50 = bInterfaceClass ...SubClass ...Protocol
is the shipping Microsoft Windows definition of generic USB Storage we've seen whenever we actually see C:/Windows/inf/usbstor.inf say only:

[Generic]
%GenericBulkOnly.DeviceDesc%=USBSTOR_BULK, USB\Class_08&SubClass_02&Prot_50
%GenericBulkOnly.DeviceDesc%=USBSTOR_BULK, USB\Class_08&SubClass_05&Prot_50
%GenericBulkOnly.DeviceDesc%=USBSTOR_BULK, USB\Class_08&SubClass_06&Prot_50

Translated to English, I guess that plain hex says:

Windows since ME/ 2K supports only Bulk USB Storage without device-specific software.

Generic USB storage remains generic SCSI over USB no matter whether UFI or not, direct access or not, tape or not, etc.

I find talking about this in English gets very confusing quickly because USB bInterfaceSubClass is by design partially redundant with SCSI PDT. Also in practice USB FDD mostly say bInterfaceProtocol x01/00. So experimenting with shipped devices does not always clearly distinguish which field is causing which effect.

UFI I see as yet another small, mostly binary compatible, variation in command set for "direct access" devices that report one of PDT x 0E 07 04 00 in order to suggest one of RBC/ SBC/ UFI/ SFF 8070i. (The relationships are complex, not one-to-one, e.g. PDT x0E suggests RBC, e.g. UFI and SFF 8070i suggest PDT x00.)

--- [2 of 4] Apple

x 08 (06|05|04|03|02|01) (50|01|00) = bInterfaceClass ...SubClass ...Protocol

may be the definition of generic SCSI over USB that appears in Apple Mac OS X. In English that may mean:

People tell me Apple Mac OS X supports every published spec of USB Storage.

--- [3 of 4] Pat LaVarre

x 08 06 50 = bInterfaceClass ...SubClass ...Protocol
is my definition of generic USB Storage i.e. of generic SCSI over USB.

In 1998, I invented the x 06 50 specifically because previously there was no other USB storage standard generic enough to solve the thirteen cases and read/ write my device at speed (which was 19 * 64 bytes/ms = 81+ % of a 12 MHz USB 1 FS bus). Lately the USB committee has obsoleted x 08 xx (01|00) except for USB1FS FDD.

As yet I have seen Microsoft specifically recommend x 08 06 50 only for USB Flash.

I also hoped to see x 08 06 50 obsolete x 08 (05|02) 50. I find the bInterfaceSubClass of mass storage abominable. It's redundant to begin with and then not formally required to be equal. Ugh. I imagine by now people are abusing x 08 02 50 to mean DVD/ CD and x 08 05 50 to mean HDD/ FDD, no matter that the published text refers only to the obsolete and read-only "SFF-8020i, MMC-2 (ATAPI)" and the vendor-specific "SFF-8070i".

--- [4 of 4] links

http://www.google.com/search?q=LaVarre+generic+usb+storage
http://members.aol.com/plscsi/tools/usbpnp.html

http://www.google.com/search?q=Pat+LaVarre+generic+usb+storage
http://www.google.com/search?q=bInterfaceSubClass+x01
http://developer.apple.com/hardware/usb/usb_mail/2001/usbmail0601.htm

http://plavarre.blog-city.com/
http://plavarre.blog-city.com/read/614076.htm
http://www.microsoft.com/whdc/device/storage/usbfaq.mspx

---

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/