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