Universal Serial Bus Mass Storage Class Specification Overview
Universal Serial Bus Mass Storage Class Specification Overview
Document Status
Revision History Rev 1.0 1.1 1.2 1.3 Date October 22, 1998 June 28, 2000 June 23, 2003 September 5, 2008 John Geldman Author 1) Initial release 1) Update 1) Update list of specs 2) Restrict CBI to full-speed floppies only 1) Updated related documents & subclass references, 2) added MSC-Lock & IEEE 1667 subclasses, 3) added Vendor Specific subclass & protocol, 4) updated protocol list, added section on Request Codes 1) Corrected references to obsolete SubClass Codes in Table 2.1 2) Adds USB Attached SCSI Protocol Reference 3) Adds Protocol UASP subgroup approved for usage in T10 UAS work 4) Updated list of contributors 5) Performed spelling and grammar check 6) Updated formatting for consistency. 1) Updated with letter ballot comment corrections 2) Added list of previous contributors 3) Added USB-2 as core Spec 1) Changed the introduction to the contributers list to match USB-IF requirements. Description
1.4rc1
1.4rc2
August 5, 2009
Curtis E. Stevens
1.4rc3
Curtis E, Stevens
ii
Specification Overview
The authors of this specification would like to thank the people from the Promoter companies, the people who participated in the UASP Specification technical working group, and those throughout the industry who contributed to the development of this specification. The following people have contributed to the Mass Storage Overview Class Specification. MSC Specification Overview Contributors Name Amit Nanda Hans van Antwerpen Chuck Trefts Mario Pasquali Yuji Oishi Steve McGowan Boris Dinkevich Joel Silverman Daniel Jacobs John Geldman Jason R. Oliver Cristian Chis John Garney Jim Bovee Kiran Bangalore Eugene Gryazin Matthew Stephens Shigekatsu Tateno Thomas Friend Dave Landsman Martin Furuhjelm Tony Priborsky Cindy Lee Shannon Cash Gideon Intrater Biao Jia Rudy Liang Christopher Thomas Grant Ley Ed Beeman Paul E. Berg Curtis E. Stevens [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] E-Mail Company Cypress Semiconductor Cypress Semiconductor Ellisys Ellisys Hagiwara Sys-Com Intel Jungo Kawasaki Microelectronics Lecroy Lexar Media MCCI MCCI MCCI Microsoft Microsoft Nokia PLX/Oxford PLX/Oxford PLX/Oxford SanDisk Seagate Technology Seagate Technology SMSC SMSC Symwave Symwave Symwave Symwave Texas Instruments USB-IF USB-IF Western Digital Technologies
Specification Overview
iii
MSCO Revision 1.4 Contributors to Previous Versions Name Company Shing F. Lin Adaptec Bill Stanley Adaptec Masayuki Kitagawa Alpha Peripherals Bill Russell Canon Dave Gilbert Cypress Semiconductor Steve Kolokowsky Cypress Semiconductor David Luke Cypress Semiconductor Eric Luttmann Cypress Semiconductor David Cho Genesys Logic Sean S. Cho Genesys Logic Hiromichi Oribe Hagiwara Sys-Com Co. David L. Jolley Iomega Corporation Mike Poulsen Iomega Corporation James Quigley Iomega Corporation Darrell Redford Iomega Corporation Jim Sandman Iomega Corporation Martin Furuhjelm Lexar Media John Geldman Lexar Media Pat LaVarre Lexar Media Alex Afshar Matsushita Semiconductor Nathan Obr Microsoft Corporation Glen Slick Microsoft Corporation Mark Williams Microsoft Corporation Al Rickey Phoenix Technologies Johan Craeybeckk PIMC/Philips Jan Matejica PIMC/Philips Peter S'Heeren PIMC/Philips Yoni Shternhell SanDisk Trenton Henry SMSC Shigenori Tagami Sony Corporation Frits Vanderlinden Sun Microsystems Curtis E. Stevens Western Digital Masahiro Ito Yamagata Fujitsu Toyoko Shimizu Y-E Data, Inc Jim Blackson Y-E Data, Inc
iv
Specification Overview
February 19, 2010 Copyright 2009, USB Implementers Forum, Inc. All rights reserved.
A LICENSE IS HEREBY GRANTED TO REPRODUCE THIS SPECIFICATION FOR INTERNAL USE ONLY. NO OTHER LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, IS GRANTED OR INTENDED HEREBY. USB-IF AND THE AUTHORS OF THIS SPECIFICATION EXPRESSLY DISCLAIM ALL LIABILITY FOR INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS, RELATING TO IMPLEMENTATION OF INFORMATION IN THIS SPECIFICATION. USB-IF AND THE AUTHORS OF THIS SPECIFICATION ALSO DO NOT WARRANT OR REPRESENT THAT SUCH IMPLEMENTATION(S) WILL NOT INFRINGE THE INTELLECTUAL PROPERTY RIGHTS OF OTHERS. THIS SPECIFICATION IS PROVIDED "AS IS" AND WITH NO WARRANTIES, EXPRESS OR IMPLIED, STATUTORY OR OTHERWISE. ALL WARRANTIES ARE EXPRESSLY DISCLAIMED. NO WARRANTY OF MERCHANTABILITY, NO WARRANTY OF NON-INFRINGEMENT, NO WARRANTY OF FITNESS FOR ANY PARTICULAR PURPOSE, AND NO WARRANTY ARISING OUT OF ANY PROPOSAL, SPECIFICATION, OR SAMPLE. IN NO EVENT WILL USB-IF OR USB-IF MEMBERS BE LIABLE TO ANOTHER FOR THE COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS OF USE, LOSS OF DATA OR ANY INCIDENTAL, CONSEQUENTIAL, INDIRECT, OR SPECIAL DAMAGES, WHETHER UNDER CONTRACT, TORT, WARRANTY, OR OTHERWISE, ARISING IN ANY WAY OUT OF THE USE OF THIS SPECIFICATION, WHETHER OR NOT SUCH PARTY HAD ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
Specification Overview
vi
Specification Overview
Table of Contents
Page Document Status ..................................................................................................................................................ii Table of Contents ................................................................................................................................................ vii List of Tables ...................................................................................................................................................... viii 1 Introduction ........................................................................................................................................................ 1 1.1 Overview ................................................................................................................................................... 1 1.2 Specification Relationships ....................................................................................................................... 1 1.3 Purpose .................................................................................................................................................... 1 1.4 Terms and Abbreviations .......................................................................................................................... 1 1.5 Related Documents .................................................................................................................................. 2 2 Subclass Codes ................................................................................................................................................. 3 3 Protocol Codes .................................................................................................................................................. 4 4 Request Codes .................................................................................................................................................. 5 5 Class Specific Descriptor Codes ........................................................................................................................ 6
Specification Overview
vii
List of Tables
Page Table 1 - SubClass Codes Mapped to Command Block Specifications............................................................... Table 2 - Mass Storage Transport Protocol ......................................................................................................... Table 3 - Mass Storage Request Codes .............................................................................................................. Table 4 - Mass Storage Class Specific Descriptors ............................................................................................. 3 4 5 6
viii
Specification Overview
1.3 Purpose
The purpose of this document is to provide an overview of all the specifications that describe how Mass Storage devices behave on the USB bus. Section 1.1 gives the rules for using the different USB Mass Storage class specifications. Note that these rules can change. As other companies with different USB Mass Storage Class device projects in mind join the USB Mass Storage Class CWG, other specifications may be developed by the CWG and added to the set of specifications that fully describe how a Mass Storage Class device behaves on the USB bus. If and when that happens, the USB Mass Storage CWG will reconsider the rules specified in section 1.1 of this document.
Specification Overview
2 Subclass Codes
The Interface Descriptor of a USB Mass Storage Class device includes a bInterfaceSubClass field. This field denotes the industry-standard command set transported by a Mass Storage Class interface. The value of the bInterfaceSubClass field shall be set to one of the Subclass codes as shown in table 1. The Subclass code values used in the bInterfaceSubClass field specify the industry-standard specification that defines transport command sets transported by the interface; these Subclass codes do not specify a type of storage device (such as a CD-ROM or floppy disk drive). Table 1 SubClass Codes Mapped to Command Block Specifications Subclass Command Block Specification 00h SCSI command set not reported De facto use 01h 02h 03h 04h 05h RBC MMC-5 (ATAPI) Obsolete UFI Obsolete Allocated by USB-IF for RBC. RBC is defined outside of USB. Allocated by USB-IF for MMC-5. MMC-5 is defined outside of USB. Was QIC-157 Specifies how to interface Floppy Disk Drives to USB Was SFF-8070i Comment
06h SCSI transparent command set Allocated by USB-IF for SCSI. SCSI standards are defined outside of USB. 07h 08h 09h - FEh FFh LSD FS IEEE 1667 Reserved Specific to device vendor LSDFS specifies how host has to negotiate access before trying SCSI Allocated by USB-IF for IEEE 1667. IEEE 1667 is defined outside of USB. Reserved De facto use
Specification Overview
3 Protocol Codes
The Interface Descriptor of a USB Mass Storage Class device includes a bInterfaceProtocol field. This field denotes the transport protocol used by this interface. Table 2 Mass Storage Transport Protocol bInterfaceProtocol 00h Protocol Implementation CBI (with command completion interrupt) Comment USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport
01h CBI (with no command completion interrupt) USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport 02h 03h-4Fh 50h 51h - 61h 62h 63h-FEh FFh Obsolete Reserved BBB Reserved UAS Reserved Specific to device vendor Reserved USB Mass Storage Class Bulk-Only (BBB) Transport Reserved Allocated by USB-IF for UAS. UAS is defined outside of USB. Reserved De facto use
The USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport specification (Protocol codes 0x00 and 0x01) is approved for use only with full-speed floppy disk drives. CBI shall not be used in high-speed capable devices, or in devices other than floppy disk drives. Usage of CBI for any new design is discouraged.
Specification Overview
4 Request Codes
Core USB specifies that a USB control Request addressed to wIndex = bInterfaceNumber of a USB Mass Storage Class device interface includes a bRequest field. The meaning of the bRequest code is specific to the device vendor when the bmRequestType. Type is Vendor, but the meaning of the bRequest code is specific to the interface class when the bmRequestType.Type is Class. Table 3 Mass Storage Request Codes bRequest 00h Name Accept Device-Specific Command (ADSC) Reserved Reserved Get Requests Put Requests Get Max LUN (GML) Bulk-Only Mass Storage Reset (BOMSR) Comment Assigned in context by USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport, also aliases core USB request 00h Get Status. Aliases of core USB bRequest codes Reserved Assigned by Lockable Storage Devices Feature Specification Assigned by Lockable Storage Devices Feature Specification Assigned by USB Mass Storage Class Bulk-Only (BBB) Transport Assigned by USB Mass Storage Class Bulk-Only (BBB) Transport
Specification Overview
Specification Overview