hattori&ide

Dependencies:   mbed

Committer:
hattori_atsushi
Date:
Sun Dec 18 08:16:01 2022 +0000
Revision:
0:f77369cabd75
hattori

Who changed what in which revision?

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