is just added to File System Lib used by our students

Dependents:   FileSystem_POPS

Committer:
bouaziz
Date:
Sun Nov 10 20:59:07 2013 +0000
Revision:
0:7c305139fb85
Very difficult to find lib for USB mass storage access.; This one works fine after few modif.; This is identified POPS because is used by our undergraduate students Polytech Paris Sud Orsay  engineer School;

Who changed what in which revision?

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