esemi00

Dependencies:   mbed FatFileSystemCpp

Committer:
esemi00
Date:
Wed Jan 20 05:26:12 2021 +0000
Revision:
0:cfcd0d010286
esemi00

Who changed what in which revision?

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