Publish code

Dependencies:   FatFileSystem RPG TextLCD mbed wave_player

Committer:
YongChingTee
Date:
Wed Mar 06 00:21:35 2013 +0000
Revision:
1:ebb980d204ae
Parent:
0:ad48675db853
publish

Who changed what in which revision?

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