1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  *
21  *
22  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23  * Use is subject to license terms.
24  */
25 /*
26  * ATA8-ACS Definitions (subset) Working Draft AT Attachment 8 - ATA/ATAPI
27  * Command Set (D1699r4c)
28  */
29 #ifndef	_ATA8_ACS_H
30 #define	_ATA8_ACS_H
31 #ifdef	__cplusplus
32 extern "C" {
33 #endif
34 
35 /*
36  * ATA Command Set
37  */
38 enum ata_opcode {
39 	ATA_NOP					= 0x00,
40 	CFA_REQUEST_EXTENDED_ERROR		= 0x03,
41 	DEVICE_RESET				= 0x08,
42 	READ_SECTORS				= 0x20,
43 	READ_SECTORS_EXT			= 0x24,
44 	READ_DMA_EXT				= 0x25,
45 	READ_DMA_QUEUED_EXT			= 0x26,
46 	READ_NATIVE_MAX_ADDRESS_EXT		= 0x27,
47 	READ_MULTIPLE_EXT			= 0x29,
48 	READ_STREAM_DMA_EXT			= 0x2A,
49 	READ_STREAM_EXT				= 0x2B,
50 	READ_LOG_EXT				= 0x2F,
51 	WRITE_SECTORS				= 0x30,
52 	WRITE_SECTORS_EXT			= 0x34,
53 	WRITE_DMA_EXT				= 0x35,
54 	WRITE_DMA_QUEUED_EXT			= 0x36,
55 	SET_MAX_ADDRESS_EXT			= 0x37,
56 	CFA_WRITE_SECTORS_WITHOUT_ERASE		= 0x38,
57 	WRITE_MULTIPLE_EXT			= 0x39,
58 	WRITE_STREAM_DMA_EXT			= 0x3A,
59 	WRITE_STREAM_EXT			= 0x3B,
60 	WRITE_DMA_FUA_EXT			= 0x3D,
61 	WRITE_DMA_QUEUED_FUA_EXT		= 0x3E,
62 	WRITE_LOG_EXT				= 0x3F,
63 	READ_VERIFY_SECTORS			= 0x40,
64 	READ_VERIFY_SECTORS_EXT			= 0x42,
65 	WRITE_UNCORRECTABLE_EXT			= 0x45,
66 	READ_LOG_DMA_EXT			= 0x47,
67 	CONFIGURE_STREAM			= 0x51,
68 	WRITE_LOG_DMA_EXT			= 0x57,
69 	TRUSTED_NON_DATA			= 0x5B,
70 	TRUSTED_RECEIVE				= 0x5C,
71 	TRUSTED_RECEIVE_DMA			= 0x5D,
72 	TRUSTED_SEND				= 0x5E,
73 	TRUSTED_SEND_DMA			= 0x5E,
74 	READ_FPDMA_QUEUED			= 0x60,
75 	WRITE_FPDMA_QUEUED			= 0x61,
76 	CFA_TRANSLATE_SECTOR			= 0x87,
77 	EXECUTE_DEVICE_DIAGNOSTIC		= 0x90,
78 	DOWNLOAD_MICROCODE			= 0x92,
79 	PACKET					= 0xA0,
80 	IDENTIFY_PACKET_DEVICE			= 0xA1,
81 	SERVICE					= 0xA2,
82 	SMART					= 0xB0,
83 	DEVICE_CONFIGURATION_OVERLAY		= 0xB1,
84 	NV_CACHE				= 0xB6,
85 	CFA_ERASE_SECTORS			= 0xC0,
86 	READ_MULTIPLE				= 0xC4,
87 	WRITE_MULTIPLE				= 0xC5,
88 	SET_MULTIPLE_MODE			= 0xC6,
89 	READ_DMA_QUEUED				= 0xC7,
90 	READ_DMA				= 0xC8,
91 	WRITE_DMA				= 0xCA,
92 	WRITE_DMA_QUEUED			= 0xCC,
93 	CFA_WRITE_MULTIPLE_WITHOUT_ERASE	= 0xCD,
94 	WRITE_MULTIPLE_FUA_EXT			= 0xCE,
95 	CHECK_MEDIA_CARD_TYPE			= 0xD1,
96 	STANDBY_IMMEDIATE			= 0xE0,
97 	IDLE_IMMEDIATE				= 0xE1,
98 	STANDBY					= 0xE2,
99 	IDLE					= 0xE3,
100 	ATA_READ_BUFFER				= 0xE4,
101 	CHECK_POWER_MODE			= 0xE5,
102 	SLEEP					= 0xE6,
103 	FLUSH_CACHE				= 0xE7,
104 	ATA_WRITE_BUFFER			= 0xE8,
105 	FLUSH_CACHE_EXT				= 0xEA,
106 	IDENTIFY_DEVICE				= 0xEC,
107 	MEDIA_EJECT				= 0xED,
108 	SET_FEATURES				= 0xEF,
109 	SECURITY_SET_PASSWORD			= 0xF1,
110 	SECURITY_UNLOCK				= 0xF2,
111 	SECURITY_ERASE_PREPARE			= 0xF3,
112 	SECURITY_ERASE_UNIT			= 0xF4,
113 	SECURITY_FREEZE_LOCK			= 0xF5,
114 	SECURITY_DISABLE_PASSWORD		= 0xF6,
115 	READ_NATIVE_MAX_ADDRESS			= 0xF8,
116 	SET_MAX_ADDRESS				= 0xF9
117 };
118 
119 #ifdef	__cplusplus
120 }
121 #endif
122 #endif	/* _ATA8_ACS_H */
123