From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pat LaVarre Subject: Re: usb storage traces Date: 04 Dec 2003 14:33:22 -0700 Sender: linux-scsi-owner@vger.kernel.org Message-ID: <1070573602.2269.32.camel@patibmrh9> References: Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit Return-path: Received: from email-out2.iomega.com ([147.178.1.83]:23435 "EHLO email.iomega.com") by vger.kernel.org with ESMTP id S263528AbTLDVxz (ORCPT ); Thu, 4 Dec 2003 16:53:55 -0500 In-Reply-To: List-Id: linux-scsi@vger.kernel.org To: Matthew Dharm , Alan Stern Cc: linux-scsi@vger.kernel.org, Alex Sanks , Julian Back , David Brownell > > From: Matthew Dharm ... > > > > Microsoft has published information that indicates that they > > 'translate' the mode-sense commands into the 10-byte variants for > > everything bug 'transparent scsi' -- I think actually seeing that > > information would be necessary in constructing a new algorithm for > > Linux. > ... > As I understand it, the only real difference between the protocols is that > everything but transparent scsi and RBC requires padding the commands to > 12 bytes. diff vs. bInterfaceSubClass=x06 as sketched by MSFT is as follows. --- From: http://www.microsoft.com/whdc/hwdev/bus/usb/usbfaq.mspx ... Usbstor.sys and Device Class Support Q: Which device classes does usbstor.sys understand? In Windows XP, Windows 2000, and Windows Me, usbstor.sys makes only one distinction: bInterfaceSubClass == 06h - OR - bInterfaceSubClass != 06h The value bInterfaceSubClass == 06h means that: Command descriptor blocks (CDBs) should not be padded to 12 bytes. Mode Sense / Mode Select commands should not be translated from 1AH / 15h to 5AH / 55h. Subclass 0x06 should generally be used for flash memory devices. The value bInterfaceSubClass != 06h means that: CDBs should be padded to 12 bytes. Mode Sense / Mode Select commands should be translated from 1AH / 15h to 5AH / 55h. --- Includes a plea I nutshell as { generic usb flash = x 08 06 50 }. To make sense of this text we have to remember Linux usb-storage "protocols" = usb.org bInterfaceSubClass != usb.org bInterfaceProtocol. Pat LaVarre