Dependencies:   mbed

Committer:
iva2k
Date:
Thu Jan 21 01:15:42 2010 +0000
Revision:
0:1802fb31b938

        

Who changed what in which revision?

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