summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorheyuanjie87 <[email protected]>2013-01-09 12:20:15 +0800
committerheyuanjie87 <[email protected]>2013-01-09 12:20:15 +0800
commit96f5a6dcec3ccd810c14a3c4e01cd0de6fb8c728 (patch)
tree392db9ea14c52d09525fe485e61b550d87511662
parentd20974b9d2b1d216cd01e0f70d440b1081b380c1 (diff)
move the define related to Mass to here;
remove product ID
-rw-r--r--components/drivers/usb/usbdevice/class/mstorage.h47
1 files changed, 44 insertions, 3 deletions
diff --git a/components/drivers/usb/usbdevice/class/mstorage.h b/components/drivers/usb/usbdevice/class/mstorage.h
index 740d9e6568..556e3aa77e 100644
--- a/components/drivers/usb/usbdevice/class/mstorage.h
+++ b/components/drivers/usb/usbdevice/class/mstorage.h
@@ -18,13 +18,54 @@
#include <rtthread.h>
-#define USBREQ_GET_MAX_LUN 0xfe
-#define USBREQ_MASS_STORAGE_RESET 0xff
+#define USBREQ_GET_MAX_LUN 0xfe
+#define USBREQ_MASS_STORAGE_RESET 0xff
-#define USB_MASS_STORAGE_PRODUCT_ID 0x1000 /* Product ID */
+#define SIZEOF_CSW 0x0d
+#define SIZEOF_CBW 0x1f
+
+#define CBWFLAGS_DIR_M 0x80
+#define CBWFLAGS_DIR_IN 0x80
+#define CBWFLAGS_DIR_OUT 0x00
+
+#define SCSI_TEST_UNIT_READY 0x00
+#define SCSI_REQUEST_SENSE 0x03
+#define SCSI_INQUIRY_CMD 0x12
+#define SCSI_ALLOW_MEDIUM_REMOVAL 0x1e
+#define SCSI_MODE_SENSE_6 0x1a
+#define SCSI_READ_CAPACITIES 0x23
+#define SCSI_READ_CAPACITY 0x25
+#define SCSI_READ_10 0x28
+#define SCSI_WRITE_10 0x2a
+#define SCSI_VERIFY_10 0x2f
+
+#define CBW_SIGNATURE 0x43425355
+#define CSW_SIGNATURE 0x53425355
+#define CBW_TAG_VALUE 0x12345678
#pragma pack(1)
+struct ustorage_cbw
+{
+ rt_uint32_t signature;
+ rt_uint32_t tag;
+ rt_uint32_t xfer_len;
+ rt_uint8_t dflags;
+ rt_uint8_t lun;
+ rt_uint8_t cb_len;
+ rt_uint8_t cb[16];
+};
+typedef struct ustorage_cbw* ustorage_cbw_t;
+
+struct ustorage_csw
+{
+ rt_uint32_t signature;
+ rt_uint32_t tag;
+ rt_uint32_t data_reside;
+ rt_uint8_t status;
+};
+typedef struct ustorage_csw* ustorage_csw_t;
+
struct umass_descriptor
{
struct uinterface_descriptor intf_desc;