Universal Serial Bus
Mass Storage Class
Compliance Test Specification
Revision 0.9a
June 30, 2005
For Review and Discussion Only
Draft Document Subject to Revision or Rejection
Not For Publication or General Distribution
Revision 0.9a
June 30,2005
Change History
Revision Issue Date Comments
0.6 August 15, 2002 Initial draft, pre-release
0.7 September 19, 2002 Initial draft after acceptance by MSC committee
0.7a December 6, 2002 Minor cleanup
0.7b May 30, 2003 Added command set assertion, TD infrastructure
0.7c June 2, 2003 Minor cleanup
0.7d September 25, 2003 Added CDB table, cleanup
0.7e November 21, 2003 Restructured command set info, added common
procedures, modified CBW checking, other cleanup.
0.7f December 8, 2003 Edited in changes of RRs accepted at DWG meeting.
0.7g February 27, 2004 Edited in RRs from February 4, 2004 DWG meeting
0.7h July 9, 2004 Edited in RR014 from May 26, 2004 DWG meeting
0.7i August 23, 2004 Edited in RRs from August 4, 2004 DWG meeting
0.8 December 15, 2004 RRs from December 1, 2004 DWG
0.8a April 6, 2005 RRs from April 6, 2005 DWG; release to DWG
0.9 June 7, 2005 DWG voted to promote to 0.9, added disclaimer in
footer, created .pdf according to USB-IF guidelines
0.9a June 30, 2005 Edited in RR35 approved by electronic ballot June 30,
2005
USB Device Class Definition for Mass Storage Devices
Copyright © 2002, 2003, 2004, 2005 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.
USB Mass Storage Class – Compliance Test Specification Page 2 of 39
For Review and Discussion Only
Draft Document Subject to Revision or Rejection
Not For Publication or General Distribution
Revision 0.9a
June 30,2005
Contributors
Doug Azzarito, Dell
Jerry Beckmann, Lexar Media
Fred Bhesania, Microsoft
Jim Blackson, Y-E Data
Mark Bohm, SMSC
Robert Chang, SanDisk
Kenny Chu, Hagiwara Sys-Com
Morten Christiansen, Ericsson Mobile
Graham Connolly, Fairchild
Matthew Dharm, Y-E Data
Francois Ennesser, Axalto
Dan Froelich, Intel Corporation
Martin Furuhjelm, Lexar Media
Alan Haffner, Lexar Media
Pat LaVarre, Lexar Media
Trenton Henry, SMSC
Henry Hutton, SanDisk
Masahiro Ito, Fujitsu
Hyo Bae Jeon, Hynix
Priyanka Kamat, SanDisk
Shin-han Kim, Samsung
Steve Kolokowsky, Cypress Semiconductor
Peter T. Larsen, Intel
Antonis Lazaridis, TDK
Frank Lin, SST
David Luke, Cypress Semiconductor
Eric Luttmann, Cypress Semiconductor
Bruce McFarland, Micron
Joseph Meza, SoftConnex
Michael Montgomery, AXALTO
Terry Moore, MCCI
Sivagar Natorajon, AMI
Nathan Obr, Microsoft
Hiromichi Oribe, Hagiwara SysCom
Mike Pearson, Samsung
Matt Pujol, LSI Logic
Dan Repich, SMSC
Eddy Reynolds, Hewlett-Packard
Chris Robinson, Microsoft
Bill Russell, Canon
Jim Sandman, Iomega
Chris Sawran, SMSC
Jack Schwartz, Sun Microsystems
Toyoko Shimizu, Y-E Data
Glen Slick, Microsoft
Ariel Sobelman, M-Systems
Curtis Stevens, Western Digital
Jackie Su, Genesys Logic
Shuba Swaminathan, Micron
Farshid Tabrizi, Lexar Media
Daniel Tuers, SanDisk
David Won, Samsung
Aran Ziv, M-Systems
USB Mass Storage Class – Compliance Test Specification Page 3 of 39
For Review and Discussion Only
Draft Document Subject to Revision or Rejection
Not For Publication or General Distribution
Revision 0.9a
June 30,2005
Table of Contents
1. Scope......................................................................................................................... 5
2. Testing Philosophy and Considerations................................................................ 5
2.1 Implementation......................................................................................................................................5
2.2 Thirteen Cases .......................................................................................................................................5
2.3 Command set.........................................................................................................................................6
2.4 Bootability .............................................................................................................................................6
2.5 High-speed versus full-speed.................................................................................................................6
2.6 Multi-LUN devices................................................................................................................................6
3. Command set references......................................................................................... 7
4. Assertions ................................................................................................................. 7
4.1 Assertions ..............................................................................................................................................7
4.2 Command Set Information ..................................................................................................................12
5. Test Descriptions ................................................................................................... 13
6. Test Details ............................................................................................................. 33
6.1 Preliminary Procedure.........................................................................................................................33
6.2 Recovery Procedure.............................................................................................................................33
6.3 CDBs ...................................................................................................................................................33
6.4 Command Set Test ..............................................................................................................................34
Table of Tables
Table 1 Required and Optional Commands...................................................................... 13
Table 2 Command Block Wrappers.................................................................................. 33
USB Mass Storage Class – Compliance Test Specification Page 4 of 39
For Review and Discussion Only
Draft Document Subject to Revision or Rejection
Not For Publication or General Distribution
Revision 0.9a
June 30,2005
1. Scope
This document specifies assertions and test procedures for use with devices that support
one or more Mass Storage Class interfaces. The majority of the test procedures defined
herein apply to interfaces that utilize the Bulk-Only Transport protocol. These test
procedures provide only limited testing of interfaces that use the Control-Bulk-Interrupt
protocol.
This testing is intended to be in addition to standard USB Compliance testing; assertions
covered by the USBCV test document, for instance, are not covered here. This testing
addresses basics of the descriptors which are specific to Mass Storage Class devices;
Class-specific control requests; structure and content of CBW and CSW packets;
handling of errors related to MSC protocol errors; basic handling of transport-level errors
(“the Thirteen Cases”); and some command set basics.
2. Testing Philosophy and Considerations
2.1 Implementation
The test descriptions specified by this document will be integrated into the USBCV tool
available from the USB-IF. It is intended that all devices which report a Mass Storage
Class interface will be required to pass this test in order to receive logo certification. The
tests described herein shall be run on all interfaces that report themselves as Mass Storage
Class.
2.2 Thirteen Cases
A BOT CBW contains some redundant information. Information that describes the
direction and size of a data transfer is explicitly stated in the bmCBWFlags and
dCBWDataTransferLength fields. This information is also typically encoded in the
command block (CB) found in the CBWCB field.
The background philosophy behind the BOT specification was that of a “protocol stack”
type layered architecture, wherein the CBW was truly a wrapper for the command block.
Therefore, the MSC layer of a protocol stack on the host could wrap the command block
with additional information and send it to the device. The MSC layer on the device side
could similarly strip off the additional information and pass the CB to the command
block layer without needing to interpret it. In this way, the command block layer and the
MSC layer could be independent of each other.
USB Mass Storage Class – Compliance Test Specification Page 5 of 39
For Review and Discussion Only
However, the BOT specification does not explicitly require this independence. In some
device implementations, the protocol logic may be simultaneously aware of both the CB
and the additional information found in the CBW.
Draft Document Subject to Revision or Rejection
Not For Publication or General Distribution