Create readme Started commenting the files in english NO Optimisations yet, just trying to get it all working over as is first Using newer STM StdPeriph libs (i think they are newer?)
126 lines
5.0 KiB
C
126 lines
5.0 KiB
C
/******************** (C) COPYRIGHT 2015 e-Design Co., Ltd. ********************
|
|
File Name : USB_scsi.h
|
|
Version : STM32 USB Disk Ver 3.4 Author : MCD Application Team & bure
|
|
*******************************************************************************/
|
|
#ifndef __USB_SCSI_H
|
|
#define __USB_SCSI_H
|
|
|
|
#ifdef STM32F30X
|
|
#include "stm32f30x.h"
|
|
#else
|
|
#include "stm32f10x.h"
|
|
#endif
|
|
|
|
/* SCSI Commands */
|
|
#define SCSI_FORMAT_UNIT 0x04
|
|
#define SCSI_INQUIRY 0x12
|
|
#define SCSI_MODE_SELECT6 0x15
|
|
#define SCSI_MODE_SELECT10 0x55
|
|
#define SCSI_MODE_SENSE6 0x1A
|
|
#define SCSI_MODE_SENSE10 0x5A
|
|
#define SCSI_ALLOW_MEDIUM_REMOVAL 0x1E
|
|
#define SCSI_READ6 0x08
|
|
#define SCSI_READ10 0x28
|
|
#define SCSI_READ12 0xA8
|
|
#define SCSI_READ16 0x88
|
|
|
|
#define SCSI_READ_CAPACITY10 0x25
|
|
#define SCSI_READ_CAPACITY16 0x9E
|
|
|
|
#define SCSI_REQUEST_SENSE 0x03
|
|
#define SCSI_START_STOP_UNIT 0x1B
|
|
#define SCSI_TEST_UNIT_READY 0x00
|
|
#define SCSI_WRITE6 0x0A
|
|
#define SCSI_WRITE10 0x2A
|
|
#define SCSI_WRITE12 0xAA
|
|
#define SCSI_WRITE16 0x8A
|
|
|
|
#define SCSI_VERIFY10 0x2F
|
|
#define SCSI_VERIFY12 0xAF
|
|
#define SCSI_VERIFY16 0x8F
|
|
|
|
#define SCSI_SEND_DIAGNOSTIC 0x1D
|
|
#define SCSI_READ_FORMAT_CAPACITIES 0x23
|
|
|
|
#define NO_SENSE 0
|
|
#define RECOVERED_ERROR 1
|
|
#define NOT_READY 2
|
|
#define MEDIUM_ERROR 3
|
|
#define HARDWARE_ERROR 4
|
|
#define ILLEGAL_REQUEST 5
|
|
#define UNIT_ATTENTION 6
|
|
#define DATA_PROTECT 7
|
|
#define BLANK_CHECK 8
|
|
#define VENDOR_SPECIFIC 9
|
|
#define COPY_ABORTED 10
|
|
#define ABORTED_COMMAND 11
|
|
#define VOLUME_OVERFLOW 13
|
|
#define MISCOMPARE 14
|
|
|
|
|
|
#define INVALID_COMMAND 0x20
|
|
#define INVALID_FIELED_IN_COMMAND 0x24
|
|
#define PARAMETER_LIST_LENGTH_ERROR 0x1A
|
|
#define INVALID_FIELD_IN_PARAMETER_LIST 0x26
|
|
#define ADDRESS_OUT_OF_RANGE 0x21
|
|
#define MEDIUM_NOT_PRESENT 0x3A
|
|
#define MEDIUM_HAVE_CHANGED 0x28
|
|
|
|
#define READ_FORMAT_CAPACITY_DATA_LEN 0x0C
|
|
#define READ_CAPACITY10_DATA_LEN 0x08
|
|
#define MODE_SENSE10_DATA_LEN 0x08
|
|
#define MODE_SENSE6_DATA_LEN 0x04
|
|
#define REQUEST_SENSE_DATA_LEN 0x12
|
|
#define STANDARD_INQUIRY_DATA_LEN 0x24 // 0x24
|
|
#define BLKVFY 0x04
|
|
|
|
extern u8 Page00_Inquiry_Data[];
|
|
extern u8 Standard_Inquiry_Data[];
|
|
extern u8 Mode_Sense6_data[];
|
|
extern u8 Mode_Sense10_data[];
|
|
extern u8 Scsi_Sense_Data[];
|
|
extern u8 ReadCapacity10_Data[];
|
|
|
|
extern u8 Bot_State;
|
|
|
|
void SCSI_Inquiry_Cmd(void);
|
|
void SCSI_ReadFormatCapacity_Cmd(void);
|
|
void SCSI_ReadCapacity10_Cmd(void);
|
|
void SCSI_RequestSense_Cmd (void);
|
|
void SCSI_Start_Stop_Unit_Cmd(void);
|
|
void SCSI_ModeSense6_Cmd (void);
|
|
void SCSI_ModeSense10_Cmd (void);
|
|
void SCSI_Write10_Cmd(u32 LBA , u32 BlockNbr);
|
|
void SCSI_Read10_Cmd(u32 LBA , u32 BlockNbr);
|
|
void SCSI_Verify10_Cmd(void);
|
|
|
|
void SCSI_Invalid_Cmd(void);
|
|
void SCSI_Valid_Cmd(void);
|
|
u8 SCSI_Address_Management(u8 Cmd , u32 LBA , u32 BlockNbr);
|
|
|
|
void Set_Scsi_Sense_Data(u8 Sens_Key, u8 Asc);
|
|
void SCSI_TestUnitReady_Cmd (void);
|
|
void SCSI_Format_Cmd (void);
|
|
|
|
#define SCSI_Prevent_Removal_Cmd SCSI_Valid_Cmd
|
|
|
|
// Invalid (Unsupported) commands
|
|
#define SCSI_READ_CAPACITY16_Cmd SCSI_Invalid_Cmd
|
|
|
|
//#define SCSI_FormatUnit_Cmd SCSI_Invalid_Cmd
|
|
#define SCSI_Write6_Cmd SCSI_Invalid_Cmd
|
|
#define SCSI_Write16_Cmd SCSI_Invalid_Cmd
|
|
#define SCSI_Write12_Cmd SCSI_Invalid_Cmd
|
|
#define SCSI_Read6_Cmd SCSI_Invalid_Cmd
|
|
#define SCSI_Read12_Cmd SCSI_Invalid_Cmd
|
|
#define SCSI_Read16_Cmd SCSI_Invalid_Cmd
|
|
#define SCSI_Send_Diagnostic_Cmd SCSI_Invalid_Cmd
|
|
#define SCSI_Mode_Select6_Cmd SCSI_Invalid_Cmd
|
|
#define SCSI_Mode_Select10_Cmd SCSI_Invalid_Cmd
|
|
#define SCSI_Verify12_Cmd SCSI_Invalid_Cmd
|
|
#define SCSI_Verify16_Cmd SCSI_Invalid_Cmd
|
|
|
|
#endif
|
|
/********************************* END OF FILE ******************************/
|
|
|