Testing

Dependencies:   mbed FatFileSystemCpp

Committer:
Richard_Xiong
Date:
Fri Apr 24 01:49:33 2020 +0000
Revision:
0:1855e9b8c2a2
USBTesting

Who changed what in which revision?

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