Atmel Software Framework

usb_protocol_msc.h File Reference

USB Mass Storage Class (MSC) protocol definitions.

Copyright (c) 2009-2012 Atmel Corporation. All rights reserved.

Data Structures

struct  usb_msc_cbw
 
struct  usb_msc_csw
 

Macros

Possible Class value
#define MSC_CLASS   0x08
 
Possible SubClass value
Note
In practise, most devices should use MSC_SUBCLASS_TRANSPARENT and specify the actual command set in the standard INQUIRY data block, even if the MSC spec indicates otherwise. In particular, RBC is not supported by certain major operating systems like Windows XP.
#define MSC_SUBCLASS_RBC   0x01
 Reduced Block Commands. More...
 
#define MSC_SUBCLASS_ATAPI   0x02
 CD/DVD devices. More...
 
#define MSC_SUBCLASS_QIC_157   0x03
 Tape devices. More...
 
#define MSC_SUBCLASS_UFI   0x04
 Floppy disk drives. More...
 
#define MSC_SUBCLASS_SFF_8070I   0x05
 Floppy disk drives. More...
 
#define MSC_SUBCLASS_TRANSPARENT   0x06
 Determined by INQUIRY. More...
 
Possible protocol value
Note
Only the BULK protocol should be used in new designs.
#define MSC_PROTOCOL_CBI   0x00
 Command/Bulk/Interrupt. More...
 
#define MSC_PROTOCOL_CBI_ALT   0x01
 W/o command completion. More...
 
#define MSC_PROTOCOL_BULK   0x50
 Bulk-only. More...
 
A Command Block Wrapper (CBW).
#define USB_CBW_SIGNATURE   0x55534243
 dCBWSignature value More...
 
#define USB_CBW_DIRECTION_IN   (1<<7)
 Data from device to host. More...
 
#define USB_CBW_DIRECTION_OUT   (0<<7)
 Data from host to device. More...
 
#define USB_CBW_LUN_MASK   0x0F
 Valid bits in bCBWLUN. More...
 
#define USB_CBW_LEN_MASK   0x1F
 Valid bits in bCBWCBLength. More...
 
A Command Status Wrapper (CSW).
#define USB_CSW_SIGNATURE   0x55534253
 dCSWSignature value More...
 
#define USB_CSW_STATUS_PASS   0x00
 Command Passed. More...
 
#define USB_CSW_STATUS_FAIL   0x01
 Command Failed. More...
 
#define USB_CSW_STATUS_PE   0x02
 Phase Error. More...
 

Enumerations

enum  usb_reqid_msc {
  USB_REQ_MSC_BULK_RESET = 0xFF,
  USB_REQ_MSC_GET_MAX_LUN = 0xFE
}
 MSC USB requests (bRequest) More...