mirror of https://github.com/m24h/DAPLINK_C6T6
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
3.5 KiB
106 lines
3.5 KiB
/* CMSIS-DAP Interface Firmware |
|
* Copyright (c) 2009-2013 ARM Limited |
|
* |
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
* you may not use this file except in compliance with the License. |
|
* You may obtain a copy of the License at |
|
* |
|
* http://www.apache.org/licenses/LICENSE-2.0 |
|
* |
|
* Unless required by applicable law or agreed to in writing, software |
|
* distributed under the License is distributed on an "AS IS" BASIS, |
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
* See the License for the specific language governing permissions and |
|
* limitations under the License. |
|
*/ |
|
#ifndef __USB_MSC_H__ |
|
#define __USB_MSC_H__ |
|
|
|
|
|
/* MSC Subclass Codes */ |
|
#define MSC_SUBCLASS_RBC 0x01 |
|
#define MSC_SUBCLASS_SFF8020I_MMC2 0x02 |
|
#define MSC_SUBCLASS_QIC157 0x03 |
|
#define MSC_SUBCLASS_UFI 0x04 |
|
#define MSC_SUBCLASS_SFF8070I 0x05 |
|
#define MSC_SUBCLASS_SCSI 0x06 |
|
|
|
/* MSC Protocol Codes */ |
|
#define MSC_PROTOCOL_CBI_INT 0x00 |
|
#define MSC_PROTOCOL_CBI_NOINT 0x01 |
|
#define MSC_PROTOCOL_BULK_ONLY 0x50 |
|
|
|
|
|
/* MSC Request Codes */ |
|
#define MSC_REQUEST_RESET 0xFF |
|
#define MSC_REQUEST_GET_MAX_LUN 0xFE |
|
|
|
|
|
/* MSC Bulk-only Stage */ |
|
#define MSC_BS_CBW 0 /* Command Block Wrapper */ |
|
#define MSC_BS_DATA_OUT 1 /* Data Out Phase */ |
|
#define MSC_BS_DATA_IN 2 /* Data In Phase */ |
|
#define MSC_BS_DATA_IN_LAST 3 /* Data In Last Phase */ |
|
#define MSC_BS_DATA_IN_LAST_STALL 4 /* Data In Last Phase with Stall */ |
|
#define MSC_BS_CSW 5 /* Command Status Wrapper */ |
|
#define MSC_BS_ERROR 6 /* Error */ |
|
|
|
|
|
/* Bulk-only Command Block Wrapper */ |
|
typedef __packed struct _MSC_CBW { |
|
U32 dSignature; |
|
U32 dTag; |
|
U32 dDataLength; |
|
U8 bmFlags; |
|
U8 bLUN; |
|
U8 bCBLength; |
|
U8 CB[16]; |
|
} MSC_CBW; |
|
|
|
/* Bulk-only Command Status Wrapper */ |
|
typedef __packed struct _MSC_CSW { |
|
U32 dSignature; |
|
U32 dTag; |
|
U32 dDataResidue; |
|
U8 bStatus; |
|
} MSC_CSW; |
|
|
|
#define MSC_CBW_Signature 0x43425355 |
|
#define MSC_CSW_Signature 0x53425355 |
|
|
|
|
|
/* CSW Status Definitions */ |
|
#define CSW_CMD_PASSED 0x00 |
|
#define CSW_CMD_FAILED 0x01 |
|
#define CSW_PHASE_ERROR 0x02 |
|
|
|
|
|
/* SCSI Commands */ |
|
#define SCSI_TEST_UNIT_READY 0x00 |
|
#define SCSI_REQUEST_SENSE 0x03 |
|
#define SCSI_FORMAT_UNIT 0x04 |
|
#define SCSI_INQUIRY 0x12 |
|
#define SCSI_MODE_SELECT6 0x15 |
|
#define SCSI_MODE_SENSE6 0x1A |
|
#define SCSI_START_STOP_UNIT 0x1B |
|
#define SCSI_MEDIA_REMOVAL 0x1E |
|
#define SCSI_READ_FORMAT_CAPACITIES 0x23 |
|
#define SCSI_READ_CAPACITY 0x25 |
|
#define SCSI_READ10 0x28 |
|
#define SCSI_WRITE10 0x2A |
|
#define SCSI_VERIFY10 0x2F |
|
#define SCSI_SYNC_CACHE10 0x35 |
|
#define SCSI_READ12 0xA8 |
|
#define SCSI_WRITE12 0xAA |
|
#define SCSI_MODE_SELECT10 0x55 |
|
#define SCSI_MODE_SENSE10 0x5A |
|
#define SCSI_SYNC_CACHE16 0x91 |
|
#define SCSI_ATA_COMMAND_PASS_THROUGH12 0xA1 |
|
#define SCSI_ATA_COMMAND_PASS_THROUGH16 0x85 |
|
#define SCSI_SERVICE_ACTION_IN12 0xAB |
|
#define SCSI_SERVICE_ACTION_IN16 0x9E |
|
#define SCSI_SERVICE_ACTION_OUT12 0xA9 |
|
#define SCSI_SERVICE_ACTION_OUT16 0x9F |
|
|
|
|
|
#endif /* __USB_MSC_H__ */
|
|
|