Universal Serial Bus
Mass Storage Class
Bulk-Only Transport
Revision 1.0
September 31, 1999
Revision 1.0
September 31, 1999
USB Mass Storage Class – Bulk Only Transport Page 2 of 22
Change History
Revision Issue Date Comments
0.7 September 23, 1998 Initial draft, pre-release
0.8 October 6, 1998 Revisions made at the Mass Storage DWG review – Irvine, CA
0.9 October 21, 1998 Revisions made at the Mass Storage DWG review – Plano, TX
0.9a January 5, 1999 Revisions made at the Mass Storage DWG review – Tigard, OR
0.9b February 1, 1999 Additions of LUN support - Milpitas, CA
1.0[RC1] March 5, 1999 RR review - Midway, UT
1.0[RC2] March 23, 1999 Revisions from reflector review comments
1.0[RC3] March 29, 1999 Specification line by line review – Milpitas, CA
1.0[RC4] June 21, 1999 Specification line by line review – RR21 – Milpitas, CA
1.0 September 31, 1999 Final Revision edits for Released Document – SLC, UT
USB Device Class Definition for Mass Storage Devices
Copyright © 1998, 1999, USB Implementers Forum.
All rights reserved.
INTELLECTUAL PROPERTY DISCLAIMER
THIS SPECIFICATION IS PROVIDED “AS IS” WITH NO WARRANTIES WHATSOEVER INCLUDING ANY
WARRANTY OF MERCHANTABILITY, FITNESS FOR ANY PARTICULAR PURPOSE, OR ANY WARRANTY
OTHERWISE ARISING OUT OF ANY PROPOSAL, SPECIFICATION, OR SAMPLE.
A LICENSE IS HEREBY GRANTED TO REPRODUCE AND DISTRIBUTE THIS SPECIFICATION FOR
INTERNAL USE ONLY. NO OTHER LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO
ANY OTHER INTELLECTUAL PROPERTY RIGHTS IS GRANTED OR INTENDED HEREBY.
AUTHORS OF THIS SPECIFICATION DISCLAIM ALL LIABILITY, INCLUDING LIABILITY FOR
INFRINGEMENT OF PROPRIETARY RIGHTS, RELATING TO IMPLEMENTATION OF INFORMATION IN
THIS SPECIFICATION. AUTHORS OF THIS SPECIFICATION ALSO DO NOT WARRANT OR REPRESENT
THAT SUCH IMPLEMENTATION(S) WILL NOT INFRINGE SUCH RIGHTS.
Contributors
Al Rickey, Phoenix Technologies
Alan Haffner, Lexar Media
Bill Stanley, Adaptec
Calaimany Bhoopathi, Shuttle Technology
Curtis E. Stevens, Phoenix Technologies
Darrell Redford , Iomega Corporation
Dave Gilbert, In-System Design
David G. Lawrence, Global Technology Development
David L. Jolley, Iomega Corporation
David Luke, In-System Design
Eric Luttman, In-System Design
Glen Slick, Microsoft Corporation
Hiromichi Oribe, Hagiwara Sys-ComCo
Jan Matejica, PIMC/Philips
Jim Blackson, Y-E Data, Inc
Jim Quigley, Iomega Corporation
Johan Craeybeckk, PIMC/Philips
Jordan Brown, Sun Microsystems
Kenny Chu, Hagiwara Sys-ComCo
Kenichi Hamada, Y-E Data, Inc
Mark Williams, Microsoft Corporation
Masayuki Kitagawa, Mitsumi
Mike Chen, CMD Technology
Mike Glass, Microsoft Corporation
Mike Liebow, eTEK Labs
Mike Nguyen, TEAC
Mike Poulsen, Iomega Corporation
Moto Watanabe, Hagiwara
N.R. Devanathan, Shuttle Technology
Paramita Das, Sun Microsystems
Pat LaVarre, Iomega Corporation
Peter S'Heeren, PIMC/Philips
Ryota Okazaki, NEC Corporation
Sadao Yabuki, TEAC
Shigeyoshi Hashi, NEC Corporation
Shing F. Lin, Adaptec
Steve Bayless, Hewlett-Packard
Steve Kolokowsky, Anchor Chips
Steven Smith, eTEK Labs
Terry Moore, MCCI
Tim Bradshaw, Iomega Corp
Toyoko Shimizu, Y-E Data, Inc
Trenton Henry, SMSC
Troy Davidson, Iomega Corporation
Tsuyoshi Osawa, TEAC
Yuji Oishi, Hagiwara Sys-Com Co Ltd
Revision 1.0
September 31, 1999
USB Mass Storage Class – Bulk Only Transport Page 3 of 22
Table of Contents
1 Specification Overview and Scope................................................................................... 5
1.1 Scope............................................................................................................................................................. 5
2 Terms and Abbreviations.................................................................................................. 6
2.1 Conventions .................................................................................................................................................. 6
2.2 Definitions..................................................................................................................................................... 6
3 Functional Characteristics................................................................................................ 7
3.1 Bulk-Only Mass Storage Reset (class-specific request)................................................................................ 7
3.2 Get Max LUN (class-specific request).......................................................................................................... 7
3.3 Host/Device Packet Transfer Order .............................................................................................................. 8
3.4 Command Queuing ....................................................................................................................................... 8
3.5 Bi-Directional Command Protocol................................................................................................................ 8
4 Standard Descriptors ........................................................................................................ 9
4.1 Device Descriptor.......................................................................................................................................... 9
4.1.1 Serial Number ....................................................................................................................................... 9
4.1.2 Valid Serial Number Characters.......................................................................................................... 10
4.2 Configuration Descriptor ............................................................................................................................ 10
4.3 Interface Descriptors................................................................................................................................... 11
4.4 Endpoint Descriptors................................................................................................................................... 11
4.4.1 Bulk-In Endpoint................................................................................................................................. 11
4.4.2 Bulk-Out Endpoint.............................................................................................................................. 12
5 Command/Data/Status Protocol ..................................................................................... 13
5.1 Command Block Wrapper (CBW).............................................................................................................. 13
5.2 Command Status Wrapper (CSW).............................................................................................................. 14
5.3 Data Transfer Conditions............................................................................................................................ 15
5.3.1 Command Transport............................................................................................................................ 15
5.3.2 Data Transport..................................................................................................................................... 15
5.3.3 Status Transport .................................................................................................................................. 16
5.3.4 Reset Recovery.................................................................................................................................... 16
6 Host/Device Data Transfers ............................................................................................ 17
6.1 Overview..................................................................................................................................................... 17
6.2 Valid and Meaningful CBW ....................................................................................................................... 17
6.2.1 Valid CBW.......................................................................................................................................... 17
6.2.2 Meaningful CBW................................................................................................................................ 17
6.3 Valid and Meaningful CSW........................................................................................................................ 17
6.3.1 Valid CSW.......................................................................................................................................... 17
6.3.2 Meaningful CSW ................................................................................................................................ 17
6.4 Device Error Handling................................................................................................................................ 17
6.5 Host Error Handling.................................................................................................................................... 18
6.6 Error Classes............................................................................................................................................... 18
6.6.1 CBW Not Valid................................................................................................................................... 18
6.6.2 Internal Device Error........................................................................................................................... 18
6.6.3 Host/Device Disagreements................................................................................................................ 18
6.6.4 Command Failure................................................................................................................................ 18
6.7 The Thirteen Cases...................................................................................................................................... 18
6.7.1 Hn - Host expects no data transfers..................................................................................................... 19
6.7.2 Hi - Host expects to receive data from the device............................................................................... 20
6.7.3 Ho - Host expects to send data to the device....................................................................................... 21
Revision 1.0
September 31, 1999
USB Mass Storage Class – Bulk Only Transport Page 4 of 22
List of Tables
Table 3.1 – Bulk-Only Mass Storage Reset .............................................................................................................7
Table 3.2 –Get Max LUN ........................................................................................................................................7
Table 4.1 - Device Descriptor..................................................................................................................................9
Table 4.2 - Example Serial Number Format ..........................................................................................................10
Table 4.3 - Valid Serial Number Characters..........................................................................................................10
Table 4.4 - Configuration Descriptor.....................................................................................................................10
Table 4.5 – Bulk-Only Data Interface Descriptor..................................................................................................11
Table 4.6 - Bulk-In Endpoint Descriptor ...............................................................................................................11
Table 4.7 – Bulk-Out Endpoint Descriptor............................................................................................................12
Table 5.1 - Command Block Wrapper...................................................................................................................13
Table 5.2 - Command Status Wrapper...................................................................................................................14
Table 5.3 - Command Block Status Values ...........................................................................................................15
Table 6.1 - Host/Device Data Transfer Matrix.......................................................................................................19
List of Figures
Figure 1 - Command/Data/Status Flow .................................................................................................................13
Figure 2 - Status Transport Flow ..........................................................................................................................15
Revision 1.0
September 31, 1999
USB Mass Storage Class – Bulk Only Transport Page 5 of 22
1 Specification Overview and Scope
1.1
Scope
A familiarity with the USB 1.0 and 1.1 Specifications and the USB Mass Storage Class Specification Overview is
assumed.
This specification addresses Bulk-Only Transport, or in other words, transport of command, data, and status
occurring solely via Bulk endpoints (not via Interrupt or Control endpoints). This specification only uses the
default pipe to clear a STALL condition on the Bulk endpoints and to issue class-specific requests as defined
below. This specification does not require the use of an Interrupt endpoint.
This specification defines support for logical units that share common device characteristics. Although this
feature provides the support necessary to allow like mass storage devices to share a common USB interface
descriptor, it is not intended to be used to implement interface bridge devices.