Committer:
apm_litoral
Date:
Tue Apr 10 03:34:23 2012 +0000
Revision:
0:78a36db66fbb

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
apm_litoral 0:78a36db66fbb 1 /*
apm_litoral 0:78a36db66fbb 2 **************************************************************************************************************
apm_litoral 0:78a36db66fbb 3 * NXP USB Host Stack
apm_litoral 0:78a36db66fbb 4 *
apm_litoral 0:78a36db66fbb 5 * (c) Copyright 2008, NXP SemiConductors
apm_litoral 0:78a36db66fbb 6 * (c) Copyright 2008, OnChip Technologies LLC
apm_litoral 0:78a36db66fbb 7 * All Rights Reserved
apm_litoral 0:78a36db66fbb 8 *
apm_litoral 0:78a36db66fbb 9 * www.nxp.com
apm_litoral 0:78a36db66fbb 10 * www.onchiptech.com
apm_litoral 0:78a36db66fbb 11 *
apm_litoral 0:78a36db66fbb 12 * File : usbhost_ms.h
apm_litoral 0:78a36db66fbb 13 * Programmer(s) : Ravikanth.P
apm_litoral 0:78a36db66fbb 14 * Version :
apm_litoral 0:78a36db66fbb 15 *
apm_litoral 0:78a36db66fbb 16 **************************************************************************************************************
apm_litoral 0:78a36db66fbb 17 */
apm_litoral 0:78a36db66fbb 18
apm_litoral 0:78a36db66fbb 19 #ifndef USBHOST_MS_H
apm_litoral 0:78a36db66fbb 20 #define USBHOST_MS_H
apm_litoral 0:78a36db66fbb 21
apm_litoral 0:78a36db66fbb 22 /*
apm_litoral 0:78a36db66fbb 23 **************************************************************************************************************
apm_litoral 0:78a36db66fbb 24 * INCLUDE HEADER FILES
apm_litoral 0:78a36db66fbb 25 **************************************************************************************************************
apm_litoral 0:78a36db66fbb 26 */
apm_litoral 0:78a36db66fbb 27
apm_litoral 0:78a36db66fbb 28 #include "usbhost_inc.h"
apm_litoral 0:78a36db66fbb 29
apm_litoral 0:78a36db66fbb 30 /*
apm_litoral 0:78a36db66fbb 31 **************************************************************************************************************
apm_litoral 0:78a36db66fbb 32 * MASS STORAGE SPECIFIC DEFINITIONS
apm_litoral 0:78a36db66fbb 33 **************************************************************************************************************
apm_litoral 0:78a36db66fbb 34 */
apm_litoral 0:78a36db66fbb 35
apm_litoral 0:78a36db66fbb 36 #define MS_GET_MAX_LUN_REQ 0xFE
apm_litoral 0:78a36db66fbb 37 #define MASS_STORAGE_CLASS 0x08
apm_litoral 0:78a36db66fbb 38 #define MASS_STORAGE_SUBCLASS_SCSI 0x06
apm_litoral 0:78a36db66fbb 39 #define MASS_STORAGE_PROTOCOL_BO 0x50
apm_litoral 0:78a36db66fbb 40
apm_litoral 0:78a36db66fbb 41 #define INQUIRY_LENGTH 36
apm_litoral 0:78a36db66fbb 42 /*
apm_litoral 0:78a36db66fbb 43 **************************************************************************************************************
apm_litoral 0:78a36db66fbb 44 * SCSI SPECIFIC DEFINITIONS
apm_litoral 0:78a36db66fbb 45 **************************************************************************************************************
apm_litoral 0:78a36db66fbb 46 */
apm_litoral 0:78a36db66fbb 47
apm_litoral 0:78a36db66fbb 48 #define CBW_SIGNATURE 0x43425355
apm_litoral 0:78a36db66fbb 49 #define CSW_SIGNATURE 0x53425355
apm_litoral 0:78a36db66fbb 50 #define CBW_SIZE 31
apm_litoral 0:78a36db66fbb 51 #define CSW_SIZE 13
apm_litoral 0:78a36db66fbb 52 #define CSW_CMD_PASSED 0x00
apm_litoral 0:78a36db66fbb 53 #define SCSI_CMD_REQUEST_SENSE 0x03
apm_litoral 0:78a36db66fbb 54 #define SCSI_CMD_TEST_UNIT_READY 0x00
apm_litoral 0:78a36db66fbb 55 #define SCSI_CMD_INQUIRY 0x12
apm_litoral 0:78a36db66fbb 56 #define SCSI_CMD_READ_10 0x28
apm_litoral 0:78a36db66fbb 57 #define SCSI_CMD_READ_CAPACITY 0x25
apm_litoral 0:78a36db66fbb 58 #define SCSI_CMD_WRITE_10 0x2A
apm_litoral 0:78a36db66fbb 59
apm_litoral 0:78a36db66fbb 60 /*
apm_litoral 0:78a36db66fbb 61 **************************************************************************************************************
apm_litoral 0:78a36db66fbb 62 * TYPE DEFINITIONS
apm_litoral 0:78a36db66fbb 63 **************************************************************************************************************
apm_litoral 0:78a36db66fbb 64 */
apm_litoral 0:78a36db66fbb 65
apm_litoral 0:78a36db66fbb 66 typedef enum ms_data_dir {
apm_litoral 0:78a36db66fbb 67
apm_litoral 0:78a36db66fbb 68 MS_DATA_DIR_IN = 0x80,
apm_litoral 0:78a36db66fbb 69 MS_DATA_DIR_OUT = 0x00,
apm_litoral 0:78a36db66fbb 70 MS_DATA_DIR_NONE = 0x01
apm_litoral 0:78a36db66fbb 71
apm_litoral 0:78a36db66fbb 72 } MS_DATA_DIR;
apm_litoral 0:78a36db66fbb 73
apm_litoral 0:78a36db66fbb 74 /*
apm_litoral 0:78a36db66fbb 75 **************************************************************************************************************
apm_litoral 0:78a36db66fbb 76 * FUNCTION PROTOTYPES
apm_litoral 0:78a36db66fbb 77 **************************************************************************************************************
apm_litoral 0:78a36db66fbb 78 */
apm_litoral 0:78a36db66fbb 79
apm_litoral 0:78a36db66fbb 80 USB_INT32S MS_BulkRecv ( USB_INT32U block_number,
apm_litoral 0:78a36db66fbb 81 USB_INT16U num_blocks,
apm_litoral 0:78a36db66fbb 82 volatile USB_INT08U *user_buffer);
apm_litoral 0:78a36db66fbb 83
apm_litoral 0:78a36db66fbb 84 USB_INT32S MS_BulkSend ( USB_INT32U block_number,
apm_litoral 0:78a36db66fbb 85 USB_INT16U num_blocks,
apm_litoral 0:78a36db66fbb 86 volatile USB_INT08U *user_buffer);
apm_litoral 0:78a36db66fbb 87 USB_INT32S MS_ParseConfiguration(void);
apm_litoral 0:78a36db66fbb 88 USB_INT32S MS_TestUnitReady (void);
apm_litoral 0:78a36db66fbb 89 USB_INT32S MS_ReadCapacity (USB_INT32U *numBlks, USB_INT32U *blkSize);
apm_litoral 0:78a36db66fbb 90 USB_INT32S MS_GetMaxLUN (void);
apm_litoral 0:78a36db66fbb 91 USB_INT32S MS_GetSenseInfo (void);
apm_litoral 0:78a36db66fbb 92 USB_INT32S MS_Init (USB_INT32U *blkSize, USB_INT32U *numBlks, USB_INT08U *inquiryResult);
apm_litoral 0:78a36db66fbb 93 USB_INT32S MS_Inquire (USB_INT08U *response);
apm_litoral 0:78a36db66fbb 94
apm_litoral 0:78a36db66fbb 95 void Fill_MSCommand ( USB_INT32U block_number,
apm_litoral 0:78a36db66fbb 96 USB_INT32U block_size,
apm_litoral 0:78a36db66fbb 97 USB_INT16U num_blocks,
apm_litoral 0:78a36db66fbb 98 MS_DATA_DIR direction,
apm_litoral 0:78a36db66fbb 99 USB_INT08U scsi_cmd,
apm_litoral 0:78a36db66fbb 100 USB_INT08U scsi_cmd_len);
apm_litoral 0:78a36db66fbb 101 #endif