Di529r14-ATAATAPI Command Set - 4
Di529r14-ATAATAPI Command Set - 4
Information technology -
ATA Command Set - 4 (ACS-4)
This is a draft proposed American National Standard of Accredited Standards Committee INCITS. As such this
is not a completed standard. The T13 Technical Committee may modify this document as a result of comments
received during public review and its approval as a standard. Use of the information contained here in is at your
own risk.October 14, 2016
Permission is granted to members of INCITS, its technical committees, and their associated task groups to
reproduce this document for the purposes of INCITS standardization activities without further permission,
provided this notice is included. All other rights are reserved. Any commercial or for-profit replication or
republication is prohibited.
T13 Technical Editor: Curtis E. Stevens
Western Digital Technologies, Inc.
3355 Michelson Dr. #100
Irvine, CA 92612
USA
Telephone: 949-672-7933
Email: Curtis.Stevens at wdc.com
Reference number
ISO/IEC 17760-104:20xx
ANSI INCITS 529-201x
October 14, 2016 T13/BSR INCITS 529 Revision 14
Points of Contact
INCITS Secretariat
INCITS Secretariat Tel: 202-737-8888
1101 K Street NW Suite 610 Fax: 202-638-4922
Washington, DC 20005
Email: [email protected]
T13 Reflector
See the T13 Web Site at http://www.t13.org for reflector information.
Draft
Secretariat
Information Technology Industry Council
Approved mm.dd.yy
American National Standards Institute, Inc.
ABSTRACT
This standard specifies the AT Attachment command set used to communicate between host systems and
storage devices. This provides a common command set for systems manufacturers, system integrators,
software suppliers, and suppliers of storage devices. This standard maintains a high degree of compatibility with
the ATA/ATAPI Command Set - 3 (ACS-3).
Draft
Working Draft ATA Command Set - 4 (ACS-4) iii
October 14, 2016 T13/BSR INCITS 529 Revision 14
American Approval of an American National Standard requires verification by ANSI that the
requirements for due process, consensus, and other criteria for approval have been met by
National the standards developer. Consensus is established when, in the judgment of the ANSI
Board of Standards Review, substantial agreement has been reached by directly and
Standard materially affected interests. Substantial agreement means much more than a simple
majority, but not necessarily unanimity. Consensus requires that all views and objections be
considered, and that effort be made towards their resolution.
The use of American National Standards is completely voluntary; their existence does not in
any respect preclude anyone, whether he has approved the standards or not, from
manufacturing, marketing, purchasing, or using products, processes, or procedures not
conforming to the standards.
The American National Standards Institute does not develop standards and will in no
circumstances give interpretation on any American National Standard. Moreover, no person
shall have the right or authority to issue an interpretation of an American National Standard
in the name of the American National Standards Institute. Requests for interpretations
should be addressed to the secretariat or sponsor whose name appears on the title page of
this standard.
CAUTION NOTICE: This American National Standard may be revised or withdrawn at any
time. The procedures of the American National Standards Institute require that action be
taken periodically to reaffirm, revise, or withdraw this standard. Purchasers of American
National Standards may receive current information on all standards by calling or writing the
American National Standards Institute.
CAUTION: The developers of this standard have requested that holders of patents that
may be required for the implementation of the standard, disclose such patents to the
publisher. However, neither the developers nor the publisher have undertaken a patent
search in order to identify which, if any, patents may apply to this standard. As of the
date of publication of this standard, following calls for the identification of patents that
may be required for the implementation of the standard, notice of one or more claims has
been received. By publication of this standard, no position is taken with respect to the
validity of this claim or of any rights in connection therewith. The known patent holder(s)
has (have), however, filed a statement of willingness to grant a license under these rights
on reasonable and nondiscriminatory terms and conditions to applicants desiring to
obtain such a license. Details may be obtained from the publisher. No further patent
search is conducted by the developer or the publisher in respect to any standard it
processes. No representation is made or implied that licenses are not required to avoid
infringement in the use of this standard.
Published by
American National Standards Institute
23 W. 43rd Street, New York, New York 10036
Copyright © 2013 by Information Technology Industry Council (ITI).
All rights reserved.
No part of this publication may by reproduced in any form, in an electronic retrieval system or otherwise, without
prior written permission of:
Information Technology Industry Council
1101 K St, NW Suite 610
Washington, D.C. 20005 Printed in the United States of America
Document Status
Document f13107 is the issues list for ACS-4.
Revision History (part 1 of 8)
Rev Date Description
00 29-Jan-2014 1) Initial revision created from ACS-3 r5
2) Updated to include ANSI Editor comments
3) Abstract updated to reflect ACS-4
4) Correct Bibliography to not have an Annex header, as required by ISO/IEC
5) Restarted revision history and integrated proposals list
00a 8-Mar-2014 1) Incorporated additional editorial fixes inspired by the ANSI Editor (e.g.,
'users' to 'the users' in page footnote for JEDEC, corrected spelling
INCITS in definition of T10 acronym, fixed second unordered list in 4.9.2,
'self-routine' to 'self-test routine' in 7.46.5.2.8, corrected of a plethora of
commas and periods on phrases such as “In figure 5,” remove periods
from various non-sentences such as “Reserved.”, add “i.e.,” addition of
'field' after a small caps field name). To reduce confusion, some of these
NOP changes were not marked with change bars.
01 24-Mar-2014 1) Incorporated T10/14-027r1 – Security Protocol code request for Secure
Content Storage Association.
2) Incorporated f13104r6 – Pending Defects Log.
3) Incorporated f13105r2 – Clearing Flagged and Pseudo Uncorrectable
Errors.
4) Incorporated f13129r6 – Workload Utilization Device Statistic.
5) Incorporated f13132r0 – Residual Spec Concerns About Endurance.
6) Incorporated f13144r7 – Utilization Usage Rate Information.
7) Incorporated f13156r0 – Fix the Security Command Actions Table.
8) Incorporated f14102r0 – Correct Check Power Mode Normal Output table.
9) Incorporated f14111r0 – Removal of NCQ requirement for Partial to
Slumber Transition.
10) Added cross references where possible in SMART Read Data table.
11) Added a missing 'field' in 9.21.6.
02 21-May-2014 1) Incorporated f14118r0 – Remove ATAPI from ACS-4, with following notes:
A) several oversights in f14118r0 were detected and repaired as a
result of broken cross references;
B) multiple descriptions that involved the DEVICE RESET command
and IDENTIFY PACKET DEVICE command were missed by
f14118r0 (mostly in the power management model), and most were
expunged during incorporation, with those which survived being
given a “(see ACS-3)” toe tag;
C) changes were flagged with change bars wherever possible, but
places like page footers and command deletions were missed.
2) Converted to latest ISO format for Abbreviations et al. subclause.
3) Converted to latest ISO-oriented list format and conventions.
4) Converted notes and examples formats to ISO style.
5) Converted to ISO rules for units (e.g., 30 seconds s/b 30 s)
6) Changed 1,024 to 1 024 in figure 4, and 2,048 to 2 048 in figure C.3.
7) Made figure footnote references consistent in figure C.2.
8) Made editorial tweaks in the descriptions of the SEND FPDMA QUEUED
and SFQ DATA SET MANAGEMENT commands to address concerns
raised during the April T13 Plenary while maintaining consistency with the
description of the SEND FPDMA QUEUED command.
9) Made editorial tweaks requested by James Boyd in the definition of
extended status code 0003h.
Contents
Page
Points of Contact....................................................................................................................................................ii
Contents.............................................................................................................................................................. xvi
Figures .............................................................................................................................................................xxxiii
1 Scope ................................................................................................................................................................. 1
Annex C (informative) Implementation Guidelines for 1 024- and 4 096-Byte Sector Sizes.............................. 623
C.1 Scope ................................................................................................................................................... 623
C.2 Overview .............................................................................................................................................. 623
C.3 Implementation .................................................................................................................................... 625
C.3.1 4 096-Byte Physical Sector Size Implementation ....................................................................... 625
C.3.2 Reporting Alignment (512-Byte LBA Only) ................................................................................. 625
C.3.3 RMW operations (512-Byte LBA Only) ....................................................................................... 626
C.4 Implementation Issues (512-Byte LBA Only) ....................................................................................... 626
C.4.1 Overview ..................................................................................................................................... 626
C.4.2 Drive Partitioning ........................................................................................................................ 627
C.4.3 File System Formatting ............................................................................................................... 628
C.4.4 Virtual Memory accessing .......................................................................................................... 628
C.4.5 Booting ....................................................................................................................................... 628
Annex D (informative) The DATA SET MANAGEMENT command with Trim ................................................... 629
D.1 Overview .............................................................................................................................................. 629
D.2 Trim interaction with volatile caches .................................................................................................... 630
Tables
Page
Table 1 - Numbering conventions ........................................................................................................................ 14
Table 2 - ATA string byte swapping ..................................................................................................................... 18
Table 3 - FIRMWARE REVISION field example ......................................................................................................... 19
Table 4 - Feature set summary ............................................................................................................................ 20
Table 5 - IDENTIFY DEVICE capacity reporting.................................................................................................. 21
Table 6 - Caching Priority .................................................................................................................................... 37
Table 7 - HYBRID INFORMATION field ...................................................................................................................... 39
Table 8 - Power Source interactions .................................................................................................................... 43
Table 9 - Words Transferred Per COUNT Field Unit by Command ....................................................................... 46
Table 10 - PRIO field ............................................................................................................................................. 50
Table 11 - Summary of Security States and Security Characteristics.................................................................. 71
Table 12 - Security Command Actions ................................................................................................................ 72
Table 13 - Security page settings for the SEC1: Security Disabled/Not Locked/Not Frozen state ...................... 76
Table 14 - Security page settings for the SEC2: Security Disabled/Not Locked/Frozen state............................. 77
Table 15 - Security page settings for the SEC4: Security Enabled/Locked/Not Frozen state.............................. 78
Table 16 - Security page settings for the SEC5: Security Enabled/Not Locked/Not Frozen state ....................... 79
Table 17 - Security page settings for the SEC6: Security Enabled/Not Locked/Frozen state.............................. 80
Table 18 - Preserved Feature Sets and Settings ................................................................................................. 85
Table 19 - STATUS field ......................................................................................................................................... 91
Table 20 - ERROR field .......................................................................................................................................... 96
Table 21 - INTERRUPT REASON field....................................................................................................................... 97
Table 22 - COUNT field use for NCQ Tag .............................................................................................................. 98
Table 23 - Example Command Structure........................................................................................................... 100
Table 24 - Example Normal Output ................................................................................................................... 101
Table 25 - Example Error Output ....................................................................................................................... 102
Table 26 - Command Code Usage Matrix ......................................................................................................... 103
Table 27 - Accessible Max Address Configuration FEATURE field values ........................................................... 104
Table 28 - GET NATIVE MAX ADDRESS EXT command inputs ...................................................................... 104
Table 29 - SET ACCESSIBLE MAX ADDRESS EXT command inputs............................................................. 106
Table 30 - FREEZE ACCESSIBLE MAX ADDRESS EXT command inputs...................................................... 108
Table 31 - CHECK POWER MODE command inputs........................................................................................ 109
Table 32 - CONFIGURE STREAM command inputs ......................................................................................... 110
Table 33 - DATA SET MANAGEMENT command inputs .................................................................................. 112
Table 34 - DSM FUNCTION field ............................................................................................................................ 113
Table 35 - Data returned for trimmed logical sectors ......................................................................................... 113
Table 36 - LBA Range Entry page format .......................................................................................................... 114
Table 37 - SEND FPDMA QUEUED command encapsulation for the subcommand specific inputs from a
DATA SET MANAGEMENT command............................................................................................ 115
Table 38 - DATA SET MANAGEMENT XL command inputs............................................................................. 116
Table 39 - XL LBA Range Entry page format .................................................................................................... 117
Table 40 - SEND FPDMA QUEUED command encapsulation for the subcommand specific inputs from a
DATA SET MANAGEMENT XL command ...................................................................................... 117
Table 41 - DOWNLOAD MICROCODE SUBCOMMAND field................................................................................ 119
Table 42 - DOWNLOAD MICROCODE command inputs .................................................................................. 130
Table 43 - COUNT field output for DOWNLOAD MICROCODE requesting the offset transfer method .............. 131
Table 44 - DOWNLOAD MICROCODE DMA command inputs ......................................................................... 132
Table 45 - EXECUTE DEVICE DIAGNOSTIC command inputs........................................................................ 133
Table 46 - Diagnostic codes .............................................................................................................................. 134
Table 47 - FLUSH CACHE command inputs ..................................................................................................... 135
Table 48 - FLUSH CACHE EXT command inputs ............................................................................................. 137
Table 49 - IDENTIFY DEVICE command inputs................................................................................................ 139
Table 50 - IDENTIFY DEVICE data ................................................................................................................... 140
Table 51 - Specific configuration........................................................................................................................ 159
Table 52 - Minor version number ....................................................................................................................... 165
Table 53 - Transport minor version number....................................................................................................... 174
Figures
Page
Figure 1 - ATA document relationships................................................................................................................ 1
Figure 2 - State diagram convention .................................................................................................................. 15
Figure 3 - Byte, word, DWord, QWord, and DQWord relationships ................................................................... 17
Figure 4 - LLS and LPS Example ...................................................................................................................... 48
Figure 5 - Alignment 0........................................................................................................................................ 48
Figure 6 - Alignment 1........................................................................................................................................ 49
Figure 7 - Alignment 3........................................................................................................................................ 49
Figure 8 - Power management state diagram.................................................................................................... 54
Figure 9 - Sanitize Device state machine .......................................................................................................... 65
Figure 10 - Security state diagram ..................................................................................................................... 75
Figure 11 - DOWNLOAD MICROCODE State Machine .................................................................................. 121
Figure 12 - Example of a Device Internal Status log with data in all three data areas..................................... 529
Figure 13 - Example of a Device Internal Status log with no data ................................................................... 530
Figure 14 - Example of a Device Internal Status log with mixed data areas.................................................... 530
Figure B.1 - Example flowchart for SCT commands ........................................................................................ 613
Figure B.2 - Example sequence for foreground write same with a repeating write pattern.............................. 614
Figure B.3 - Example sequence for foreground write same with a repeating pattern ...................................... 614
Figure B.4 - Example sequence for writing data using an SCT command with no background activity .......... 615
Figure B.5 - Example sequence for reading data using an SCT command with no background activity......... 615
Figure B.6 - Example sequence for a Non-Data SCT command with no background activity ......................... 616
Figure B.7 - Example sequence for writing data using an SCT command with background activity ............... 617
Figure B.8 - Example sequence for writing data using multiple write data transfers........................................ 618
Figure B.9 - Example sequence for a Non-Data SCT command with background activity .............................. 619
Figure C.1 - System Dependency Chain ......................................................................................................... 623
Figure C.2 - Mapping Proposals ...................................................................................................................... 624
Figure C.3 - Logical Sector to Physical Mapping ............................................................................................. 624
Figure C.4 - Uncorrectable Error Handling....................................................................................................... 626
Figure C.5 - Typical HDD Layout Using A Master Boot Record....................................................................... 627
Foreword
(This foreword is not part of this standard.)
This standard is designed to maintain a high degree of compatibility with the ACS-3 standard.
Requests for interpretation, suggestions for improvement and addenda, or defect reports are welcome. They
should be sent to the INCITS Secretariat, ITI, 1101 K Street NW, Suite 610, Washington, DC 20005.
This standard was processed and approved for submittal to ANSI by InterNational Committee for Information
Technology Standards (INCITS). Committee approval of this standard does not necessarily imply that all
committee members voted for approval. At the time it approved this standard, INCITS had the following
members:
Name Company
TBD
Technical Committee T13 on ATA Interfaces, that reviewed this standard, had the following members and
additional participants:
Dan Colegrove (Toshiba America Electronic Components), Chair
Jim Hatfield (Seagate), Vice-Chair
William Martin (Samsung), Secretary
Company Name
TBD
Introduction
This standard encompasses the following:
Clause 1 describes the scope.
Clause 2 provides normative references for the entire standard.
Clause 3 provides definitions, abbreviations, and conventions used within the entire standard.
Clause 4 describes the general operating requirements of the command layer.
Clause 5 describes the ATA protocols used by the commands in this standard.
Clause 6 describes Normal and Error Output fields.
Clause 7 describes commands.
Clause 8 describes the SCT Command Transport.
Clause 9 describes logs.
Clause 10 describes command normal and error outputs.
Annex A provides command summaries.
Annex B provides a tutorial on how to use SCT.
Annex C provides implementation guidelines for 1 024/4 096 byte sectors.
Windows is a registered trademark of Microsoft Corporation in the United States and/or other countries.
CFast and CompactFlash are trademarks of the Compact Flash Association.
device specifications
Other related
Architecture Model
AT Attachment – 8
AT Attachment – 8 AT Attachment – 8
Parallel Transport Serial Transport
(ATA8-APT) (ATA8-AST)
This standard maintains compatibility with the ACS-2 standard, INCITS 482-2012, while providing additional
functions.
The following features and commands have been made obsolete in this standard:
a) the AT Attachment with Packet Interface (ATAPI);
b) the READ MULTIPLE command;
c) the READ MULTIPLE EXT command;
d) the SET MULTIPLE MODE command;
e) the SMART EXECUTE OFF-LINE IMMEDIATE command;
f) the SMART READ data command;
g) the SMART DISABLE OPERATIONS command;
h) the SMART ENABLE/DISABLE ATTRIBUTE AUTOSAVE command;
i) the SMART ENABLE OPERATIONS command;
j) the WRITE MULTIPLE command;
k) the WRITE MULTIPLE EXT command;
l) the WRITE MULTIPLE FUA EXT command;
m) the contents of IDENTIFY DEVICE data word 47; and
n) the contents of IDENTIFY DEVICE data word 58 bits 8:0.
2 Normative references
The following documents, in whole or in part, are normatively referenced in this document and are indispensable
for its application. For dated references, only the edition cited applies. For undated references, the latest edition
of the referenced document (including any amendments) applies.
ISO/IEC 646, Information technology – ISO 7-bit coded character set for information interchange 1
ISO 7779:1999, Acoustics – Measurement of airborne noise emitted by information technology and
telecommunications equipment
ANSI INCITS 451-2008, AT Attachment-8 – ATA/ATAPI Architecture Model (ATA8-AAM)
ANSI INCITS 493-2012, AT Attachment-8 – Serial Transport (ATA8-AST)
T13/INCITS BSR 535, ATA/ATAPI Serial Transport (AST-2) (under consideration)
ANSI INCITS 524-201x, AT Attachment-8 – Parallel Transport (ATA8-APT) (under national consideration)
ISO/IEC 17760-102, ATA/ATAPI Command Set - 2 (ACS-2) (under consideration)
ANSI INCITS 522-2014, ATA/ATAPI Command Set - 3 (ACS-3) (planned as ISO/IEC 17760-103)
T13/INCITS BSR 537, Zoned-device ATA Command Set (ZAC) (planned as ISO/IEC 17760-171)
T10/INCITS BSR 506, SCSI Block Commands – 4 (SBC-4) (under consideration)
Serial ATA revision 3.2 (SATA 3.2) 2
Serial ATA revision 3.3 (SATA 3.3) (under consideration) 2
RFC 3280, Internet X.509 Public Key Infrastructure: Certificate and Certificate Revocation List (CRL) Profile,
IETF, 2002 3
RFC 3281, An Internet Attribute Certificate: Profile for Authorization, IETF, 2002 3
CompactFlash Association Specification, Revision 6.1 (CFA-CF) 4
CFast™, a CompactFlash™ Association Specification, Rev 2.0 4
FIPS PUB 140-2, Security Requirements For Cryptographic Modules, May 25, 2001 5
FIPS PUB 140-3 (Revised DRAFT 09/11/09), Security Requirements for Cryptographic Modules, 09/11/09 5
1. ANSI INCITS 4-1986 (R2012), Information Systems – Coded Character Sets – 7-Bit American National
Standard Code for Information Interchange (7-Bit ASCII)
2. For more information on Serial ATA international Organization, see http://www.sata-io.org/.
3. For more information on IETF publications, see http://www.ietf.org/.
4. For more information on CompactFlash Association publications, see http://www.compactflash.org/.
5. For more information on National Institute of Standards and Technology publications, see
http://www.nist.gov/.
6. For more information on SFF specifications contact the SFF committee at www.sffcommittee.org.
3.1 Definitions
3.1.1 28-bit command
command that uses the FEATURE field (7:0), COUNT field (7:0), LBA field (27:0), ICC field (7:0), AUXILIARY field
(31:0), DEVICE field (15:8), and COMMAND field (7:0) to specify its arguments
3.1.2 48-bit command
command that uses the FEATURE field (15:0), COUNT field (15:0), LBA field (47:0), ICC field (7:0), AUXILIARY field
(31:0), DEVICE field (15:8), and COMMAND field (7:0) to specify its arguments
3.1.3 accessible max address
maximum LBA that is accessible by read commands and write commands that return command completion
without error
3.1.4 Active mode
power condition specified by the PM0: Active state
Note 1 to entry: See 4.16.4.
3.1.5 additional sense code
combination of the ADDITIONAL SENSE CODE field and the ADDITIONAL SENSE CODE QUALIFIER field
Note 1 to entry: See 7.31 and 9.14.
3.1.6 administrator
person who is responsible for the administration of one or more devices
Note 1 to entry: For example, the person who establishes passwords in the Security feature set (see 4.21).
3.1.7 advanced background operations
background processing that may impact device response time to affected LBAs and may include garbage
collection operations
3.1.8 ASCII character
byte containing a 7-bit ASCII pattern in bits 6:0 with bit 7 cleared to zero
Note 1 to entry: See ANSI INCITS 4-1986.
3.1.9 ATA device
device that supports the General feature set
Note 1 to entry: See 4.2.
3.1.10 ATA string
set of ASCII characters in the format specified in 3.4.9
3.1.11 ATAPI (AT Attachment Packet Interface) device
device that supports the PACKET feature set
Note 1 to entry: See ACS-3.
3.1.12 background activity
activity initiated by a command that occurs after command completion has been reported
3.1.13 BIOS (Basic Input/Output System)
application client that is run when power is applied whose primary function is to initialize various components
(e.g., storage devices)
3.1.14 byte
sequence of eight contiguous bits considered as a unit
Note 1 to entry: See 3.4.8.
3.1.15 cache
data storage area outside the area accessible by hosts
Note 1 to entry: The cache may contain a subset of the data stored in the non-volatile media.
3.1.32 FIS
frame structure used by the Serial ATA transport
Note 1 to entry: See ATA8-AST.
3.1.33 flush command
command that flushes the volatile write cache
Note 1 to entry: The following commands are flush commands: the FLUSH CACHE (see 7.10) command and the
FLUSH CACHE EXT (see 7.11) command.
3.1.34 free-fall
vendor specific condition of acceleration
3.1.35 garbage collection operation
process that prepares resources for future allocation
3.1.36 hardware reset
routine performed by a device after a hardware reset event as defined in ATA8-AAM
3.1.37 host
object that originates commands and device management functions
Note 1 to entry: See ATA8-AAM.
3.1.38 host interface
service delivery subsystem
Note 1 to entry: See ATA8-AAM.
3.1.39 hybrid device
a device that contains a primary medium and a non-volatile cache
3.1.40 ID Not Found error
command completion with the ID NOT FOUND bit set to one (see 6.3.4)
3.1.41 Idle mode
one or all of the power conditions associated with the PM1: Idle state (see 4.16.4)
3.1.42 Invalid LBA
LBA that is greater than or equal to the largest value reported in IDENTIFY DEVICE data words 60..61
(see 7.12.6.22), the ACCESSIBLE CAPACITY field (see 9.11.4.2), or IDENTIFY DEVICE data words 230..233
(see 7.12.6.87)
3.1.43 LBA
value used to reference a logical sector
3.1.44 log
named sequence of one or more log pages
Note 1 to entry: See clause 9.
3.1.45 log address
numeric value that a log command uses to identify a specific log
3.1.46 logical block
synonym for logical sector
3.1.47 log command
SMART READ LOG command (see 7.44.2), SMART WRITE LOG command (see 7.44.4), or GPL feature set
(see 4.11) command
3.1.48 log page
512-byte block of data associated with a log
Note 1 to entry: See clause 9.
3.1.79 signed
value that is encoded using two’s complement
3.1.80 Sleep mode
power condition specified by the PM3: Sleep state
Note 1 to entry: See 4.16.4.
3.1.81 software reset
routine performed by a device after a software reset event as defined in ATA8-AAM
Note 1 to entry: The software reset routine includes the actions defined in ATA8-AAM, this standard, and the
applicable transport standards.
3.1.82 solid state device
a device which uses non-volatile memory to store user data
3.1.83 spin-down
process of bringing a rotating media device’s media to a stop
3.1.84 spin-up
process of bringing a rotating media device's media to operational speed
3.1.85 Standby mode
one or all of the power conditions associated with the PM2: Standby state
Note 1 to entry: See 4.16.4.
3.1.86 Stream
set of operating parameters specified by a host using the CONFIGURE STREAM command (see 7.4) to be used
for subsequent read stream commands and write stream commands
3.1.87 sync
a process within the device where dirty data in the non-volatile cache is written copied to the primary medium
3.1.88 transport
mechanism used to communicate with a device
Note 1 to entry: See ATA8-APT and ATA8-AST.
3.1.89 trim command
DATA SET MANAGEMENT command or DATA SET MANAGEMENT XL command with the TRIM bit set to one
3.1.90 trimmed
property associated with a logical sector that affects the data returned by read commands
3.1.91 trimmed logical sector
logical sector that has been affected by a command that has the TRIM bit set to one
Note 1 to entry: Commands that request logical sectors to be trimmed may not affect all specified logical sectors.
3.1.92 unaligned write
write command that does not start at the first logical sector of a physical sector or does not end at the last logical
sector of a physical sector
3.1.92.1 unrecoverable error
error that causes the device to set either the ERROR bit or the DEVICE FAULT bit to one in the STATUS field at
command completion
3.1.93 user data
data that is transferred between the host and the device using read commands and write commands
3.1.94 user data area
area of the media that is addressable from LBA 0 to the native max address if the Accessible Max Address
Configuration feature set is supported or LBA 0 to the maximum value defined in table 5 if the Accessible Max
Address Configuration feature set is not supported
3.1.95 volatile cache
cache that does not retain data through power cycles
3.1.96 word
sequence of two contiguous bytes considered as a unit
Note 1 to entry: See 3.4.8.
3.1.97 write FUA command
write command that specifies that the device write user data to non-volatile media before reporting command
completion
Note 1 to entry: The WRITE FPDMA QUEUED command with the FUA bit set to one, and the WRITE DMA FUA
EXT command are write FUA commands.
3.1.98 write command
command that causes the device to store user data
Note 1 to entry: The following commands are write commands: the SCT Write Same command, WRITE DMA
command, WRITE DMA EXT command, WRITE DMA FUA EXT command, WRITE FPDMA QUEUED
command, WRITE SECTOR(S) command, WRITE SECTOR(S) EXT command, WRITE STREAM DMA EXT
command, WRITE STREAM EXT command, and ZERO EXT command.
3.1.99 write stream command
command that causes the device to transfer user data from the host to the device
Note 1 to entry: The following commands are write stream commands: the WRITE STREAM DMA EXT
command and WRITE STREAM EXT command.
Editor’s Note 3: Should this refer to ID DATA Log instead? I do not think the reported in part works
anymore
3.1.100 WWN
64 bit worldwide unique name based upon a company’s IEEE OUI, reported in IDENTIFY DEVICE data words
108..111
Note 1 to entry: See 7.12.6.58.
Abbreviation Meaning
CFast CompactFlash ATA Serial Transport (see clause 2)
CRC Cyclic Redundancy Check
DAS Device Activity Signal (see SATA 3.3)
DMA Direct Memory Access
DRQ Data ReQuest
DSN Device Statistics Notification
DSS Disable Staggered Spinup (see SATA 3.3)
EPC Extended Power Conditions
EXT Command that uses the extended (48-bit LBA) format parameters
FIS Frame Information Structure
FUA Forced Unit Access
GPL General Purpose Logging
ISO Organization for International Standards
LBA Logical Block Address
LLS Long Logical Sector
LPS Long Physical Sector
LSB Least Significant Bit
MSB Most Significant Bit
NVM Non-Volatile Memory
NCQ Native Command Queueing
OUI Organizationally Unique Identifier
PATA Parallel ATA
PCIe PCI Express® Base Specification
PIO Programmed Input/Output
PUIS Power-Up In Standby
RMW Read-Modify-Write
SATA Serial ATA
SATA-IO Serial ATA International Organization (see www.sata-io.org)
SBC-4 SCSI Block Commands - 4
Editor’s Note 4: Originally, this was true. Not sure we should define the
acronym now
SCT
3.2.2 Units
Units used in this standard:
Unit Meaning
h hour (unit of time)
min minute (unit of time)
ma milliampere
Unit Meaning
ms millisecond (i.e., 10-3 seconds)
ns nanosecond (i.e., 10-9 seconds)
s second (unit of time)
µs microsecond (i.e., 10-6 seconds)
V volt
3.2.3 Symbols
Symbols used in this standard:
Symbol Meaning
® registered trademark
3.3 Keywords
3.3.1 expected
keyword used to describe the behavior of the hardware or software in the design models assumed by this
standard
Note 1 to entry: Other hardware and software design models may also be implemented.
3.3.2 mandatory
keyword indicating items to be implemented as defined by this standard
3.3.3 may
keyword that indicates flexibility of choice with no implied preference
3.3.4 N/A
keyword that indicates a field is not applicable and has no defined value
Note 1 to entry: A field defined as N/A should not be checked by the host or device.
3.3.5 obsolete
keyword indicating that the designated bits, bytes, words, fields, and code values that may have been defined in
previous standards are not defined in this standard and shall not be reclaimed for other uses in future standards
Note 1 to entry: Some degree of functionality may be required for items designated as “obsolete” to provide for
backward compatibility.
Note 2 to entry: Obsolete commands should not be used by the host.
Note 3 to entry: Commands defined as obsolete may return command aborted by devices conforming to this
standard. However, if a device does not return command aborted for an obsolete command, the device shall
return command completion for the command.
3.3.6 optional
keyword that describes features that are not required by this standard
Note 1 to entry: If any optional feature defined by the standard is implemented, the feature shall be implemented
in the way defined by the standard.
3.3.7 prohibited
keyword indicating that an item shall not be supported by an implementation
3.3.8 reserved
keyword indicating reserved bits, bytes, words, fields, and code values that are set aside for future
standardization
Note 1 to entry: The use and interpretation of reserved bits, bytes, words, fields, and code values may be
specified by future extensions to this or other standards.
Note 2 to entry: A reserved bit, byte, word, or field shall be cleared to zero, or set in accordance with a future
extension to this standard.
Note 3 to entry: The recipient shall not check reserved bits, bytes, words, or fields.
Note 4 to entry: Receipt of reserved code values in defined fields shall be considered a command parameter
error and reported by returning command aborted.
3.3.9 retired
keyword indicating that the designated bits, bytes, words, fields, and code values that had been defined in
previous standards are not defined in this standard and may be reclaimed for other uses in future standards
Note 1 to entry: If retired bits, bytes, words, fields, or code values are used before they are reclaimed, they shall
have the meaning or functionality as described in previous standards.
3.3.10 shall
keyword indicating a mandatory requirement
Note 1 to entry: Designers are required to implement all such mandatory requirements to ensure interoperability
with other products that conform to this standard.
3.3.11 should
keyword indicating flexibility of choice with a strongly preferred alternative
Note 1 to entry: This keyword is equivalent to the phrase “it is recommended”.
3.3.12 vendor specific
something (e.g., a bit, field, code value) that is not defined by this standard
Note 1 to entry: Specification of the referenced item is determined by the device vendor and may be used
differently in various implementations.
3.4 Conventions
3.4.1 Overview
Lowercase is used for words having the normal English language meaning. Certain words and terms used in this
standard have a specific meaning beyond the normal English language meaning. These words and terms are
defined either in clause 3 or in the text where they first appear.
The names of abbreviations, commands, fields, and acronyms used as signal names are in all uppercase (e.g.,
IDENTIFY DEVICE). Fields containing only one bit are usually referred to as the “name” bit instead of the
“name” field. (See 3.4.5 for the naming convention used for naming bits.)
Names of device fields begin with a capital letter (e.g., Count).
Names of fields are in small uppercase (e.g., DRAT SUPPORTED). Normal case is used when the contents of a
field are being discussed. Fields containing only one bit are usually referred to as the NAME bit instead of the
NAME field.
The expression “word n” or “bit n” shall be interpreted as indicating the content of word n or the content of bit n.
3.4.2 Precedence
If there is a conflict between text, figures, and tables, the precedence shall be tables, figures, then text.
3.4.3 Lists
3.4.3.1 Lists overview
Lists are associated with an introductory paragraph or phrase, and are numbered relative to that paragraph or
phrase (i.e., all lists begin with an a) or 1) entry).
Each item in a list is preceded by an identification with the style of the identification being determined by whether
the list is intended to be an ordered list or an unordered list.
If the item in a list is not a complete sentence, the first word in the item is not capitalized. If the item in a list is a
complete sentence, the first word in the item is capitalized.
Each item in a list ends with a semicolon, except the last item, which ends in a period. The next to the last entry
in the list ends with a semicolon followed by an “and” or an “or” (i.e., “…; and”, or “…; or”). The “and” is used if all
the items in the list are required. The “or” is used if only one or more items in the list are required.
3.4.3.2 Unordered lists
An unordered list is one in which the order of the listed items is unimportant (i.e., it does not matter where in the
list an item occurs as all items have equal importance). Each list item shall start with a lower case letter followed
by a close parenthesis. If it is necessary to subdivide a list item further with an additional unordered list (i.e.,
have a nested unordered list), then the nested unordered list shall be indented and each item in the nested
unordered list shall start with an upper case letter followed by a close parenthesis.
The following is an example of an unordered list with a nested unordered list:
EXAMPLE - The following are the items for the assembly:
a) a box containing:
A) a bolt;
B) a nut; and
C) a washer;
b) a screwdriver; and
c) a wrench.
An ordered list is one in which the order of the listed items is important (i.e., item n is required before item n+1).
Each listed item starts with a Western-Arabic numeral followed by a close parenthesis. If it is necessary to
subdivide a list item further with an additional unordered list (i.e., have a nested unordered list), then the nested
unordered list shall be indented and each item in the nested unordered list shall start with an upper case letter
followed by a close parenthesis.
The following is an example of an ordered list with a nested unordered list:
EXAMPLE - The following are the instructions for the assembly:
1) remove the contents from the box;
2) assemble the item;
A) use a screwdriver to tighten the screws; and
B) use a wrench to tighten the bolts;
and
3) take a break.
3.4.4 Numbering
A binary number is represented in this standard by any sequence of digits consisting of only the Western-Arabic
numerals 0 and 1 immediately followed by a lower-case b (e.g., 0101b). Underscores or spaces may be included
between characters in binary number representations to increase readability or delineate field boundaries (e.g., 0
0101 1010b or 0_0101_1010b).
A hexadecimal number is represented in this standard by any sequence of digits consisting of only the
Western-Arabic numerals 0 through 9 and/or the upper-case English letters A through F immediately followed by
a lower-case h (e.g., FA23h). Underscores or spaces may be included between characters in hexadecimal
number representations to increase readability or delineate field boundaries (e.g., B FD8C FA23h or
B_FD8C_FA23h).
A decimal number is represented in this standard by any sequence of digits consisting of only the Arabic
numerals 0 through 9 not immediately followed by a lower-case b or lower-case h (e.g., 25). This standard uses
the following conventions for representing decimal numbers:
a) the decimal separator (i.e., separating the integer and fractional portions of the number) is a period;
b) the thousands separator (i.e., separating groups of three digits in a portion of the number) is a space;
and
c) the thousands separator is used in both the integer portion and the fraction portion of a number.
Table 1 shows some examples of decimal numbers using various numbering conventions.
A decimal number represented in this standard with an overline over one or more digits following the decimal
point is a number where the overlined digits are infinitely repeating (e.g., 666.6 means 666.666 666… or 666 2/3,
and 12.142 857 means 12.142 857 142 857… or 12 1/7).
3.4.5 Bit conventions
Name (n:m), where n is greater than m, denotes a set of bits (e.g., Feature (7:0)). n:m where n is greater than m
denotes a bit range in a table.
3.4.6 Number range convention
p..q, where p is less than q, represents a range of numbers (e.g., words 100..103 represents words 100, 101,
102, and 103).
Transition Condition
or COMMAND (value)
Transition Label
Transition Action
Transition Condition
or COMMAND (value)
Transition Label
Transition Action
Transition Condition
Transition Label
Transition Action
State re-entry
Each state is identified by a state designator and a state name. The state designator is unique among all states
in all state diagrams in this standard. The state designator consists of a set of letters that are capitalized in the
title of the figure containing the state diagram followed by a unique number. The state name is a brief description
of the primary action taken during the state, and the same state name may appear in other state diagrams. If the
same primary function occurs in other states in the same state diagram, then the primary functions are
designated with a unique letter at the end of the name. Additional actions may be taken while in a state and
these actions are described in the state description text.
Each transition is identified by a transition label, a transition condition, and optionally by a transition action. The
transition label consists of the state designator of the state from which the transition is being made followed by
the state designator of the state to which the transition is being made. The transition to enter or exit a state
diagram may come from or go to a number of state diagrams, depending on the command being processed. In
this case, the state designator is labeled State_name. The transition condition is a brief description of the event
or condition that causes the transition to occur. A transition action may be included, indicated in italics, that is
taken when the transition occurs. This action is described in the transition description text.
Upon entry to a state, all actions to be processed in that state are processed. If a state is re-entered from itself,
all actions to be processed in the state are processed again.
Each state machine is instantiated based on the Entry Conditions. An Entry Condition is a transition based on an
action occurring outside of the state machine.
All transitions shall be instantaneous.
The notation COMMAND (value), as a transition condition, refers to the device receiving the command with a
specific value or values. For example:
a) CRYPTO SCRAMBLE EXT (failure exit allowed) means the device processes a CRYPTO SCRAMBLE
EXT command with the FAILURE MODE bit set to one; or
b) CRYPTO SCRAMBLE EXT (hard failure required) means the device processes CRYPTO SCRAMBLE
EXT command with the FAILURE MODE bit cleared to zero.
If the (value) notation is not present on a transition, then the transition occurs for any parameter combination of
the command.
Word at offset n
Word n
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MSB LSB
DWord n/2
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MSB LSB
QWord n/4
63 ... 56 55 ... 48 47 ... 40 39 ... 32 31 ... 24 23 ... 16 15 ... 8 7 ... 0
MSB LSB
Byte 2n+7 Byte 2n+6 Byte 2n+5 Byte 2n+4 Byte 2n+3 Byte 2n+2 Byte 2n+1 Byte 2n
DQWord n/8
127 ... 112 111 ... 96 95 ... 80 79 ... 64 63 ... 48 47 ... 32 31 ... 16 15 ... 0
MSB LSB
Word n+7 Word n+6 Word n+5 Word n+4 Word n+3 Word n+2 Word n+1 Word n
Unless stated or defined otherwise, in a field containing a multi-byte value (e.g., a word, DWord, or QWord), the
byte containing the LSB is stored at the lowest offset and the byte containing the MSB is stored at the highest
offset.
EXAMPLE 1 - If the two-byte field (i.e., word) in SCT command (see table 189) word 0 contains 0007h, then:
a) byte 0 contains 07h; and
b) byte 1 contains 00h.
EXAMPLE 2 - If the four-byte field (i.e., DWord) at IDENTIFY DEVICE data words 60..61 (see table 50) contains 8001_0203h
(i.e., 2 147 549 699), then:
a) byte 120 contains 03h;
b) byte 121 contains 02h;
c) byte 122 contains 01h; and
d) byte 123 contains 80h.
EXAMPLE 3 - If an eight-byte field (i.e., QWord) in the SCT Write Same command words 2..5 (see table 191) contains
0000_0504_0302_0100h), then:
a) byte 4 contains 00h;
b) byte 5 contains 01h;
c) byte 6 contains 02h;
d) byte 7 contains 03h;
e) byte 8 contains 04h;
f) byte 9 contains 05h;
g) byte 10 contains 00h; and
h) byte 11 contains 00h.
Exceptions to this convention include:
a) each field containing an ATA string (e.g., fields in the ATA Strings log page (see 9.11.7)) is considered to
be an array of bytes, not a multi-byte value, and is handled as described in 3.4.9;
b) the IDENTIFY DEVICE data World Wide Name field consists of four word fields rather than one QWord
field and is handled as described in 7.12.6.58; and
c) parameter data in the TRUSTED RECEIVE command (see 7.48), TRUSTED RECEIVE DMA command
(see 7.49), TRUSTED SEND command (see 7.50), and TRUSTED SEND DMA command (see 7.51) is
formatted as defined in those sections or in the standard defining the security protocol.
3.4.9 ATA string convention
ATA strings (e.g., the MODEL NUMBER field (see 9.11.7.4)) are sequences of bytes containing ASCII graphic
characters in the range of 20h-7Eh. ATA strings shall not contain values in the range of 00h-1Fh or 7Fh-FFh.
Each pair of bytes in an ATA string is swapped as shown in table 2.
Using the ATA string that contains firmware revision information as an example, table 3 shows the contents
of the FIRMWARE REVISION field (see 9.11.7.3) in the Strings page (see 9.11.7) in IDENTIFY DEVICE data log
(see 9.11). In this example, the firmware revision string is “abcdefg ”, including one padding space character
at the end of the string. Table 3 also shows the copy of the FIRMWARE REVISION field that uses the word format
of the IDENTIFY DEVICE input from device to host data structure (see 7.12.6).
4.1 Overview
4.1.1 Feature set summary
Table 4 lists the feature sets in alphabetical order and shows whether a feature set is mandatory, optional, or
prohibited for ATA devices.
ATA
Feature set devices
48-bit Address feature set (see 4.3) O
Accessible Max Address Configuration feature set (see 4.4) O
Advanced Background Operation feature set (see 4.5) O
Advanced Power Management (APM) feature set (see 4.6) O
CompactFlash Association (CFA) feature set (see 4.7) O
Device Statistics Notifications (DSN) feature set (see 4.8) O
Extended Power Conditions (EPC) feature set (see 4.9) O
Free-fall Control feature set (see 4.10) O
General feature set (see 4.2) M
General Purpose Logging (GPL) feature set (see 4.11) M
Hybrid Information feature set (see 4.12) O
Long Logical Sector (LLS) feature set (see 4.13) O
Long Physical Sector (LPS) feature set (see 4.14) O
Native Command Queuing (NCQ) feature set (see 4.15) O
PACKET feature set (see ACS-3) P
Power Management feature set (see 4.16) M
Power-Up In Standby (PUIS) feature set (see 4.17) O
Rebuild Assist feature set (see 4.18) O
Sanitize Device feature set (see 4.19) O
SATA Hardware Feature Control feature set (see 4.20) O
Security feature set (see 4.21) O
Self-Monitoring, Analysis, and Reporting Technology (SMART) feature set (see 4.22) O
Sense Data Reporting feature set (see 4.23) O
Software Settings Preservation (SSP) feature set (see 4.24) O
Streaming feature set (see 4.25) O
Trusted Computing feature set (see 4.26) O
Write-Read-Verify feature set (see 4.27) O
Key: M – Mandatory, O – Optional, P – Prohibited
Current Capacity
Device Settings Settings Reported Capacities
IDENTIFY accessible accessible
DEVICE IDENTIFY max max
data DEVICE address address IDENTIFY IDENTIFY
word 83 bit data IDENTIFY DEVICE DEVICE ACCESSIBLE
10 (48-bit word 69 0FFF_ FFFF_ DEVICE data data words data words CAPACITY
a
support) bit 3 FFFFh FFFFh words 60..61 100..103 230..233 field
accessible accessible
0 N/A N/A N/A max address reserved reserved max address
+1 +1
accessible accessible accessible
1 0 yes yes max address max address reserved max address
+1 +1 +1
accessible accessible
0000_0000_
1 0 no no max address reserved max address
0FFF_FFFFh
+1 +1
accessible accessible
0000_0000_
1 0 no yes max address reserved max address
0FFF_FFFFh
+1 +1
accessible accessible accessible accessible
1 1 yes yes max address max address max address max address
+1 +1 +1 +1
less than
or equal to accessible accessible
0000_0000_
1 1 no no accessible max address max address
0FFF_FFFFh
max address + 1 +1
+1b
less than
or equal to accessible accessible
0000_0000_
1 1 no yes accessible max address max address
0FFF_FFFFh
max address + 1 +1
+1b
a The ACCESSIBLE CAPACITY field is defined in 9.11.4.2.
b IDENTIFY DEVICE data words 100..103 may be limited to 0000_0000_FFFF_FFFFh
A device shall not change the content in the ACCESSIBLE CAPACITY field (see 9.11.4.2), IDENTIFY DEVICE data
words 60..61, or IDENTIFY DEVICE data words 230..233, during the processing of all resets (e.g., a power-on
reset).
Editor’s Note 5: should DATA SET MANAGEMENT XL (see 7.6) be in this list?
then, after power is restored, a read command that completes without error for any LBA included in that write
command shall return the user data that was written by that write command before the unexpected power
removal.
If:
1) the device has non-volatile media;
2) a write FUA command completes without error; and
3) an unexpected power removal occurs,
then, after power is restored, a read command that completes without error for any LBA included in that write
FUA command shall return the user data that was written by that write FUA command before the unexpected
power removal.
If:
1) the device has non-volatile media;
2) a write command completes without error;
3) a subsequent flush command completes without error; and
4) an unexpected power removal occurs,
then, after power is restored, a read command that completes without error for any LBA included in that write
command shall return the user data that was written by that write command before the unexpected power
removal.
4.2.3 Interactions with volatile caches
While processing write commands, as a result of using volatile write cache, there is a period of time during which
the user data may be lost if:
a) an unexpected power removal occurs (see 4.2.2); or
b) a hardware failure occurs.
If an error occurs while the device is writing to the medium and that error is reported as a deferred error, then the
device may invalidate cached user data. This invalidation may occur for data cached in both volatile and
non-volatile caches.
If volatile write cache is enabled and the device processes:
a) a flush command;
b) a STANDBY IMMEDIATE command; or
c) a write stream command with the FLUSH bit set to one,
then all user data in volatile write cache becomes non-volatile before returning command completion without
error.
If the device processes a SET FEATURES disable volatile write cache subcommand, then the device initiates a
sequence to flush volatile cache to non-volatile media before command completion (see 7.41.3).
If volatile write cache is enabled and a transition to a power condition that prevents access to the media is
requested (e.g., before a hard drive stops its spindle motor during a transition to the Standby_z power condition),
then all user data in volatile write cache becomes non-volatile.
If:
a) a) the write-read-verify feature set is enabled; and
b) b) the processing of a write command requires the device to read from the media before returning
command completion without error,
then all user data in volatile write cache for that write command shall become non-volatile before returning
command completion without error for that write command.
If volatile write cache is enabled and the device returns command completion without error for an
IDLE IMMEDIATE command with the Unload feature, then all user data in volatile write cache may remain
volatile.
Editor’s Note 6: The above reference to 7.1.3 does not say anything about intermixing...
Devices that support the 48-bit feature set shall indicate support of the 48-bit Address feature set by setting the
48-BIT SUPPORTED bit (see 9.11.5.2.16) to one.
Editor’s Note 7: Not sure if the below is a duplicate requirement. There is a requirement already in a)
If a read command or a write command is processed while host-initiated advanced background operations are
active, then the device may:
a) suspend ABO when that command is processed and resume after returning command completion; or
b) continue ABO while processing that command.
4.5.3 Device-initiated advanced background operations
If the value of the FRACTION OF DEVICE RESOURCES AVAILABLE field (see 9.5.4.13) is less than or equal to the value
of the ABO MINIMUM FRACTION field (see 9.11.5.14.3), then the device may initiate advanced background
operations without a request from the host.
The device notifies the host when device initiated advanced background operations are imminent using the
Device Statistics Notification feature (see 4.8).
The host should set the threshold for the FRACTION OF DEVICE RESOURCES AVAILABLE field sufficiently high to allow
the host to receive a notification and specify to the device to perform host initiated advanced background
operations before the device reaches the minimum fraction.
Editor’s Note 8: The above reference seems archaic... Should we say Enable/Disable the DSN
feature set (see 7.41.20)?
If the DSN feature set is enabled, then the DSN feature set shall:
a) be disabled upon processing a power-on reset (see ATA8-AAM); and
b) remain enabled across all other resets (e.g., hardware reset, software reset).
If the DSN feature set is supported and disabled, then:
a) commands that read the DSN Summary Page of the Device Statistics Notifications log (i.e., page 00h):
A) should return command complete without an error; and
B) if the command completes without an error, then all the DSN Match Entries shall be cleared to zeros;
and
b) commands that read or write the Definition pages of the Device Statistics Notifications log (e.g., pages
01h..07h) should return command complete without an error.
4.8.2 DSN notifications
Device statistics are evaluated against the DSN Condition Definition during updates of the device statistic. Each
DSN Condition Definition is evaluated independently. Each DSN Condition Definition is evaluated on updates to
the monitored device statistic.
The device sets the SENSE DATA AVAILABLE bit (see 6.2.9) in the STATUS field to one in the normal outputs and
error outputs for a command, if:
a) the command is being completed:
A) with an error; or
B) without an error and the command is not an NCQ command (see 4.15);
On command completion, all power condition timers that were stopped shall be initialized with their current timer
values (see 9.8) and started.
As a result of processing any command, the device may change to a different power condition.
If an enabled timer expires and that timer is associated with a lower power condition (see 4.9.2) than the device's
current power condition, then the device shall transition to the power condition associated with the expired timer.
The device shall not transition to a higher power condition as the result of a timer expiring. If the timers
associated with multiple enabled power conditions expire at the same time, the device shall transition to the
lowest of the lower power conditions associated with expired timers.
If volatile write cache is enabled (i.e., if the VOLATILE WRITE CACHE ENABLED bit (see 9.11.6.2.6) is set to one), then
prior to entering into any power condition that prevents access to the media (e.g., before a hard drive stops its
spindle motor during a transition to the Standby_z power condition), the device shall write all cached data to the
media for the device (e.g., as a device does in response to a flush command).
4.9.4 Interaction with resets, commands, and other features if the EPC feature set is enabled
If the device processes a power-on reset or the Enable the EPC feature set subcommand (see 7.41.19.6), the
device shall:
1) stop all power condition timers (see 4.9.3);
2) copy the SAVED TIMER ENABLED bit to the CURRENT TIMER ENABLED bit in the power conditions descriptors
(see 9.8.4) for all supported power conditions;
3) copy the contents of the SAVED TIMER SETTING field to the CURRENT TIMER SETTING field in the power
conditions descriptors for all supported power conditions; and
4) initialize and restart all enabled power condition timers with the values in the CURRENT TIMER SETTING
fields in the associated power conditions descriptors.
If the device processes a hardware reset or a software reset, the device shall:
1) stop all power condition timers;
2) remain in the current power condition; and
3) initialize and restart all enabled power condition timers with the values in the CURRENT TIMER SETTING
fields in the associated power conditions descriptors.
If the device processes an IDLE command (see 7.13) without error, then:
1) in the Standby_z power condition descriptor of the Standby power conditions page (see 9.8.3) in the
Power Conditions log, if the specified Standby timer period (see table 54) in the IDLE command is set to:
A) a nonzero value, then the device shall set the CURRENT TIMER ENABLED bit to one, convert the
specified timer period to units of 100 ms, and set the CURRENT TIMER SETTING field to the converted
value; or
B) zero, then the device shall clear the CURRENT TIMER ENABLED bit to zero and clear the CURRENT TIMER
SETTING field to zero;
2) the device shall transition to the PM1: Idle state (see 4.16.4); and
3) the device shall enter the Idle_a power condition.
If the device processes an IDLE IMMEDIATE command (see 7.14) without error, then:
1) if the Unload feature (see 7.14.2.2) was selected, then:
A) the device shall perform the operations described in 7.14.2.2; and
B) if volatile write cache is enabled (i.e., if the VOLATILE WRITE CACHE ENABLED bit (see 9.11.6.2.6) is set
to one), then the device shall retain data in the write cache and resume writing the cached data onto
the media after receiving a software reset, a hardware reset, or any new command except IDLE
IMMEDIATE command with unload feature;
2) the device shall transition to the PM1:Idle state; and
3) the device shall enter the Idle_a power condition.
If the device processes a STANDBY command (see 7.45) without error, then:
1) in the Standby_z power condition descriptor of the Standby power conditions page (see 9.8.3) in the
Power Conditions log, if the specified Standby timer period (see table 137) in the STANDBY command
is set to:
A) a nonzero value, then the device shall set the CURRENT TIMER ENABLED bit to one, convert the
specified timer period to units of 100 ms, and set the CURRENT TIMER SETTING field to the converted
value; or
B) zero, then the device shall clear the CURRENT TIMER ENABLED bit to zero and clear the CURRENT TIMER
SETTING field to zero;
2) the device shall transition to the PM2: Standby state (see 4.16.4); and
3) the device shall enter the Standby_z power condition.
If the device processes a STANDBY IMMEDIATE command (see 7.46) without error, then the device shall:
1) write all cached data to the media, if volatile write cache is enabled;
2) transition to the PM2:Standby state; and
3) enter the Standby_z power condition.
The EPC feature set and the APM feature set (see 4.6) are mutually exclusive. If the EPC feature set is disabled
(i.e., the EPC ENABLED bit (see 9.11.6.2.5) is cleared to zero), the device:
a) shall process the Enable the EPC feature set subcommand (see 7.41.19.6);
b) may process the Set EPC Power Source subcommand (see 7.41.19.8); and
c) shall return command aborted for all other EPC feature set subcommands.
If the device processes a SET FEATURES Enable APM subcommand without error and the EPC ENABLED bit
(see 9.11.6.2.5) is set to one, then the device shall disable the EPC feature set.
During background activities:
a) all power condition timers may be stopped; and
b) on completion of the background activity, the power condition timers that were stopped shall be restarted
from where they were stopped.
If the MAX PRIORITY BEHAVIOR bit (see 9.19.2.11.3) is set to one, then if the host specifies the highest caching
priority then the device shall place the data in the non-volatile cache until explicitly evicted by the host.
If the MAX PRIORITY BEHAVIOR bit is cleared to zero, then the highest caching priority passed to the device instructs
the hybrid device that this data should:
a) be placed in non-volatile cache; and
b) remain in the non-volatile cache.
Intermediate caching priority levels inform the device of the priority of placing the data in the non-volatile cache.
The device should make a choice based on the caching priority provided by the host and other device knowledge
(e.g. rotational position optimizations).
The host may specify a dirty high threshold (see 7.15.10.3.4) and a dirty low threshold (see 7.15.10.3.3) to
ensure that the device does not consume too much internal bandwidth syncing logical sectors between the
non-volatile cache and the primary medium, while still leaving room to absorb new writes.
The caching priority values hints are transported for some commands in the HYBRID INFORMATION field
(see 4.12.2) for:
a) the HYBRID DEMOTE BY SIZE command (see 7.15.8);
b) the HYBRID CHANGE BY LBA RANGE command (see 7.15.9);
c) the HYBRID CONTROL command (see 7.15.10);
d) the READ DMA EXT command (see 7.20);
e) the READ FPDMA QUEUED command (see 7.21);
f) the WRITE DMA EXT command (see 7.55);
g) the WRITE DMA FUA EXT command (see 7.56); and
h) the WRITE FPDMA QUEUED command (see 7.57).
The host may request that the device evict logical sectors from the non-volatile cache using the HYBRID EVICT
command (see 7.39.8).
If the device processes a read command, then each logical sector specified in that read command should be
read from the medium with the shortest latency that contains the most recent copy of the specified logical
sectors.
If the Hybrid Information feature set is not supported (i.e., the HYBRID INFORMATION SUPPORTED bit is cleared to
zero), then:
a) the device shall ignore the HYBRID INFORMATION field for any command; and
b) the device shall indicate that the following are not supported:
A) the SET FEATURES Enable/Disable Hybrid Information subcommand (see 7.41.15.10);
B) the Hybrid Information log (see 9.19);
C) the HYBRID EVICT command (see 7.39.8);
D) the HYBRID DEMOTE BY SIZE command (see 7.15.8);
E) the HYBRID CHANGE BY LBA RANGE command (see 7.15.9); and
F) the HYBRID CONTROL command (see 7.15.10).
If the Hybrid Information feature set is supported (i.e., the HYBRID INFORMATION SUPPORTED bit (see 9.11.10.2.23)
is set to one), then:
a) the device shall support:
A) the following:
a) NCQ Autosense feature (i.e., the NCQ AUTOSENSE SUPPORTED bit (see 9.11.10.2.21) shall be set
to one); and
b) Power-Up In Standby feature set (see 4.17);
B) the following SET FEATURES subcommands:
a) Enable/disable the PUIS Power-Up In Standby feature set (see 7.41.6); and
b) Enable/Disable Hybrid Information (see 7.41.15.10);
C) the HYBRID DEMOTE BY SIZE command (see 7.15.8);
D) the HYBRID CONTROL command (see 7.15.10); and
E) the following logs:
a) SATA NCQ Non-Data NON-DATA (see 9.17);
b) SATA NCQ Send and Receive (see 9.18);
c) IDENTIFY DEVICE data (see 9.11); and
d) Hybrid Information (see 9.19);
b) the device should support Device Sleep (i.e., the DEVICE SLEEP SUPPORTED bit (see 9.11.10.2.22) should
be set to one);
c) the device shall not support the SET FEATURES PUIS Power-Up In Standby feature set device spin-up
subcommand (see 7.41.7);
d) the following commands shall be able to return command completion without error while in the PM2:
Standby (see 4.15.4) state or in the PM5: PUIS and spin-up subcommand not supported state
(see 4.15.4):
A) all read commands, if the requested logical sectors are in the non-volatile cache all read commands
that return all user data from the non-volatile cache;
B) all write commands, if the device stores all of the data for the command in the nonvolatile
non-volatile cache all write commands that store all the specified user data in the non-volatile cache;
C) commands to read the following logs:
a) Identify Device data;
b) Hybrid Information;
c) Power Conditions;
d) NCQ Command Queued Error;
e) SATA NCQ Non-Data NON-DATA; and
f) SATA NCQ Send and Receive;
D) IDENTIFY DEVICE command;
E) CHECK POWER MODE command;
F) SMART RETURN STATUS command; and
G) SECURITY UNLOCK command if supported;
e) if the Hybrid Information feature is enabled (i.e., the HYBRID INFORMATION ENABLED bit (see 9.11.10.3.12),
then the device shall:
A) process the HYBRID INFORMATION field (see 4.12.2) as described in this subclause for a:
Editor’s Note 9: Fields are normally defined within the first command where they appear.
4.12.2.3.2 REQUESTED CACHING PRIORITY LEVEL field is equal to MAXIMUM CACHING PRIORITY LEVEL field
Editor’s Note 10: ?? 4.new.2.3.2.2MAX PRIORITY BEHAVIOR bit set to one ?? Remaining headings
appear to be at the wrong level... Did what I thought best
4.12.2.3.2.2 MAX PRIORITY BEHAVIOR bit is cleared to zero and AVOID HYBRID SPINUP bit either is not specified or is cleared
to zero
If:
a) the Hybrid Information feature is enabled:
b) the device processes a read command or a write command, with the HYBRID INFORMATION IS VALID bit set
to one and the value of the REQUESTED CACHING PRIORITY LEVEL field is set to the value of the MAXIMUM
CACHING PRIORITY LEVEL field (see 9.19.2.8);
c) the MAX PRIORITY BEHAVIOR bit (see 9.19.2.11.3) is cleared to zero; and
d) the AVOID HYBRID SPINUP bit (see 7.15.9.3.2) bit, if any, is cleared to zero cleared to zero,
then the device:
a) may evict any logical sectors from the non-volatile cache in order to insert all of the logical sectors
specified by the command into the non-volatile cache;
b) should put all of the specified logical sectors in the non-volatile cache; and
c) should associate all of the logical sectors that were put in the non-volatile cache with the requested
caching priority level and return command complete with no error.
4.12.2.3.2.3 MAX PRIORITY BEHAVIOR bit is cleared to zero and AVOID HYBRID SPINUP bit is set to one
4.12.2.3.2.3.1 Rotating medium is not accessible
If:
a) the Hybrid Information feature is enabled:
b) the device processes a command, with the HYBRID INFORMATION IS VALID bit set to one and the value of
the REQUESTED CACHING PRIORITY LEVEL field is set to the value of the MAXIMUM CACHING PRIORITY LEVEL
field (see 9.19.2.8);
c) the MAX PRIORITY BEHAVIOR bit (see 9.19.2.11.3) is cleared to zero;
d) the AVOID HYBRID SPINUP bit (see 7.15.9.3.2) is set to one: and
e) the rotating medium is not accessible,
then the device shall:
a) not put the requested logical sectors in the non-volatile cache;
b) not associate any of the logical sectors with the requested caching priority level; and
c) return command complete with no error.
4.12.2.3.2.3.2 Rotating medium is accessible
If:
a) the Hybrid Information feature is enabled:
b) the device processes a command, with the HYBRID INFORMATION IS VALID bit set to one and the value of
the REQUESTED CACHING PRIORITY LEVEL field is set to the value of the MAXIMUM CACHING PRIORITY LEVEL
field (see 9.19.2.8);
c) the MAX PRIORITY BEHAVIOR bit (see 9.19.2.11.3) is cleared to zero;
d) the AVOID HYBRID SPINUP bit (see 7.15.9.3.2) is set to one; and
e) the rotating medium is accessible,
then:
1) the device may evict logical sectors from the non-volatile cache in order to insert all of the logical sectors
specified by the command into the non-volatile cache with the requested caching priority level if the
logical sectors in the non-volatile cache:
A) have a lower requested caching priority level; or
B) have the same requested caching priority level but are is older;
2) if the logical sectors specified by the command are not currently in the non-volatile cache, then the
device:
A) should put the requested logical sectors into the non-volatile cache; and
B) may put the requested logical sectors into the non-volatile cache after returning command
completion;
3) the device should associate all of the logical sectors specified by the command with the requested
caching priority level; and
4) the device shall return command complete with no error.
4.12.2.3.3 REQUESTED CACHING PRIORITY LEVEL field is less than MAXIMUM CACHING PRIORITY LEVEL field and is
greater than zero
4.12.2.3.3.1 AVOID HYBRID SPINUP bit either is not specified or is cleared to zero
If the Hybrid Information feature is enabled and the device processes a command, with:
a) the HYBRID INFORMATION IS VALID bit set to one;
b) the non-zero REQUESTED CACHING PRIORITY LEVEL field set less than the maximum caching priority level;
and
c) the AVOID HYBRID SPINUP bit (see 7.15.9.3.2) is cleared to zero,
then:
1) the device may evict logical sectors from the non-volatile cache in order to insert all of the logical sectors
specified by the command into the non-volatile cache with the requested caching priority level if the
logical sectors in the non-volatile cache:
A) have a lower requested caching priority level; or
B) have the same requested caching priority level but are is older;
2) if the logical sectors specified by the command are not currently in the non-volatile cache, then the
device:
A) should put the requested logical sectors to the non-volatile cache; and
B) may put the requested logical sectors to the non-volatile cache after returning command completion;
3) the device should associate all of the logical sectors specified by the command with the requested
caching priority level; and
4) the device shall return command complete with no error.
4.12.2.3.3.2 AVOID HYBRID SPINUP bit is set to one
4.12.2.3.3.2.1 Rotating medium is not accessible
If:
a) the Hybrid Information feature is enabled:
b) the device processes a command, with the HYBRID INFORMATION IS VALID bit set to one and the non-zero
requested caching priority level is less than the maximum caching priority level;
c) the AVOID HYBRID SPINUP bit (see 7.15.9.3.2) is set to one; and
d) the rotating medium is not accessible,
then the device shall:
a) not put the requested logical sectors in the non-volatile cache;
b) not associate any of the logical sectors with the requested caching priority level; and
c) return command complete with no error.
4.12.2.3.3.2.2 Rotating medium is accessible
If:
a) the Hybrid Information feature is enabled:
b) the device processes a rcommand, with the HYBRID INFORMATION IS VALID set to one and the requested
caching priority level is less than the maximum caching priority level;
c) the AVOID HYBRID SPINUP bit (see 7.15.9.3.2) is set to one; and
d) the rotating medium is accessible disk is spinning,
then:
1) the device may evict logical sectors from the non-volatile cache in order to insert all of the logical sectors
specified by the command into the non-volatile cache with the requested caching priority level if the
logical sectors in the non-volatile cache:
A) have a lower requested caching priority level; or
B) have the same requested caching priority level but is older;
2) if the logical sectors specified by the command are not currently in the non-volatile cache, then the
device:
A) should put the requested logical sectors to the non-volatile cache; and
B) may put the requested logical sectors to the non-volatile cache after returning command completion;
3) the device should associate all of the logical sectors specified by the command with the requested
caching priority level; and
4) the device shall return command complete with no error.
4.12.2.3.4 REQUESTED CACHING PRIORITY LEVEL field is zero
If the Hybrid Information feature is enabled and the device processes a command, with the HYBRID INFORMATION
IS VALID bit set to one and the REQUESTED CACHING PRIORITY LEVEL field cleared to zero, then:
a) no requested caching priority level preference is specified; and
b) if the command is a write command, then the device should write to primary medium.
4.12.3 Syncing
The Hybrid Information log indicates several fields related to syncing:
a) DIRTY LOW THRESHOLD field (see 7.15.10.3.3); and
b) DIRTY HIGH THRESHOLD field (see 7.15.10.3.4).
The device should prioritize the logical sectors contained in the non-volatile cache to be synced as follows:
1) starting from the requested caching priority level of zero, up to the maximum caching priority level;
2) within each requested caching priority level, sync the least recently used logical sectors first and then the
most recently used logical sectors.
4.12.4 Interactions with ATA power management
If:
a) the Hybrid Information feature is enabled;
b) the device processes a read command or a write command; and
c) the requested logical sectors are not accessible in the current power condition,
then:
a) the device shall return command aborted; and
b) if the failing command is READ FPDMA QUEUED or WRITE FPDMA QUEUED, then the device shall
set the following in the NCQ Command Error log (see 9.14):
A) the sense key shall be set to NOT READY; and
B) the additional sense code shall be set to LOGICAL UNIT NOT READY – INITIALIZING COMMAND
REQUIRED (see 6.2.9.10).
Editor’s Note 13: This wording does not quite match. I think we are going to recommend sense keys
with the sense codes in an upcoming proposal
If the device indicates a sense key of NOT READY and an additional sense code of LOGICAL UNIT NOT
READY – INITIALIZING COMMAND REQUIRED (see 6.2.9.10), then the device should be explicitly spun up
before the host reissues the command.
If the power condition was entered as a result of processing the EPC Go To Power Condition command
(see 7.41.19.3) with the HOLD POWER CONDITION bit (see 7.41.19.2.1) cleared to zero, then table 8 describes
interactions with the power source reported by the device.
The device may clear the Read Only bit under vendor specific conditions.
4.12.5.3 Data Loss
If the device encounters conditions such that some logical sectors in the non-volatile cache is no longer
accessible, then:
a) the device shall set the DATA LOSS bit (see 9.19.2.4.2) to one ; and
b) if the Hybrid Information feature is enabled and the device processes a SMART RETURN STATUS
command, then the device shall:
A) set the value of LBA(23:8) to 2CF4h (i.e., the device has detected a threshold exceeded condition);
and
B) return command complete with no error.
If the host reads the Hybrid Information log, then the device shall clear the DATA LOSS bit (see 9.19.2.4.2) after
returning the log data to the host.
4.12.5.4 Unusable
If the device encounters conditions such that the non-volatile cache has become unusable, then:
a) the device shall set the UNUSABLE bit (see 9.19.2.4.5) to one;
b) the device shall disable the Hybrid Information feature (i.e., the HYBRID INFORMATION ENABLED bit
(see 9.11.10.3.12) is cleared to zero);
c) the device shall remove indication of support for the Hybrid Information feature (i.e., HYBRID INFORMATION
SUPPORTED bit shall be cleared to zero); and
d) if the device processes a SMART RETURN STATUS command, then the device shall:
A) set the value of LBA(23:8) to 2CF4h (i.e., the device has detected a threshold exceeded condition);
and
B) return command complete with no error.
The device may clear the UNUSABLE bit under vendor specific conditions.
4.12.5.5 Automatic Disable
If:
a) the Hybrid Information feature is currently enabled; and
b) the device has not processed any command to read the Hybrid Information log for 25 consecutive power
cycles,
then the device shall:
1) change the REQUESTED CACHING PRIORITY LEVEL for all logical sectors in the non-volatile cache to zero;
2) clear the ENABLED field (see 9.19.2.3) to zero; and
3) disable the Hybrid Information feature (i.e., clear the HYBRID INFORMATION ENABLED bit (see 9.11.10.3.12)
to zero).
Table 9 describes the number of words transferred per COUNT field unit for ATA devices that support the LLS
feature set. Data transfer commands transfer either the logical sector size (see 9.11.4.4) or 256 words
depending on the command.
EXAMPLE - The READ DMA EXT command and the WRITE DMA EXT command transfer data in units of logical sectors
each of which has a size in words that is indicated by the contents of the LOGICAL SECTOR SIZE field (see 9.11.4.4) while the
READ LOG EXT command and the WRITE LOG EXT command transfer 256 words per DRQ data block, regardless of the
logical sector size.
In figure 4, the long logical sector example shows a device formatted with long logical sectors.
The Long Physical Sector (LPS) feature set (see 4.14) and the LLS feature set are not mutually exclusive. In
figure 4, the long logical and long physical sector example shows a device that supports both the LPS feature set
and the LLS feature set.
Long physical sector example: 512 bytes per LBA, 1 024 bytes per physical sector
512 Bytes 512 Bytes 512 Bytes 512 Bytes 512 Bytes 512 Bytes 512 Bytes
Long logical and Long physical sector example: 524 bytes per LBA, 1 048 bytes per physical sector
524 Bytes 524 Bytes 524 Bytes 524 Bytes 524 Bytes 524 Bytes 524 Bytes
If the LOGICAL TO PHYSICAL SECTOR RELATIONSHIP SUPPORTED bit (see 9.11.4.3.1) is set to one and the LOGICAL TO
PHYSICAL SECTOR RELATIONSHIP field (see 9.11.4.3.4) is cleared to zero, then the device may report the alignment
of the first logical sector (LBA 0) within the first physical sector in the LOGICAL SECTOR OFFSET field
(see 9.11.4.3.5).
Examples of logical/physical sector alignments follow.
EXAMPLE 1 - In Figure 5, there are two logical sectors within one physical sector, and the first logical sector is in the first half.
The offset is zero, and the LOGICAL SECTOR OFFSET field (see 9.11.4.3.5) is set to 0000h.
Figure 5 — Alignment 0
EXAMPLE 2 - In Figure 6, there are two logical sectors within one physical sector, and the first logical sector is in the second
half. The offset is one, and the LOGICAL SECTOR OFFSET field (see 9.11.4.3.5) is set to 0001h.
Figure 6 — Alignment 1
EXAMPLE 3 - In Figure 7, there are four logical sectors within one physical sector, and the first logical sector is in the second
half. The offset is three, and the LOGICAL SECTOR OFFSET field (see 9.11.4.3.5) is set to 0003h.
Figure 7 — Alignment 3
Code Description
00b Normal priority
Isochronous deadline-dependent priority
01b The device should complete isochronous requests prior to their
associated deadline.
High priority
The device should attempt to provide better quality of service for
10b the command. The device should complete high priority
requests in a more timely fashion than normal and isochronous
requests.
11b Reserved
PM0: Active
SLEEP command
PM0:PM3
PM2: Standby PM1: Idle
Editor’s Note 15: The other state machines make these subheading numbers, is it time? There are
an awful lot of references to the figure when a state is actually intended
PM0: Active: This state shall be entered if the device processes a media access command while in Idle mode or
Standby mode. This state shall also be entered after processing a power-on reset if the Power-Up In Standby
feature set is not supported or is not enabled (see 4.17).
In Active mode, the device is capable of responding to commands. During the processing of a media access
command a device shall be in the Active mode. Power consumption is greatest in this mode.
Transition PM0:PM0: The device shall transition to the PM0: Active state after processing a hardware reset or a
software reset.
Transition PM0:PM1: The device shall transition to the PM1: Idle state if:
a) an IDLE command (see 7.13) is processed without error;
b) an IDLE IMMEDIATE command (see 7.14) is processed without error; or
c) a vendor specific implementation determines a transition to the PM1: Idle state is required.
Transition PM0:PM2: The device shall transition to the PM2: Standby state if:
a) a STANDBY command (see 7.45) is processed without error;
b) a STANDBY IMMEDIATE command (see 7.46) is processed without error;
c) the Standby timer expires (see 4.16.3); or
d) a vendor specific implementation determines a transition to the PM2: Standby state is required.
Transition PM0:PM3: If a SLEEP command (see 7.43) is processed, the device shall transition to the PM3:
Sleep state.
PM1: Idle: This state shall be entered if the device processes an IDLE command or IDLE IMMEDIATE command
without error. Some devices may perform vendor specific internal power management and transition to the Idle
mode without host intervention.
In Idle mode, the device is capable of processing commands but the device may take longer to complete
commands than when in the Active mode. Power consumption may be reduced from that of Active mode.
Transition PM1:PM0: If a media access is required, the device shall transition to the PM0: Active state.
Transition PM1:PM1: The device shall transition to the PM1: Idle state after processing a hardware reset or
software reset.
Transition PM1:PM2: The device shall transition to the PM2: Standby state if:
a) a STANDBY command is processed without error;
b) a STANDBY IMMEDIATE command is processed without error;
c) the Standby timer expires; or
d) a vendor specific implementation determines a transition to the PM2: Standby state is required.
Transition PM1:PM3: If a SLEEP command is processed without error, the device shall transition to the PM3:
Sleep state.
PM2: Standby: This state shall be entered if:
a) the device returns completion for a STANDBY command without error;
b) the device returns completion for a STANDBY IMMEDIATE command without error;
c) the Standby timer expires;
d) a device performs a vendor specific power management function; or
e) the device processes a hardware reset or a software reset while in PM2: Standby or PM3: Sleep.
In Standby mode, the device is capable of processing commands but the device may take longer (e.g., 30 s)
to complete commands than in the Idle mode. Power consumption may be reduced from that of Idle mode.
Transition PM2:PM0: If a media access is required, the device shall transition to the PM0: Active state.
Transition PM2:PM1: The device shall transition to the PM1: Idle state if:
a) an IDLE command is processed without error; or
b) an IDLE IMMEDIATE command is processed without error.
Transition PM2:PM2: The device shall transition to the PM2: Standby state after processing a hardware reset or
a software reset.
Transition PM2:PM3: If a SLEEP command is processed without error, the device shall transition to the PM3:
Sleep state.
PM3: Sleep: This state shall be entered if the device processes a SLEEP command without error.
A device transitions from Sleep mode only after processing a hardware reset or a software reset. Processing a
hardware reset or a software reset may take a long time (e.g., 30 s). Sleep mode provides the lowest power
consumption of any mode.
In Sleep mode, the device interface behavior is defined in the applicable transport standard.
Transition PM3:PM2:, A device shall transition to the PM2: Standby state after processing a hardware reset or a
software reset.
PM4: PUIS: This state shall be entered after processing a power-on reset if the PUIS feature set (see 4.17) is
supported and is enabled.
Transition PM4:PM5: A device shall transition to the PM5: PUIS and spin-up subcommand not supported state
if the device does not support the PUIS feature set device spin-up subcommand (see 7.41.7).
Transition PM4:PM6: A device shall transition to the PM6: PUIS and spin-up subcommand supported state if
the device supports the PUIS feature set device spin-up subcommand.
PM5: PUIS and spin-up subcommand not supported: This state shall be entered after processing a power-on
reset if the PUIS feature set is supported and is enabled and the device does not support the PUIS feature set
device spin-up subcommand.
In this state, the device is capable of processing commands but the device may take longer (e.g., 30 s) to
complete commands than in the Idle mode. Power consumption may be reduced from that of Idle mode.
Transition PM5:PM0: If the device processes a media access command, the device shall transition to the PM0:
Active state.
Transition PM5:PM5: A device shall transition to the PM5: PUIS and spin-up subcommand not supported state
after processing:
a) an IDENTIFY DEVICE command;
b) any hardware reset;
c) any software reset; or
d) any command that does not require media access.
PM6: PUIS and spin-up subcommand supported: This state shall be entered after processing a power-on
reset if the PUIS feature set is supported, is enabled, and the device supports the PUIS feature set device
spin-up command.
In this state, the device is capable of processing commands but the device may take longer (e.g., 30 s) to
complete commands than in the Idle mode. Power consumption may be reduced from that of Idle mode.
Transition PM6:PM0: A device shall transition to the PM0: Active state after processing a SET FEATURES
PUIS feature set device spin-up subcommand.
Transition PM6a:PM6: A device shall transition to the PM6: PUIS and spin-up subcommand supported state
after processing IDENTIFY DEVICE command.
Transition PM6b:PM6: The device shall transition to the PM6: PUIS and spin-up subcommand supported state
after returning command aborted in response to a command, other than IDENTIFY DEVICE command, that
requires media access.
Transition PM6c:PM6: A device shall transition to the PM6: PUIS and spin-up subcommand supported state
after processing a command, other than IDENTIFY DEVICE command, that does not require media access.
Transition PM6d:PM6: A device shall transition to the PM6: PUIS and spin-up subcommand supported state
after processing a hardware reset or a software reset.
c) the LBA field shall be set to the LBA of the first unrecovered logical block; and
d) the FINAL LBA IN ERROR field shall be set to the LBA of the last predicted unrecovered logical block in a
sequence of contiguous unrecovered logical blocks that started with the first LBA in error.
If the host receives sense data with sense key set to ABORTED COMMAND and additional sense code set to
MULTIPLE WRITE ERRORS, then the host should issue the next write command with the starting LBA set to the
contents of the FINAL LBA IN ERROR field plus one.
4.18.4 Disabling the Rebuild Assist feature set
The Rebuild Assist feature set shall be disabled if:
a) the device processes a power-on reset; or
b) the device processes a command that writes to the Rebuild Assist log (see 9.20) with the MANAGE
REBUILD ASSIST bit cleared to zero (see 9.20.2).
The sanitize operation may continue after the command that initiated the sanitize operation returns command
completion without error.
The sanitize operation shall resume after any interruption (e.g., a power-on reset) as specified in 4.19.10.
The normal outputs of the SANITIZE STATUS EXT command (see table 323) report progress of an active
sanitize operation or a successful completion of the most recent sanitize operation.
In the absence of other errors, the error outputs of the SANITIZE STATUS EXT command (see table 350) report
failed completion of the most recent sanitize operation.
A crypto scramble sanitize operation (i.e., a sanitize operation that is initiated by a CRYPTO SCRAMBLE EXT
command (see 7.32.3)) or block erase sanitize operation (i.e., a sanitize operation that is initiated by a BLOCK
ERASE EXT command (see 7.32.2)) make previously written contents in the user data area unretrievable (e.g.,
read commands may return command complete with error).
An overwrite sanitize operation (i.e., a sanitize operation that is initiated by an OVERWRITE EXT command
(see 7.32.4) fills all user data with a four byte pattern passed in the LBA field of the command. Parameters for the
OVERWRITE EXT command include a count for multiple overwrites and whether to invert the four byte pattern
between consecutive overwrite passes.
Sector reallocation is allowed during sanitize operations.
If deferred microcode data (see 7.7) exists, sanitize operation commands return command aborted.
4.19.5 Interactions of the Sanitize Device feature set and Security feature set
The setting of the RESTRICTED SANITIZE OVERRIDES SECURITY bit (see 9.11.8.7.8) indicates if successful sanitize
operations:
a) cause the existing User password (see 4.21.3.2), if any, to become unable to be accessed; and
b) clear the SECURITY ENABLED bit (see 9.11.8.3.7) to zero.
If the security state machine is in a state that does not block access to user data (e.g., the SEC1: Security
Disabled/Not Locked/Not Frozen state (see 4.21.11.5)), then for all sanitize commands, the device may return
command complete without error.
If the security state machine is in the SEC4: Security Enabled/Locked/Not Frozen state (see 4.21.11.8) and:
a) the RESTRICTED SANITIZE OVERRIDES SECURITY bit is cleared to zero, then:
A) for SANITIZE STATUS EXT commands (see 7.32.7), the device may return command complete
without error; and
B) for other sanitize commands, the device shall return command aborted;
and
b) the RESTRICTED SANITIZE OVERRIDES SECURITY bit is set to one, then:
A) for sanitize operation commands with the FAILURE MODE bit (see 7.32.2.3.3) set to one, the device
shall return command aborted as described in the Error Output section of each sanitize operation
command; and
B) for sanitize commands that do not define a FAILURE MODE bit or sanitize commands that specify a
FAILURE MODE bit cleared to zero, the device may return command complete without error.
Transition SD0:SD1: If the device processes a SANITIZE FREEZE LOCK EXT command (see 7.32.6) that
returns command completion without error, then the device shall transition to the SD1: Sanitize Frozen state
(see 4.19.10.3).
Transition SD0:SD2: If the device processes a supported sanitize operation command (see 4.19.4) that returns
command completion without error, then the device shall transition to the SD2: Sanitize Operation In Progress
state (see 4.19.10.4).
4.19.10.3 SD1: Sanitize Frozen state
While in the SD1: Sanitize Frozen state, the device shall:
a) abort Sanitize Device feature set commands except SANITIZE STATUS EXT (see 7.32.7); and
b) not transition from this state as a result of processing a SANITIZE STATUS EXT command.
Transition SD1:SD0: If the device processes a hardware reset or a power-on reset, the device shall transition to
the SD0: Sanitize Idle state (see 4.19.10.2).
4.19.10.4 SD2: Sanitize Operation In Progress state
While in the SD2: Sanitize Operation In Progress state, the device is processing a sanitize operation.
While in this state, the device shall not transition from this state as a result of processing:
a) a hardware reset;
b) a power-on reset; or
c) a SANITIZE STATUS EXT command (see 7.32.7).
While in this state, the device shall process commands as described in 4.19.6. Sector reallocation is allowed
while in this state.
Upon entry to this state, the device shall clear the Sanitize Operation Completed Without Error value (see 4.19.7)
to zero.
Transition SD2:SD3: After completion of a sanitize operation, the device shall transition to SD3: Sanitize
Operation Failed state (see 4.19.10.5) if:
a) any physical sectors that are allocated for user data have not been successfully sanitized; or
b) any physical areas that are available to be allocated for user data were not successfully sanitized.
Transition SD2:SD4: After completion of a sanitize operation, the device shall transition to SD4: Sanitize
Operation Succeeded state (see 4.19.10.6) if:
a) all physical sectors that are allocated for user data have been successfully sanitized; and
b) all physical areas that are available to be allocated for user data have been successfully sanitized.
4.19.10.5 SD3: Sanitize Operation Failed state
While in the SD3: Sanitize Operation Failed state, the device has failed the sanitize operation.
While in this state, the device shall process a SANITIZE STATUS EXT command (see 7.32.7) by returning
command aborted with the SANITIZE DEVICE ERROR REASON field set to Sanitize Command Unsuccessful
(see table 350).
While in this state, the device shall process commands as described in 4.19.6, with the exception that sanitize
operation commands shall be processed in this state.
While in this state, the device shall not transition from this state as a result of processing:
a) a hardware reset;
b) a power-on reset; or
c) a SANITIZE STATUS EXT command (see 7.32.7) with the CLEAR SANITIZE OPERATION FAILED bit cleared
to zero.
Transition SD3:SD0: The device shall transition to the SD0: Sanitize Idle state (see 4.19.10.2) if:
a) the Failure Mode Policy value (see 4.19.8) is set to one; and
b) a SANITIZE STATUS EXT command with the CLEAR SANITIZE OPERATION FAILED bit set to one returns
command completion without error.
Transition SD3:SD2: If the device processes a supported sanitize operation command (see 4.19.4) that returns
command completion without error, then the device shall transition to the SD2: Sanitize Operation In Progress
state (see 4.19.10.4).
4.19.10.6 SD4: Sanitize Operation Succeeded state
While in the SD4: Sanitize Operation Succeeded state, the device has completed processing a successful
sanitize operation.
While in this state, in addition to processing commands as described in 4.19.6, the device shall process sanitize
operation commands as described in 4.19.4, with the exception that sanitize operation commands shall be
processed in this state.
Upon entry to this state, the device shall set the Sanitize Operation Completed Without Error value (see 4.19.7)
to one.
Transition SD4:SD0: The device shall transition to the SD0: Sanitize Idle state (see 4.19.10.2) if the device
processes:
a) a hardware reset;
b) a power-on reset; or
c) a SANITIZE STATUS EXT command (see 7.32.7).
Transition SD4:SD2: If the device processes a supported sanitize operation command (see 4.19.4) that returns
command completion without error, then the device shall transition to the SD2: Sanitize Operation In Progress
state (see 4.19.10.4).
If the MASTER PASSWORD CAPABILITY bit is set to Maximum (i.e., one), the Master password is not used with the
SECURITY DISABLE PASSWORD (see 7.33) command and SECURITY UNLOCK command. The SECURITY
ERASE UNIT (see 7.35) command, however, uses either a valid User password or Master password.
4.21.5 Frozen mode
The SECURITY FREEZE LOCK (see 7.36) command prevents changes to all Security states (see 4.21.11.6
and 4.21.11.10) until:
a) a subsequent power-on reset or hardware reset; or
b) the device transitions to the SD4: Sanitize Operation Succeeded state (see 4.19.10.6).
Use of the SECURITY FREEZE LOCK command prevents password setting attacks on the security system.
4.21.6 Commands
A device that supports the Security feature set shall implement the following commands:
a) SECURITY SET PASSWORD (see 7.37);
b) SECURITY UNLOCK (see 7.38);
c) SECURITY ERASE PREPARE (see 7.34);
d) SECURITY ERASE UNIT (see 7.35);
e) SECURITY FREEZE LOCK (see 7.36); and
f) SECURITY DISABLE PASSWORD (see 7.33).
4.21.7 Security initial setting
At the time of manufacture of the device, the security feature set shall be disabled (see 4.21.2).
The value of the Master password at the time of manufacture is outside the scope of this standard.
4.21.8 Password Rules
This subclause applies to any security command that accepts a password, and for which there exists a valid
password. This subclause does not apply after the drive has processed a SECURITY FREEZE LOCK (see 7.36)
command without error.
The SECURITY ERASE UNIT command (see 7.35) ignores the MASTER PASSWORD CAPABILITY bit
(see 9.11.8.3.2) when comparing passwords, and accepts either a valid Master password or User password.
If the User password sent to the device does not match the User password previously set with the SECURITY
SET PASSWORD command (see 7.37), then the device returns command aborted.
If the MASTER PASSWORD CAPABILITY bit was set to High (see 4.21.4) during the most recent SECURITY SET
PASSWORD command that set the User password, then the device accepts the Master password and complete
the command without error.
If the MASTER PASSWORD CAPABILITY bit was set to Maximum (see 4.21.4) during the most recent SECURITY SET
PASSWORD command that set the User password, then the device returns command aborted for a SECURITY
UNLOCK command (see 7.38) or a SECURITY DISABLE PASSWORD command (see 7.33) if the Master
password is supplied.
4.21.9 Password attempt counter and SECURITY COUNT EXPIRED bit
The device shall maintain a password attempt counter and a SECURITY COUNT EXPIRED bit (see 9.11.8.3.4).
The password attempt counter shall be decremented if:
a) the device is in the SEC4: Security Enabled/Locked/Not Frozen state (see 4.21.11.8);
b) the SECURITY COUNT EXPIRED bit is cleared to zero; and
c) a SECURITY UNLOCK command (see 7.38) fails as a result of an invalid User password or Master
password.
If the password attempt counter reaches zero, the device shall set the SECURITY COUNT EXPIRED bit to one.
If the SECURITY COUNT EXPIRED bit is set to one, the device shall return command aborted for all SECURITY
UNLOCK commands and SECURITY ERASE UNIT commands (see 7.35).
If the device processes a power-on reset or a hardware reset, then the device shall:
a) clear the SECURITY COUNT EXPIRED bit to zero; and
b) set the password attempt counter to five.
4.21.10 Master Password Identifier feature
The Master Password Identifier feature associates a 16-bit non-volatile value with the Master password. The
master password identifier does not indicate whether a Master password exists or is valid.
Support for this feature is reported in the MASTER PASSWORD IDENTIFIER field (see 9.11.8.2). Valid identifiers are
0001h through FFFEh. A value of 0000h or FFFFh indicates that this feature is not supported.
If the Master Password Identifier feature is supported, then:
a) the host may specify the value of the master password identifier using the SECURITY SET PASSWORD
command (see 7.37);
b) the MASTER PASSWORD IDENTIFIER field shall not be modified by the device except in response to the
SECURITY SET PASSWORD command; and
c) the MASTER PASSWORD IDENTIFIER field shall be set to FFFEh at the time of manufacture.
If supported, the Master Password Identifier feature allows an administrator to use several sets of Master
passwords (e.g., for use in different deployments of devices). The administrator may:
a) maintain a mapping of actual Master passwords to corresponding Master Password Identifiers;
b) set the corresponding Master Password Identifier at the same time the Master password is set using a
SECURITY SET PASSWORD command in which the Master password is specified (i.e., the IDENTIFIER
bit is set to one); and
c) retrieve the most recently set Master Password Identifier from the MASTER PASSWORD IDENTIFIER field in
the Security page of the IDENTIFY DEVICE data log.
If a User password had been set and lost, an administrator may read the MASTER PASSWORD IDENTIFIER field to
obtain a hint as to which Master password was previously set.
4.21.11 Security states
4.21.11.1 Overview
Table 11 is a summary of the security states. If the power is off, the security characteristics are as in table 11, but
are not reportable.
Security Characteristics
Security
a
state Reference Power Enabled Locked b Frozen c Password Attempts Exceeded d
SEC0 4.21.11.4 off 0 N/A N/A N/A
SEC1 4.21.11.5 on 0 0 0 0
SEC2 4.21.11.6 on 0 0 1 Varies
SEC3 4.21.11.7 off 1 N/A N/A N/A
SEC4 4.21.11.8 on 1 1 0 Varies
SEC5 4.21.11.9 on 1 0 0 Varies
SEC6 4.21.11.10 on 1 0 1 Varies
a
See the SECURITY ENABLED bit (see 9.11.8.3.7).
b
See the SECURITY LOCKED bit (see 9.11.8.3.6).
c
See the SECURITY FROZEN bit (see 9.11.8.3.5).
d
See the SECURITY COUNT EXPIRED bit (see 9.11.8.3.4).
Editor’s Note 16: Footer links on the continuation pages do not appear to be hot.
SEC2: Disabled/
SEC0: Powered down/ Not Locked/Frozen
Disabled/Not Locked/
Not Frozen Power-down
SEC2:SEC0
SEC1: Disabled/ Not Hardware Reset or
Locked/ Not Frozen sanitize operation
Power-on reset succeeds
SEC0:SEC1 SEC2:SEC1
Power-down SECURITY FREEZE LOCK command
SEC1:SEC0 SEC1:SEC2
Hardware Reset
Note: Some events may change SEC1:SEC1 SEC5: Enabled/
Security characteristics without Not Locked/
changing state in this figure SECURITY SET PASSWORD Not Frozen
command (user)
SEC1:SEC5
Table 13 — Security page settings for the SEC1: Security Disabled/Not Locked/Not Frozen state
Transition SEC1:SEC0: If the device is powered-down, the device shall transition to the SEC0: Powered
down/Security Disabled/Not Locked/Not Frozen state (see 4.21.11.4).
Transition SEC1:SEC1: If the device processes a hardware reset, the device shall transition to the SEC1:
Security Disabled/Not Locked/Not Frozen state (see 4.21.11.5).
Transition SEC1a:SEC1: If a SECURITY SET PASSWORD command (see 7.37) in which the Master password
is specified (i.e., the IDENTIFIER bit is set to one) returns command completion without error, then the device shall:
a) save the Master password and the optional Master Password Identifier;
b) transition to the SEC1: Security Disabled/Not Locked/Not Frozen state (see 4.21.11.5); and
c) not change the MASTER PASSWORD CAPABILITY bit (see 9.11.8.3.2).
Transition SEC1:SEC2: If a SECURITY FREEZE LOCK command (see 7.36) returns command completion
without error, then the device shall transition to the SEC2: Security Disabled/Not Locked/Frozen state
(see 4.21.11.6).
Transition SEC1:SEC5: If a SECURITY SET PASSWORD command (see 7.37) in which the User password is
specified (i.e, the IDENTIFIER bit is cleared to zero) returns command completion without error, then the device
shall:
a) save the User password;
b) update the MASTER PASSWORD CAPABILITY bit (see 9.11.8.3.2); and
c) transition to the SEC5: Security Enabled/Not Locked/Not Frozen state (see 4.21.11.9).
4.21.11.6 SEC2: Security Disabled/Not Locked/Frozen state
The SEC2: Security Disabled/Not Locked/Frozen state shall be entered when the device processes a
SECURITY FREEZE LOCK command while in the SEC1: Security Disabled/Not Locked/Not Frozen state
(see 4.21.11.5).
In this state, the device shall respond to commands as specified in the Frozen column of table 12.
The processing of commands shall not cause a transition from this state, except for:
a) the processing of commands in the Security feature set; or
b) the transition of the Sanitize state machine to the SD4: Sanitize Operation Succeeded state
(see 4.19.10.6).
In this state, the device shall set the bits in the Security page (see 9.11.8) of the IDENTIFY DEVICE data log as
described in table 14.
Table 14 — Security page settings for the SEC2: Security Disabled/Not Locked/Frozen state
Transition SEC2:SEC0: If the device is powered-down, the device shall transition to the SEC0: Powered
down/Security Disabled/Not Locked/Not Frozen state (see 4.21.11.4).
Transition SEC2:SEC1: If the device:
a) receives a hardware reset; or
b) transitions to the SD4: Sanitize Operation Succeeded state (see 4.19.10.6),
then the device shall transition to the SEC1: Security Disabled/Not Locked/Not Frozen state (see 4.21.11.5).
4.21.11.7 SEC3: Powered down/Security Enabled/Locked/Not Frozen state
The SEC3: Powered down/Security Enabled/Locked/Not Frozen state shall be entered if the device is
powered-down with the Security feature set enabled.
Transition SEC3:SEC4: If the device processes a power-on reset, the device shall transition to the SEC4:
Security Enabled/Locked/Not Frozen state (see 4.21.11.8).
Editor’s Note 17: There appears to be no table for SEC3, not sure if this was by design
Table 15 — Security page settings for the SEC4: Security Enabled/Locked/Not Frozen state
Transition SEC4:SEC5: If a SECURITY UNLOCK command (see 7.38) returns command completion without
error, the device shall transition to the SEC5: Security Enabled/Not Locked/Not Frozen state (see 4.21.11.9).
4.21.11.9 SEC5: Security Enabled/Not Locked/Not Frozen state
The SEC5: Security Enabled/Not Locked/Not Frozen state shall be entered if the device processes one of the
following commands that returns command completion without error:
a) while in the SEC1: Security Disabled/Not Locked/Not Frozen state (see 4.21.11.5), the device processes
a SECURITY SET PASSWORD command (see 7.37) in which the User password is specified (i.e., the
IDENTIFIER bit is cleared to zero);
b) while in the SEC4: Security Enabled/Locked/Not Frozen state (see 4.21.11.8), the device processes a
SECURITY UNLOCK command (see 7.38); or
c) while in the SEC5: Security Enabled/Not Locked/Not Frozen state (see 4.21.11.9), the device processes
a:
A) SECURITY SET PASSWORD command; or
B) SECURITY ERASE PREPARE command (see 7.34).
In this state, the device shall respond to commands as specified in the Unlocked or Disabled column of table 12.
The processing of commands shall not cause a transition from this state, except for:
a) the processing of commands in the Security feature set; or
b) the transition of the Sanitize state machine to the SD4: Sanitize Operation Succeeded state
(see 4.19.10.6).
In this state, the device shall set the bits in the Security page (see 9.11.8) of the IDENTIFY DEVICE data log as
described in table 16.
Table 16 — Security page settings for the SEC5: Security Enabled/Not Locked/Not Frozen state
b) not change the MASTER PASSWORD CAPABILITY bit (see 9.11.8.3.2); and
c) transition to the SEC5: Security Enabled/Not Locked/Not Frozen state (see 4.21.11.9).
If a SECURITY SET PASSWORD command in which the User password is specified (i.e., the IDENTIFIER bit is
cleared to zero) or a SECURITY UNLOCK command (see 7.38) returns command completion without error, then
the device shall:
a) save the User password;
b) update the MASTER PASSWORD CAPABILITY bit (see 9.11.8.3.2); and
c) transition to the SEC5: Security Enabled/Not Locked/Not Frozen state.
If a SECURITY ERASE PREPARE command (see 7.34) returns command completion without error, then the
device shall transition to the SEC5: Security Enabled/Not Locked/Not Frozen state.
Transition SEC5:SEC6: If a SECURITY FREEZE LOCK command (see 7.36) returns command completion
without error, the device shall transition to the SEC6: Security Enabled/Not Locked/Frozen state
(see 4.21.11.10).
4.21.11.10 SEC6: Security Enabled/Not Locked/Frozen state
The SEC6: Security Enabled/Not Locked/Frozen state shall be entered when the device receives a SECURITY
FREEZE LOCK command (see 7.36) while in the SEC5: Security Enabled/Not Locked/Not Frozen state
(see 4.21.11.9).
In this state, the device shall respond to commands as specified in the Frozen column of table 12.
The processing of commands shall not cause a transition from this state, except for:
a) the processing of commands in the Security feature set; or
b) the transition of the Sanitize state machine to the SD4: Sanitize Operation Succeeded state
(see 4.19.10.6).
In this state, the device shall set the bits in the Security page (see 9.11.8) of the IDENTIFY DEVICE data log as
described in table 17.
Table 17 — Security page settings for the SEC6: Security Enabled/Not Locked/Frozen state
Transition SEC6:SEC1: If the device transitions to the SD4: Sanitize Operation Succeeded state
(see 4.19.10.6), then the device shall transition to the SEC1: Security Disabled/Not Locked/Not Frozen state
(see 4.21.11.5).
Transition SEC6:SEC4: If the device processes a hardware reset, the device shall transition to the SEC4:
Security Enabled/Locked/Not Frozen state (see 4.21.11.8).
Transition SEC6:SEC3: If the device is powered-down, the device shall transition to the SEC3: Powered
down/Security Enabled/Locked/Not Frozen state (see 4.21.11.7).
information on the last five errors that the device reported as described in the SMART READ LOG command
(see 7.44.2). The device may also provide additional vendor specific information on these reported errors.
If error logging is supported, error logging shall not be disabled when SMART is disabled. Error log information
shall be gathered while the device is powered-on and in a normal power mode. The logging of errors while in a
reduced power mode is optional. If errors are logged while in a reduced power mode, the reduced power mode
shall not change. Disabling the SMART feature set (see ACS-3) shall disable the delivering of error log
information via the SMART READ LOG command.
The SMART error logs are:
a) the Summary SMART Error Log (see 9.23);
b) the Comprehensive SMART Error Log (see 9.4); and
c) the Extended Comprehensive SMART Error Log (see 9.7).
5 ATA protocols
ATA Protocols are described in the transport standards (e.g., ATA8-APT and ATA8-AST). The protocols listed in
this clause shall be implemented by all transports that use the commands defined in this standard. The following
list of protocols are described in ATA8-AAM and the implementation of each protocol is described in the transport
standards:
a) Non-Data Command Protocol;
b) PIO Data-In Command Protocol;
c) PIO Data-Out Command Protocol;
d) DMA Command Protocol;
e) DMA Queued Command Protocol;
f) Execute Device Diagnostic Command Protocol; and
g) Device Reset Command Protocol.
6.1 Overview
Clause 6 describes requirements for all commands. Individual commands may describe additional requirements.
The normal outputs (see 10.2) and error outputs (see 10.3) for each command include:
a) a one byte STATUS field (see 6.2);
b) a one byte ERROR field (see 6.3);
c) a one byte INTERRUPT REASON field (see 6.4), if required, for certain commands (e.g., READ DMA
QUEUED, READ DMA QUEUED EXT, WRITE DMA QUEUED, and WRITE DMA QUEUED EXT);
d) a COUNT field (see 6.5), SACTIVE field (see 6.6), and SATA STATUS field (see 6.7), if required, for certain
commands (e.g., the READ FPDMA QUEUED command, Sanitize Device feature set commands, and
WRITE FPDMA QUEUED command); and
e) an LBA field (see 6.8) that may contain the LBA of First Unrecoverable Error (see 6.8.2).
Editor’s Note 18: Need definition. This applies to all commands, should we just say it here, or include
it in every list?
Editor’s Note 24: Need definition. This applies to all commands, should we just say it here, or include
it in every list?
Editor’s Note 25: Need definition. This applies to all commands, should we just say it here, or include
it in every list?
If:
a) the READ CONTINUOUS bit is set to one in a read stream command or the WRITE CONTINUOUS bit is set to
one in a write stream command; and
b) the INTERFACE CRC bit, the UNCORRECTABLE ERROR bit, the ID NOT FOUND bit, the ABORT bit, or the
COMMAND COMPLETION TIME OUT bit is set to one in the ERROR field (see 6.3),
then:
a) the STREAM ERROR bit shall be set to one;
b) the ERROR bit shall be cleared to zero; and
c) the error information (e.g., bits set in the ERROR field) shall be saved in the appropriate:
A) Read Stream Error Log (see 9.15); or
B) Write Stream Error log (see 9.24).
6.2.11 Transport Dependent bits and fields
All bits and fields that are labelled transport dependent are defined in the transport standards.
b) a command completion time out has occurred in response to a Streaming feature set command.
Otherwise, an ATA device shall clear the COMMAND COMPLETION TIME OUT bit to zero.
6.3.4 ID NOT FOUND bit
The ID NOT FOUND bit shall be set to one if:
a) a user-addressable address was not found; or
b) an address outside of the range of user-addressable addresses is requested and the ABORT bit
(see 6.3.2) is cleared to zero.
Otherwise, the ID NOT FOUND bit shall be cleared to zero.
6.3.5 INTERFACE CRC bit
The INTERFACE CRC bit shall be set to one if an interface CRC error occurred during an Ultra DMA data transfer.
The INTERFACE CRC bit shall be cleared to zero if an interface CRC error did not occur during an Ultra DMA data
transfer.
The value of the INTERFACE CRC bit may be applicable to Multiword DMA transfers and PIO data transfers. If the
INTERFACE CRC bit is set to one, the ABORT bit is set to one.
Bit Description
7:2 Obsolete
1 INPUT/OUTPUT bit (see 6.4.3)
0 COMMAND/DATA bit (see 6.4.2)
6.5.2 Contiguous stream logical sectors that contain potentially bad data
For commands in the Streaming feature set (see 4.25), the COUNT field may be used to indicate the number of
contiguous logical sectors that contain potentially bad data.
6.5.3 NCQ Tag
For commands in the NCQ feature set (see 4.15), the COUNT field may be used to indicate the tag of an NCQ
command that caused an error.
Bit Description
7:3 NCQ TAG field (see 7.15.3.3)
2:0 Reserved
7 Command descriptions
ATA commands may use the ICC field and the AUXILIARY field (see table 23).
Field lengths are different based on the type of command (see 7.1.3).
This standard describes the ATA command set in a transport independent fashion. Each command is defined by
a series of subclauses as described in 7.1.2 through 7.1.8.
7.1.2 Command Name – Command Code [/Subcommand Code], Command Protocol
The heading for each command starts with the name of the command. The name is followed by “-” and then the
command code, subcommand code if applicable, and protocol used to process the command.
EXAMPLE - A heading reads:
READ SECTOR(S) – 20h, PIO Data-In
In this example heading the name of the command is READ SECTOR(S). The command code is 20h. The protocol used to
transfer the data is PIO Data-In.
Protocols are defined in ATA8-AAM. The transport protocol standards define the implementation of each
protocol.
7.1.3 Feature Set
The feature set subclause for each command lists the feature set (see clause 4) along with a statement that
indicates if the command uses 28-bit field formatting or 48-bit field formatting. If a command uses 28-bit
formatting, then:
a) the FEATURE field, COUNT field, DEVICE field, ERROR field, STATUS field, and COMMAND field are each eight
bits in length; and
b) the LBA field is 28 bits in length.
If a command uses 48-bit formatting, then:
a) the DEVICE field, ERROR field, STATUS field, and COMMAND field are each eight bits in length;
b) the FEATURE field and COUNT field are 16 bits in length; and
c) the LBA field is 48 bits in length.
EXAMPLE - A feature set subclause reads:
Feature Set
This 28-bit command is for all ATA devices.
7.1.4 Inputs
The Inputs subclause contains a table showing the inputs for the command. An example command structure is
shown in table 23.
Field Description
FEATURE Each transport standard defines how the FEATURE field is mapped for proper functionality. Each
transport standard also defines how 28-bit commands are mapped differently than 48-bit
commands.
COUNT Each transport standard defines how the COUNT field is mapped for proper functionality. Each
transport standard also defines how 28-bit commands are mapped differently than 48-bit
commands.
LBA For many commands, the LBA field contains the LBA of the first logical sector to be transferred.
Each transport standard defines how the LBA field is mapped to the appropriate fields or registers.
a
ICC Each transport standard defines how the ICC field, if present, is mapped to the appropriate fields
or registers. The ICC field is not present in all commands.
AUXILIARY a Each transport standard defines how the AUXILIARY field, if present, is mapped to the appropriate
fields or registers. The AUXILIARY field is not present in all commands.
DEVICE Each transport standard defines how the DEVICE field bits 7:4 are mapped. Bits 3:0 are marked
reserved in every reference to the DEVICE field.
COMMAND The COMMAND field contains the command code.
a Commands that depend on the transport of this field are defined by this standard in a way that prevents
the operation codes from being valid on devices that implement a transport standard that does not define
a mapping for this field.
Field Description
ERROR Reserved
COUNT Reserved
LBA Reserved
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A or ALIGNMENT ERROR bit – See 6.2.2
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Field Description
ERROR
Bit Description
7 INTERFACE CRC bit – See 6.3.5
6 UNCORRECTABLE ERROR bit – See 6.3.6
5 Obsolete
4 ID NOT FOUND bit – See 6.3.4
3 Obsolete
2 ABORT bit – See 6.3.2
1 Obsolete
0 Obsolete
COUNT Reserved
LBA LBA of First Unrecoverable Error (see 6.8.2)
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2:1 N/A
0 ERROR bit – See 6.2.8
x0h x1h x2h x3h x4h x5h x6h x7h x8h x9h xAh xBh xCh xDh xEh xFh
a a
0xh C R R A R R C C O R R C R R R R
1xh O E E E E E E E E E E E E E E E
a
2xh C O O O C C O O R O C C R R R C
a
3xh C O O O C C O O A O C C O C O C
4xh C O C R Ca C R C R R Za R R R R R
5xh O C R R R R R C R R R C C C C C
6xh C C S C C C S S R R R R R R R R
7xh O E E E E E E C C E E E E E E E
8xh V V V V V V V A V V V V V V V V
9xh C O C C E E E E E E V R R R R Za
Axh Oa Oa O R R R R R R R R R R R R R
a
Bxh C O C R C R O A A A A A R R R R
a a a a
Cxh A V V V O O O O C O C O O A O R
Dxh R O R R R R R R R R O E E E O O
Exh C C C C C C C C C C C C C O O C
Fxh V C C C C C C V O O V V V V V V
Key: C = defined command O = Obsolete
R = Reserved, undefined in current E = retired command
specifications A = Reserved for CFA
V = Vendor specific commands S = Reserved for Serial ATA
Z = Defined by ZAC
a This entry has changed from ACS-3.
Value Command
0000h GET NATIVE MAX ADDRESS EXT (see 7.2.2)
0001h SET ACCESSIBLE MAX ADDRESS EXT (see 7.2.3)
0002h FREEZE ACCESSIBLE MAX ADDRESS EXT (see 7.2.4)
0003h..FFFFh Reserved
Field Description
FEATURE 0000h
COUNT Reserved
LBA Reserved
DEVICE
Bit Description
7 Obsolete
6 N/A
7:5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE 0001h
COUNT Reserved
LBA Requested maximum LBA value
DEVICE
Bit Description
7 Obsolete
6 N/A
7:5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE 0002h
COUNT Reserved
LBA Reserved
DEVICE
Bit Description
7 Obsolete
6 N/A
7:5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE N/A
COUNT N/A
LBA N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE
Bit Description
15:8 DEFAULT CCTL field – See 7.4.3.4
7 ADD/REMOVE STREAM bit – See 7.4.3.2
6 Obsolete
5:3 Reserved
2:0 STREAM ID field – See 7.4.3.3
Field Description
FEATURE
Bit Description
15:8 DSM FUNCTION field – See 7.5.3.2
7:1 Reserved
0 TRIM bit – See 7.5.3.3
COUNT Number of 512-byte blocks to be transferred (see 7.5.6). The value zero is reserved.
LBA If the TRIM bit is set to one, reserved
If the TRIM bit is cleared to zero, defined by the DSM FUNCTION field (see 7.5.3.2)
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
If the TRIM bit is cleared to zero, the DSM FUNCTION field (see table 34) specifies the data set management
function to be performed.
Code Description
01h Markup LBA Ranges function (see 7.5.3.4)
All others Reserved
Bit
TRIM DRAT RZAT Data returned for a trimmed logical sector
SUPPORTED SUPPORTED SUPPORTED specified by a read command
0 see 9.11.5.9.2 see 9.11.5.9.2 not applicable
1 0 see 9.11.5.2.8 Different data may be returned for each read command.
1 0 The same data returned by the first read of that logical
sector processed after that logical sector became a trimmed
logical sector.
1 1 The returned data is zeros.
The data read from a trimmed logical sector shall not be retrieved from data that was previously received from a
host addressed to any other LBA.
After a trimmed logical sector has been written (e.g., a write command or a SECURITY ERASE UNIT command),
the data in that logical sector becomes determinate (i.e., the logical sector contains the stored data).
If a write to a trimmed logical sector returns command completion with an error, that logical sector may or may
not be a trimmed logical sector.
See 7.64.2.1 for a description of the interactions between the DATA SET MANAGEMENT command with the
TRIMbit set to one and the WRITE UNCORRECTABLE EXT command.
Table 37 — SEND FPDMA QUEUED command encapsulation for the subcommand specific inputs from a
DATA SET MANAGEMENT command
SEND FPDMA QUEUED field (see table 105) DATA SET MANAGMENT field (see table 33), if any
LBA LBA
Field Description
FEATURE
Bit Description
15:8 DSM FUNCTION field – See 7.5.3.2
7:1 Reserved
0 TRIM bit – See 7.5.3.3
COUNT Number of 512-byte blocks to be transferred (see 7.6.6). The value zero is reserved.
LBA If the TRIM bit is set to one, reserved
If the TRIM bit is cleared to zero, defined by the DSM FUNCTION field (see 7.5.3.2)
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Table 40 — SEND FPDMA QUEUED command encapsulation for the subcommand specific inputs from a
DATA SET MANAGEMENT XL command
SEND FPDMA QUEUED field (see table 105) DATA SET MANAGMENT XL field (see table 38), if any
LBA LBA
Phases Included
Code Subcommand Name
Download Save Activate
01h Obsolete
03h Download with offsets and save microcode for one or more Yes Yes a
immediate and future use (see 7.7.2.2) segments
07h Download and save microcode for immediate and one segment only Yes Yes
future use (see 7.7.2.3)
0Eh Download with offsets and save microcode for future one or more Yes No b
use (see 7.7.2.4) segments
0Fh Activate downloaded microcode (see 7.7.2.5) No No Yes
all others Reserved
a Activation occurs after the complete updated microcode data has been downloaded.
b Activation does not occur as part of the processing of the command, but is triggered by events that occur
after command completion (e.g., power cycle or Activate downloaded microcode subcommand).
7.7.2.2 Download with offsets and save microcode for immediate and future use subcommand (i.e., 03h)
The Download with offsets and save microcode for immediate and future use subcommand transfers the updated
microcode data in one or more DOWNLOAD MICROCODE commands or DOWNLOAD MICROCODE DMA
commands. This subcommand downloads data containing a segment of the updated microcode data. On
normal command completion, the COUNT field may contain additional indicators (see 7.7.4).
If the final segment has been downloaded, the device validates the downloaded updated microcode. If the
validation is successful, the downloaded updated microcode is saved to non-volatile storage and is activated.
After transferring a segment where the value of the BUFFER OFFSET field is cleared to zero, if the device begins to
process a command that is not a DOWNLOAD MICROCODE command and is not a DOWNLOAD MICROCODE
DMA command, then the device:
1) may discard any updated microcode data that has not been saved; and
2) shall continue to process the new command.
7.7.2.3 Download and save microcode for immediate and future use subcommand (i.e., 07h)
The Download and save microcode for immediate and future use subcommand transfers the updated microcode
data in one DOWNLOAD MICROCODE command or in one DOWNLOAD MICROCODE DMA command.
After the updated microcode data has been downloaded:
1) the device shall save the updated microcode data;
2) the device shall activate the updated microcode data; and
3) if command completion has not previously been returned, then the device shall return command
completion.
7.7.2.4 Download with offsets and save microcode for future use subcommand (i.e., 0Eh)
The Download and save microcode for future use subcommand transfers the updated microcode data in one
or more DOWNLOAD MICROCODE commands or DOWNLOAD MICROCODE DMA commands. On normal
command completion, the COUNT field may contain additional indicators (see 7.7.4).
If the final segment has been downloaded, the device validates the downloaded updated microcode. If the
validation is successful, the downloaded updated microcode is saved to non-volatile storage and becomes the
deferred microcode. The deferred microcode data is activated as a result of processing the next power on reset
or processing an Activate downloaded microcode subcommand (see 7.7.2.5).
The processing of commands other than the DOWNLOAD MICROCODE command and the DOWNLOAD
MICROCODE DMA command shall not affect any:
a) updated microcode; and
b) saved microcode.
7.7.2.5 Activate downloaded microcode subcommand (i.e., 0Fh)
The Activate downloaded microcode subcommand shall activate deferred microcode data that had been
previously downloaded and saved by the Download with offsets and save microcode for future use subcommand
(see 7.7.2.4).
If there is no deferred microcode data that has been saved using the Download with offsets and save microcode
for future use subcommand, then the device shall return command aborted.
If the activation attempt fails, the device shall return command aborted.
7.7.2.6 DOWNLOAD MICROCODE state machine
7.7.2.6.1 Overview
Subclause 7.7.2.6 and figure 11 describe the DOWNLOAD MICROCODE state machine for all subcommands of
the DOWNLOAD MICROCODE command and the DOWNLOAD MICROCODE DMA command.
DL1:No DL
In Process DL0:PowerOn
Process PowerOn Reset
DL0:DL1
DL2:SubCmd 07h DL
DL SubCmd 07h
DL1:DL2
Error Detected
DL2a:DL1
Reset
DL2b:DL1
Saved And Activated
DL2c:DL1
DL3:First Segment
SubCmd 03h
DL SubCmd 03h
DL1:DL3
DL4:Next Segment
First Segment != SubCmd 03h
Last Segment
Error Detected DL3:DL4
DL3a:DL1 Offset=0
DL4:DL3
DL5: SubCmd 03h DL SubCmd 07h
Reset
Save & Activate DL4:DL2
DL3b:DL1
Error Detected
DL4a:DL1
Reset
DL4b:DL1
DL6:First Segment
SubCmd 0Eh
DL SubCmd 0Eh
DL1:DL6
DL7:Next Segment
First Segment != SubCmd 0Eh
Last Segment
Error Detected DL6:DL7
DL6a:DL1 Offset=0 DL SubCmd 03h
DL7:DL6
DL7:DL3
Reset DL8: SubCmd 0Eh
DL6:DL1 DL SubCmd 07h
Save
DL7:DL2
First Segment = Final Segment
Last Segment DL7:DL8
Error Detected DL6:DL8
DL8a:DL1
Reset
DL8b:DL1
Saved
DL8c:DL1
Error Detected
DL7a:DL1
Reset
DL7b:DL1
DL9: Activate
SubCmd 0Fh
DL SubCmd 0Fh
DL1:DL9
Activated by command
DL9a:DL1
Activation error
DL9b:DL1
Figure 11 — DOWNLOAD MICROCODE State Machine
Transition DL2c:DL1: If the device does not detect an error, then the device:
1) should activate the updated microcode data before the device returns command completion without
error;
2) shall activate the updated microcode data if the device returned command completion without error first;
3) shall return command completion without error if the device has not previously returned command
completion; and
4) shall transition to the DL1: No DL In Process (see 7.7.2.6.3) state.
7.7.2.6.5 DL3: First Segment SubCmd 03h state
In the DL3: First Segment SubCmd 03h state, the device processes a Download with offsets and save microcode
for immediate and future use subcommand and the value of the BUFFER OFFSET field is cleared to zero. The
device shall transfer the first segment of updated microcode data from the host.
If a Download with offsets and save microcode for immediate and future use subcommand is processed and the
value of the BLOCK COUNT field is cleared to zero, then the Non-Data transfer protocol shall be used. This
condition shall not be considered as an error.
Transition DL3a:DL1: If the device processes a Download with offsets and save microcode for immediate and
future use subcommand and:
a) the value of the DM MINIMUM TRANSFER SIZE field (see 9.11.5.3.6) is:
A) not 0000h;
B) not FFFFh; and
C) greater than the BLOCK COUNT field of the Download with offsets and save microcode for immediate
and future use subcommand;
b) the value of the DM MAXIMUM TRANSFER SIZE field (see 9.11.5.3.5) is:
A) not 0000h;
B) not FFFFh; and
C) less than the value of the BLOCK COUNT field of the Download with offsets and save microcode for
immediate and future use subcommand;
or
c) the device detects an error,
then the device shall:
1) discard all updated microcode data that has not been saved;
2) retain all deferred microcode data;
3) return command aborted; and
4) transition to the DL1: No DL In Process (see 7.7.2.6.3) state.
Transition DL3b:DL1: If the device processes a hardware reset or a software reset, then the device shall:
1) discard all updated microcode data that has not been saved;
2) retain all deferred microcode data; and
3) transition to the DL1: No DL In Process (see 7.7.2.6.3) state.
Transition DL3:DL4: If the data transfer is complete and not all of the updated microcode data has been
received by the device (e.g., the first segment is not the last segment), then the device:
1) shall retain all deferred microcode data;
2) shall return command completion with no error;
3) may set the COUNT field to 01h (see 7.7.4); and
4) shall transition to the DL4: Next Segment SubCmd 03h (see 7.7.2.6.6) state.
Transition DL3:DL5: If the data transfer is complete and all of the updated microcode data has been received by
the device, then the device shall:
1) not return command completion; and
2) transition to the DL5: SubCmd 03h Save & Activate (see 7.7.2.6.7) state.
Transition DL6:DL7: If the data transfer is complete and not all of the updated microcode data have been
received by the device (e.g., the first segment is not the last segment), then the device shall:
1) discard all updated microcode data that has not been saved;
2) retain all deferred microcode data;
3) return command completion without error;
4) set the COUNT field to 01h (see 7.7.4); and
5) transition to the DL7: Next Segment SubCmd 0Eh (see 7.7.2.6.9) state.
Transition DL6:DL8: If the data transfer is complete and all of the updated microcode data has been received by
the device, then the device shall:
1) not return command completion; and
2) transition to the DL8: SubCmd 0Eh Save (see 7.7.2.6.10) state.
7.7.2.6.9 DL7: Next Segment SubCmd 0Eh state
In the DL7: Next Segment SubCmd 0Eh state, the device waits for additional Download with offsets and save
microcode for future use subcommands. The device shall transfer all remaining segments of updated microcode
data from the host. In this state, any ATA command for which command acceptance occurs between segments
shall be processed.
If a Download with offsets and save microcode for future use subcommand is processed and the value of the
BLOCK COUNT field is cleared to zero, then the Non-Data transfer protocol shall be used. This condition shall not
be considered as an error.
If the device processes a Download with offsets and save microcode for future use subcommand in which:
a) the segment is not the last segment;
b) the value of the BLOCK COUNT field is nonzero; and
c) the value of the BUFFER OFFSET field is nonzero and is equal to the sum of:
A) the value of the BUFFER OFFSET field of the previous download microcode command; and
B) the value of the BLOCK COUNT field of the previous download microcode command,
then the device:
1) shall set the COUNT field to 01h (see 7.7.4); and
2) shall return command completion without error.
If the device processes a command that is not a download microcode command, then the device shall:
1) retain all updated microcode data that has not been saved; and
2) process the new command.
If the device processes an Activate downloaded microcode subcommand (i.e. 0Fh), the device shall:
1) discard all updated microcode data that has not been saved;
2) discard all deferred microcode data;
3) return command aborted; and
4) transition to the DL1: No DL In Process (see 7.7.2.6.3) state.
Transition DL7a:DL1: If the device processes a Download with offsets and save microcode for future use
subcommand in which:
a) the value of the BLOCK COUNT field is nonzero;
b) the value of the BUFFER OFFSET field is not equal to the sum of:
A) the value of the BUFFER OFFSET field of the previous download microcode command; and
B) the value of the BLOCK COUNT field of the previous download microcode command,
then the device shall:
1) discard all updated microcode data that has not been saved;
2) retain all deferred microcode data;
3) return command aborted; and
4) transition to the DL1: No DL In Process (see 7.7.2.6.3) state.
If the device processes a Download with offsets and save microcode for future use subcommand and:
a) the value of the DM MINIMUM TRANSFER SIZE field (see 9.11.5.3.6) is:
A) not 0000h;
B) not FFFFh; and
C) greater than the BLOCK COUNT field of the Download with offsets and save microcode for future use
subcommand;
or
b) the value of the DM MAXIMUM TRANSFER SIZE field (see 9.11.5.3.5) is:
A) not 0000h;
B) not FFFFh; and
C) less than the value of the BLOCK COUNT field of the Download with offsets and save microcode for
future use subcommand,
then the device shall:
1) discard all updated microcode data that has not been saved;
2) retain all deferred microcode data;
3) return command aborted; and
4) transition to the DL1: No DL In Process (see 7.7.2.6.3) state.
Transition DL7b:DL1: If the device processes a hardware reset or a software reset, then the device shall:
1) discard all updated microcode data that has not been saved;
2) retain all deferred microcode data; and
3) transition to the DL1: No DL In Process (see 7.7.2.6.3) state.
Transition DL7:DL2: If the device processes a Download and save microcode for immediate and future use
subcommand, then the device shall:
1) discard all updated microcode data that has not been saved;
2) retain all deferred microcode data; and
3) transition to the DL2: SubCmd 07h DL (see 7.7.2.6.4) state.
Transition DL7:DL3: If the device processes a Download with offsets and save microcode for immediate and
future use subcommand (i.e., 03h) and the value of the BUFFER OFFSET field is cleared to zero, then the device
shall:
1) discard all updated microcode data that has not been saved;
2) if the DM CLEARS NONACTIVATED DEFERRED DATA bit (see 9.11.5.3.1) is:
A) cleared to zero, then retain all deferred microcode data; or
B) set to one, then discard all deferred microcode data;
and
3) transition to the DL3: First Segment SubCmd 03h (see 7.7.2.6.5) state.
Transition DL7:DL6: If the device processes a Download with offsets and save microcode for future use
subcommand (i.e., 0Eh) and the value of the BUFFER OFFSET field is cleared to zero, then the device shall:
1) discard all updated microcode data that has not been saved;
2) if the DM CLEARS NONACTIVATED DEFERRED DATA bit (see 9.11.5.3.1) is:
A) cleared to zero, then retain all deferred microcode data; or
B) set to one, then discard all deferred microcode data;
and
3) transition to the DL6: First Segment SubCmd 0Eh (see 7.7.2.6.8) state.
Transition DL7:DL8: If the device determines that all segments of the updated microcode data have been
downloaded, then the device shall transition to the DL8: SubCmd 0Eh Save (see 7.7.2.6.10) state.
7.7.2.6.10 DL8: SubCmd 0Eh Save state
In the DL8: SubCmd 0Eh Save state, the device shall:
1) perform any verification required by the device; and
2) save the updated microcode data in a non-volatile location, replacing any deferred microcode data.
Transition DL8a:DL1: If the device detects an error, then the device shall:
1) discard all updated microcode data that has not been saved;
2) retain all deferred microcode data;
3) return command aborted; and
4) transition to the DL1: No DL In Process (see 7.7.2.6.3) state.
Transition DL8b:DL1: If the device processes a hardware reset or a software reset prior to saving the updated
microcode data, then the device shall:
1) discard all updated microcode data that has not been saved;
2) retain all deferred microcode data; and
3) transition to the DL1: No DL In Process (see 7.7.2.6.3) state.
Transition DL8c:DL1: If the device does not detect an error, then the device:
1) shall set the COUNT field to 03h (see 7.7.4);
2) shall return command completion with no error; and
3) shall transition to DL1: No DL In Process (see 7.7.2.6.3) state.
7.7.2.6.11 DL9: Activate SubCmd 0Fh state
In the DL9: Activate SubCmd 0Fh state, the deferred microcode data is activated.
Transition DL9a:DL1: If the device has deferred microcode data, then the device shall:
1) activate the deferred microcode data;
2) discard the deferred microcode data;
3) set the COUNT field to 03h (see 7.7.4);
4) return command completion without error; and
5) transition to DL1: No DL In Process (see 7.7.2.6.3) state.
Transition DL9b:DL1: If the device:
a) has updated microcode data that has not been saved;
b) does not have deferred microcode data; or
c) is unable to activate the deferred microcode data,
then the device shall:
1) discard all updated microcode data that has not been saved;
2) discard all deferred microcode data;
3) return command aborted; and
4) transition to DL1: No DL In Process (see 7.7.2.6.3) state.
7.7.3 Inputs
7.7.3.1 Overview
See table 42 for the DOWNLOAD MICROCODE command inputs.
Field Description
FEATURE SUBCOMMAND field – See 7.7.3.2
COUNT BLOCK COUNT field (7:0) – See 7.7.3.3
LBA
Bit Description
27:24 Reserved
23:8 BUFFER OFFSET field – See 7.7.3.4
7:0 BLOCK COUNT field (15:8) – See 7.7.3.3
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
If the subcommand is Download with offsets and save microcode for immediate and future use and the:
a) DM MINIMUM TRANSFER SIZE field (see 9.11.5.3.6) has a value other than 0000h or FFFFh; or
b) DM MAXIMUM TRANSFER SIZE field (see 9.11.5.3.5) has a value other than 0000h or FFFFh,
then table 43 describes the indicator returned in the COUNT field.
Table 43 — COUNT field output for DOWNLOAD MICROCODE requesting the offset transfer method
Valid for
Value Description
Subcommands
00h 03h No indication of download microcode status.
01h 03h and 0Eh Indicates the ATA device is expecting more download microcode commands to
follow.
02h 03h and 0Fh Indicates that the ATA device has applied the new microcode.
03h 0Eh All segments of the updated microcode data have been received and saved,
and the device is waiting for activation of the updated microcode data.
04h-FFh None Reserved
Field Description
FEATURE See the FEATURE field in 7.7.3
COUNT See the COUNT field in 7.7.3
LBA See the LBA field in 7.7.3
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE N/A
COUNT N/A
LBA N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Code a Description
When this code is in the Device 0 b ERROR field
01h Device 0 b passed, Device 1 b passed or not present
00h, 02h..7Fh Device 0 b failed, Device 1 b passed or not present
81h Device 0 b passed, Device 1 b failed
80h, 82h..FFh Device 0 b failed, Device 1 b failed
When this code is in the Device 1 b ERROR field
01h Device 1 b passed c
00h, 02h..7Fh Device 1 b failed c
80h..FFh Reserved
a
Codes other than 01h and 81h may indicate additional information about
the failure(s).
b
See the appropriate transport standard for the definition of device 0 and
device 1.
c If Device 1 is not present, the host may see the information from Device
0 even though Device 1 is selected.
Field Description
FEATURE N/A
COUNT N/A
LBA N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
If an unrecoverable error occurs while the device is writing data to its media, the device shall terminate
processing the command and report the error, including the LBA of First Unrecoverable Error (see 6.8.2). If the
device receives a subsequent FLUSH CACHE command, the device shall continue the process of flushing the
cache. See table 330.
If an error occurs during the flush process and the LBA of the data in error is outside the 28-bit address range,
then the LBA of the logical sector in error is incorrectly reported. For correct error reporting in a device that has
more than a 28-bit address range, use the FLUSH CACHE EXT command (see 7.11).
Field Description
FEATURE Reserved
COUNT Reserved
LBA Reserved
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
device receives a subsequent FLUSH CACHE EXT command, then the device shall continue the process of
flushing its cache. See table 331.
Field Description
FEATURE N/A
COUNT N/A
LBA N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
O S F
Word M P V Description
0 M B General configuration (see 7.12.6.2)
F 15 0 = ATA device
X 14:8 Retired
X 7:6 Obsolete
X 5:3 Retired
V 2 Incomplete response
X 1 Retired
0 Reserved
1 X Obsolete
2 O B V Specific configuration (see 7.12.6.4)
3 X Obsolete
4..5 X Retired
6 X Obsolete
7..8 N Reserved for CFA (see 7.12.6.8)
9 X Retired
10..19 M B F Serial number (see 7.12.6.10)
20..21 X Retired
22 X Obsolete
23..26 M B F Firmware revision (see 7.12.6.13)
27..46 M B F Model number (see 7.12.6.14)
Key: O/M – Mandatory/optional requirement.
F/V – Fixed/variable content M – Support of the word is mandatory.
F – The content of the field does not change O – Support of the word is optional.
except following a download microcode S/P – Content applies to Serial or Parallel transport
or power-on reset. S – Serial Transport
V – The contents of the field is variable and P – Parallel Transport
may change depending on the state of the B – Both Serial and Parallel Transports
device or the commands processed by N – Belongs to a transport other than Serial
the device. or Parallel
X – The fixed or variable type of this field is not
defined in this standard.
O S F
Word M P V Description
47 X Obsolete
48 O B Trusted Computing feature set options (see 7.12.6.16)
F 15 Shall be cleared to zero
F 14 Shall be set to one
13:1 Reserved for the Trusted Computing Group
F 0 Trusted Computing feature set is supported
49 M Capabilities (see 7.12.6.17)
15:14 Reserved for the IDENTIFY PACKET DEVICE command (see ACS-3)
B F 13 1 = Standby timer values as specified in this standard are supported.
0 = Standby timer values shall be vendor specific.
12 Reserved for the IDENTIFY PACKET DEVICE command (see ACS-3)
P F 11 1 = IORDY (see ATA8-APT) supported
0 = IORDY (see ATA8-APT) may be supported
P F 10 IORDY (see ATA8-APT) may be disabled
B F 9 Shall be set to one (i.e., LBA is supported).
P F 8 DMA supported
7:2 Reserved
B V 1:0 Long Physical Sector Alignment Error reporting
50 M Capabilities (see 7.12.6.17)
B F 15 Shall be cleared to zero
B F 14 Shall be set to one
13:2 Reserved
X 1 Obsolete
B F 0 1 = There is a minimum Standby time value and it is vendor specific.
0 = There is no minimum Standby timer value.
51..52 X Obsolete
Key: O/M – Mandatory/optional requirement.
F/V – Fixed/variable content M – Support of the word is mandatory.
F – The content of the field does not change O – Support of the word is optional.
except following a download microcode S/P – Content applies to Serial or Parallel transport
or power-on reset. S – Serial Transport
V – The contents of the field is variable and P – Parallel Transport
may change depending on the state of the B – Both Serial and Parallel Transports
device or the commands processed by N – Belongs to a transport other than Serial
the device. or Parallel
X – The fixed or variable type of this field is not
defined in this standard.
O S F
Word M P V Description
53 M See 7.12.6.19
B V 15:8 Free-fall Control Sensitivity
7:3 Reserved
B F 2 the fields reported in word 88 are valid
B F 1 the fields reported in words 64..70 are valid
X 0 Obsolete
54..58 X Obsolete
59 M See 7.12.6.21
B F 15 The BLOCK ERASE EXT command is supported (see 7.32.2)
B F 14 The OVERWRITE EXT command is supported (see 7.32.4)
B F 13 The CRYPTO SCRAMBLE EXT command is supported (see 7.32.3)
B F 12 The Sanitize feature set is supported (see 4.19)
B F 11 1 = The commands allowed during a sanitize operation are as specified by
this standard (see 4.19.6)
0 = The commands allowed during a sanitize operation are as specified by
ACS-2
B F 10 The SANITIZE ANTIFREEZE LOCK EXT command is supported
(see 7.32.5)
9 Reserved
X 8:0 Obsolete
60..61 M B F Total number of user addressable logical sectors for 28-bit commands (DWord)
(see 7.12.6.22)
62 X Obsolete
63 M See 7.12.6.24
15:11 Reserved
P V 10 Multiword DMA mode 2 is selected
P V 9 Multiword DMA mode 1 is selected
P V 8 Multiword DMA mode 0 is selected
7:3 Reserved
P F 2 Multiword DMA mode 2 and below are supported
P F 1 Multiword DMA mode 1 and below are supported
P F 0 Multiword DMA mode 0 is supported
Key: O/M – Mandatory/optional requirement.
F/V – Fixed/variable content M – Support of the word is mandatory.
F – The content of the field does not change O – Support of the word is optional.
except following a download microcode S/P – Content applies to Serial or Parallel transport
or power-on reset. S – Serial Transport
V – The contents of the field is variable and P – Parallel Transport
may change depending on the state of the B – Both Serial and Parallel Transports
device or the commands processed by N – Belongs to a transport other than Serial
the device. or Parallel
X – The fixed or variable type of this field is not
defined in this standard.
O S F
Word M P V Description
64 M See 7.12.6.25
15:2 Reserved
P F 1:0 PIO mode 3 and mode 4 supported
65 M P F Minimum Multiword DMA transfer cycle time per word (see 7.12.6.26)
66 M P F Manufacturer’s recommended Multiword DMA transfer cycle time (see 7.12.6.27)
67 M P F Minimum PIO transfer cycle time without flow control (see 7.12.6.28)
68 M P F Minimum PIO transfer cycle time with IORDY (see ATA8-APT) flow control
(see 7.12.6.29)
69 M Additional Supported (see 7.12.6.30)
N 15 Reserved for CFA
B F 14 Deterministic data in trimmed LBA range(s) is supported
B F 13 Long Physical Sector Alignment Error Reporting Control is supported
X 12 Obsolete
B F 11 READ BUFFER DMA is supported
B F 10 WRITE BUFFER DMA is supported
X 9 Obsolete
B F 8 DOWNLOAD MICROCODE DMA is supported
7 Reserved for IEEE 1667
B F 6 0 = Optional ATA device 28-bit commands supported
B F 5 Trimmed LBA range(s) returning zeroed data is supported
B F 4 Device Encrypts All User Data on the device
B F 3 Extended Number of User Addressable Sectors is supported
B V 2 All write cache is non-volatile
B V 1:0 Zoned Capabilities
70 Reserved
71..74 Reserved for the IDENTIFY PACKET DEVICE command (see ACS-3)
75 O Queue depth (see 7.12.6.33)
15:5 Reserved
S F 4:0 Maximum queue depth – 1
Key: O/M – Mandatory/optional requirement.
F/V – Fixed/variable content M – Support of the word is mandatory.
F – The content of the field does not change O – Support of the word is optional.
except following a download microcode S/P – Content applies to Serial or Parallel transport
or power-on reset. S – Serial Transport
V – The contents of the field is variable and P – Parallel Transport
may change depending on the state of the B – Both Serial and Parallel Transports
device or the commands processed by N – Belongs to a transport other than Serial
the device. or Parallel
X – The fixed or variable type of this field is not
defined in this standard.
O S F
Word M P V Description
76 O Serial ATA Capabilities (see 7.12.6.34)
S F 15 Supports READ LOG DMA EXT as equivalent to READ LOG EXT
S F 14 Supports Device Automatic Partial to Slumber transitions
S F 13 Supports Host Automatic Partial to Slumber transitions
S F 12 Supports NCQ priority information
S F 11 Supports Unload while NCQ commands are outstanding
S F 10 Supports the SATA Phy Event Counters log
S F 9 Supports receipt of host initiated power management requests
S F 8 Supports the NCQ feature set
7:4 Reserved for Serial ATA
S F 3 Supports SATA Gen3 Signaling Speed (6.0Gb/s)
S F 2 Supports SATA Gen2 Signaling Speed (3.0Gb/s)
S F 1 Supports SATA Gen1 Signaling Speed (1.5Gb/s)
S F 0 Shall be cleared to zero
77 O Serial ATA Additional Capabilities (see 7.12.6.35)
15:9 Reserved for Serial ATA
S F 8 Power Disable feature always enabled
S F 7 Supports DevSleep to ReducedPwrState
S F 6 Supports RECEIVE FPDMA QUEUED and SEND FPDMA QUEUED
commands
S F 5 Supports NCQ NON-DATA Command
S F 4 Supports NCQ Streaming
S V 3:1 Coded value indicating current negotiated Serial ATA signal speed
S F 0 Shall be cleared to zero
Key: O/M – Mandatory/optional requirement.
F/V – Fixed/variable content M – Support of the word is mandatory.
F – The content of the field does not change O – Support of the word is optional.
except following a download microcode S/P – Content applies to Serial or Parallel transport
or power-on reset. S – Serial Transport
V – The contents of the field is variable and P – Parallel Transport
may change depending on the state of the B – Both Serial and Parallel Transports
device or the commands processed by N – Belongs to a transport other than Serial
the device. or Parallel
X – The fixed or variable type of this field is not
defined in this standard.
O S F
Word M P V Description
78 O Serial ATA features supported (see 7.12.6.36)
15:13 Reserved for Serial ATA
S F 12 Power Disable feature supported
S F 11 Device supports Rebuild Assist feature set
10 Reserved for Serial ATA
9 Device supports Hybrid Information
S F 8 Device Sleep feature supported
S F 7 Device supports NCQ Autosense
S F 6 Device supports Software Settings Preservation
S F 5 Device supports Hardware Feature Control
S F 4 Device supports in-order data delivery
S F 3 Device supports initiating power management
S F 2 Device supports DMA Setup auto-activation
S F 1 Device supports nonzero buffer offsets
S F 0 Shall be cleared to zero
79 O Serial ATA features enabled (see 7.12.6.37)
15:12 Reserved for Serial ATA
S V 11 Rebuild Assist feature set enabled
S V 10 Power Disable feature enabled
9 Hybrid Information enabled
S V 8 Device Sleep feature enabled
S V 7 Automatic Partial to Slumber transitions enabled
S V 6 Software Settings Preservation enabled
S V 5 Hardware Feature Control is enabled
S V 4 In-order data delivery enabled
S V 3 Device initiated power management enabled
S V 2 DMA Setup auto-activation enabled
S V 1 Nonzero buffer offsets enabled
S F 0 Shall be cleared to zero
Key: O/M – Mandatory/optional requirement.
F/V – Fixed/variable content M – Support of the word is mandatory.
F – The content of the field does not change O – Support of the word is optional.
except following a download microcode S/P – Content applies to Serial or Parallel transport
or power-on reset. S – Serial Transport
V – The contents of the field is variable and P – Parallel Transport
may change depending on the state of the B – Both Serial and Parallel Transports
device or the commands processed by N – Belongs to a transport other than Serial
the device. or Parallel
X – The fixed or variable type of this field is not
defined in this standard.
O S F
Word M P V Description
80 M Major version number (see 7.12.6.38)
15:12 Reserved
B F 11 supports ACS-4
B F 10 supports ACS-3
B F 9 supports ACS-2
B F 8 supports ATA8-ACS
B F 7 supports ATA/ATAPI-7
B F 6 supports ATA/ATAPI-6
B F 5 supports ATA/ATAPI-5
X 4 Obsolete
X 3 Obsolete
X 2 Obsolete
X 1 Obsolete
0 Reserved
81 M B F Minor version number (see 7.12.6.39)
Key: O/M – Mandatory/optional requirement.
F/V – Fixed/variable content M – Support of the word is mandatory.
F – The content of the field does not change O – Support of the word is optional.
except following a download microcode S/P – Content applies to Serial or Parallel transport
or power-on reset. S – Serial Transport
V – The contents of the field is variable and P – Parallel Transport
may change depending on the state of the B – Both Serial and Parallel Transports
device or the commands processed by N – Belongs to a transport other than Serial
the device. or Parallel
X – The fixed or variable type of this field is not
defined in this standard.
O S F
Word M P V Description
82 M Commands and feature sets supported (see 7.12.6.40)
X 15 Obsolete
B F 14 The NOP command is supported.
B F 13 The READ BUFFER command is supported.
B F 12 The WRITE BUFFER command is supported.
X 11:10 Obsolete
B F 9 Shall be cleared to zero (i.e., the DEVICE RESET command (see ACS-3) is
not supported)
X 8:7 Obsolete
B F 6 Read look-ahead is supported.
B F 5 The volatile write cache is supported.
B F 4 Shall be cleared to zero (i.e., the PACKET feature set (see ACS-3) is not
supported).
B F 3 Shall be set to one (i.e., the Power Management feature set is supported)
X 2 Obsolete
B F 1 The Security feature set is supported.
B F 0 The SMART feature set is supported.
Key: O/M – Mandatory/optional requirement.
F/V – Fixed/variable content M – Support of the word is mandatory.
F – The content of the field does not change O – Support of the word is optional.
except following a download microcode S/P – Content applies to Serial or Parallel transport
or power-on reset. S – Serial Transport
V – The contents of the field is variable and P – Parallel Transport
may change depending on the state of the B – Both Serial and Parallel Transports
device or the commands processed by N – Belongs to a transport other than Serial
the device. or Parallel
X – The fixed or variable type of this field is not
defined in this standard.
O S F
Word M P V Description
83 M Commands and feature sets supported (see 7.12.6.40)
B F 15 Shall be cleared to zero
B F 14 Shall be set to one
B F 13 The FLUSH CACHE EXT command is supported.
B F 12 Shall be set to one (i.e., the FLUSH CACHE command is supported).
X 11 Obsolete
B F 10 The 48-bit Address feature set is supported.
X 9:7 Obsolete
B F 6 SET FEATURES subcommand is required to spin-up after power-up.
B F 5 The PUIS feature set is supported.
X 4 Obsolete
B F 3 The APM feature set is supported.
N 2 Reserved for CFA
X 1 Obsolete
B F 0 The DOWNLOAD MICROCODE command is supported.
84 M Commands and feature sets supported (see 7.12.6.40)
B F 15 Shall be cleared to zero
B F 14 Shall be set to one
B F 13 The IDLE IMMEDIATE command with UNLOAD feature is supported.
X 12:9 Obsolete
B F 8 Shall be set to one (i.e., the World Wide Name is supported)
X 7 Obsolete
B F 6 The WRITE DMA FUA EXT command is supported.
B F 5 The GPL feature set is supported
B F 4 The Streaming feature set is supported
X 3 Obsolete
2 Reserved
B F 1 The SMART self-test is supported.
B F 0 SMART error logging is supported.
Key: O/M – Mandatory/optional requirement.
F/V – Fixed/variable content M – Support of the word is mandatory.
F – The content of the field does not change O – Support of the word is optional.
except following a download microcode S/P – Content applies to Serial or Parallel transport
or power-on reset. S – Serial Transport
V – The contents of the field is variable and P – Parallel Transport
may change depending on the state of the B – Both Serial and Parallel Transports
device or the commands processed by N – Belongs to a transport other than Serial
the device. or Parallel
X – The fixed or variable type of this field is not
defined in this standard.
O S F
Word M P V Description
85 M Commands and feature sets supported or enabled (see 7.12.6.41)
X 15 Obsolete
B F 14 The NOP command is supported.
B F 13 The READ BUFFER command is supported.
B F 12 The WRITE BUFFER command is supported.
X 11:10 Obsolete
B F 9 Shall be cleared to zero (i.e., the DEVICE RESET command (see ACS-3) is
not supported)
X 8:7 Obsolete
B V 6 Read look-ahead is enabled.
B V 5 The volatile write cache is enabled.
B F 4 Shall be cleared to zero (i.e., the PACKET feature set (see ACS-3) is not
supported)
B F 3 Shall be set to one (i.e., the Power Management feature set is supported)
X 2 Obsolete
B V 1 The Security feature set is enabled.
B V 0 The SMART feature set is enabled.
Key: O/M – Mandatory/optional requirement.
F/V – Fixed/variable content M – Support of the word is mandatory.
F – The content of the field does not change O – Support of the word is optional.
except following a download microcode S/P – Content applies to Serial or Parallel transport
or power-on reset. S – Serial Transport
V – The contents of the field is variable and P – Parallel Transport
may change depending on the state of the B – Both Serial and Parallel Transports
device or the commands processed by N – Belongs to a transport other than Serial
the device. or Parallel
X – The fixed or variable type of this field is not
defined in this standard.
O S F
Word M P V Description
86 M Commands and feature sets supported or enabled (see 7.12.6.41)
B F 15 Words 119..120 are valid.
14 Reserved
B F 13 FLUSH CACHE EXT command supported.
B F 12 FLUSH CACHE command supported.
X 11 Obsolete
B F 10 The 48-bit Address features set is supported.
X 9:7 Obsolete
B F 6 SET FEATURES subcommand is required to spin-up after power-up.
B V 5 The PUIS feature set is enabled.
X 4 Obsolete
B V 3 The APM feature set is enabled.
N 2 Reserved for CFA
X 1 Obsolete
B F 0 The DOWNLOAD MICROCODE command is supported.
87 M Commands and feature sets supported or enabled (see 7.12.6.41)
B F 15 Shall be cleared to zero
B F 14 Shall be set to one
B F 13 The IDLE IMMEDIATE command with UNLOAD FEATURE is supported.
X 12:9 Obsolete
B F 8 Shall be set to one (i.e., the World Wide Name is supported)
X 7 Obsolete
B F 6 The WRITE DMA FUA EXT command is supported.
B F 5 The GPL feature set is supported.
X 4:3 Obsolete
B V 2 Media serial number is valid.
B F 1 SMART self-test is supported.
B F 0 SMART error logging is supported.
Key: O/M – Mandatory/optional requirement.
F/V – Fixed/variable content M – Support of the word is mandatory.
F – The content of the field does not change O – Support of the word is optional.
except following a download microcode S/P – Content applies to Serial or Parallel transport
or power-on reset. S – Serial Transport
V – The contents of the field is variable and P – Parallel Transport
may change depending on the state of the B – Both Serial and Parallel Transports
device or the commands processed by N – Belongs to a transport other than Serial
the device. or Parallel
X – The fixed or variable type of this field is not
defined in this standard.
O S F
Word M P V Description
88 O Ultra DMA modes (see 7.12.6.42)
15 Reserved
P V 14 Ultra DMA mode 6 is selected.
P V 13 Ultra DMA mode 5 is selected.
P V 12 Ultra DMA mode 4 is selected.
P V 11 Ultra DMA mode 3 is selected.
P V 10 Ultra DMA mode 2 is selected.
P V 9 Ultra DMA mode 1 is selected.
P V 8 Ultra DMA mode 0 is selected.
7 Reserved
P F 6 Ultra DMA mode 6 and below are supported.
P F 5 Ultra DMA mode 5 and below are supported.
P F 4 Ultra DMA mode 4 and below are supported.
P F 3 Ultra DMA mode 3 and below are supported.
P F 2 Ultra DMA mode 2 and below are supported.
P F 1 Ultra DMA mode 1 and below are supported.
P F 0 Ultra DMA mode 0 is supported.
89 O B F See 7.12.6.43
15 1 = Extended Time is reported in bits 14:0
0 = Time is reported in bits 7:0
If bit 15 is set to one
14:0 Extended Time required for Normal Erase mode SECURITY ERASE UNIT
command
If bit 15 is set to zero
14:8 Reserved
7:0 Time required for Normal Erase mode SECURITY ERASE UNIT command
Key: O/M – Mandatory/optional requirement.
F/V – Fixed/variable content M – Support of the word is mandatory.
F – The content of the field does not change O – Support of the word is optional.
except following a download microcode S/P – Content applies to Serial or Parallel transport
or power-on reset. S – Serial Transport
V – The contents of the field is variable and P – Parallel Transport
may change depending on the state of the B – Both Serial and Parallel Transports
device or the commands processed by N – Belongs to a transport other than Serial
the device. or Parallel
X – The fixed or variable type of this field is not
defined in this standard.
O S F
Word M P V Description
90 O B F See 7.12.6.44
15 1 = Extended Time is reported in bits 14:0
0 = Time is reported in bits 7:0
If bit 15 is set to one
14:0 Extended Time required for Enhanced Erase mode SECURITY ERASE
UNIT command
If bit 15 is set to zero
14:8 Reserved
7:0 Time required for Enhanced Erase mode SECURITY ERASE UNIT
command
91 15:8 Reserved
O B V 7:0 Current APM level value (see 7.12.6.45)
92 O B V Master Password Identifier (see 7.12.6.46)
Key: O/M – Mandatory/optional requirement.
F/V – Fixed/variable content M – Support of the word is mandatory.
F – The content of the field does not change O – Support of the word is optional.
except following a download microcode S/P – Content applies to Serial or Parallel transport
or power-on reset. S – Serial Transport
V – The contents of the field is variable and P – Parallel Transport
may change depending on the state of the B – Both Serial and Parallel Transports
device or the commands processed by N – Belongs to a transport other than Serial
the device. or Parallel
X – The fixed or variable type of this field is not
defined in this standard.
O S F
Word M P V Description
93 M Hardware reset results (see 7.12.6.47)
For SATA devices, word 93 shall be set to the value 0000h.
B F 15 Shall be cleared to zero
B F 14 Shall be set to one for PATA devices
P V 13 1 = device detected the CBLID- above ViHB (see ATA8-APT).
0 = device detected the CBLID- below ViL (see ATA8-APT).
P 12:8 Device 1 hardware reset result. Device 0 shall clear these bits to zero.
Device 1 shall set these bits as follows:
12 Reserved
V 11 Device 1 asserted PDIAG-.
V 10:9 These bits indicate how Device 1 determined the device number:
00 = Reserved
01 = a jumper was used.
10 = the CSEL signal was used.
11 = some other method was used or the method is unknown.
F 8 Shall be set to one
P 7:0 Device 0 hardware reset result. Device 1 shall clear these bits to zero.
Device 0 shall set these bits as follows:
7 Reserved
F 6 Device 0 responds when Device 1 is selected.
V 5 Device 0 detected the assertion of DASP-.
V 4 Device 0 detected the assertion of PDIAG-.
V 3 Device 0 passed diagnostics.
V 2:1 These bits indicate how Device 0 determined the device number:
00 = Reserved
01 = a jumper was used.
10 = the CSEL signal was used.
11 = some other method was used or the method is unknown.
F 0 Shall be set to one for PATA devices
94 X Obsolete
Key: O/M – Mandatory/optional requirement.
F/V – Fixed/variable content M – Support of the word is mandatory.
F – The content of the field does not change O – Support of the word is optional.
except following a download microcode S/P – Content applies to Serial or Parallel transport
or power-on reset. S – Serial Transport
V – The contents of the field is variable and P – Parallel Transport
may change depending on the state of the B – Both Serial and Parallel Transports
device or the commands processed by N – Belongs to a transport other than Serial
the device. or Parallel
X – The fixed or variable type of this field is not
defined in this standard.
O S F
Word M P V Description
95 O B F Stream Minimum Request Size (see 7.12.6.49)
96 O B V Streaming Transfer Time – DMA (see 7.12.6.50)
97 O B V Streaming Access Latency – DMA and PIO (see 7.12.6.51)
98..99 O B F Streaming Performance Granularity (DWord) (see 7.12.6.52)
100..103 O B V Number of User Addressable Logical Sectors (QWord) (see 7.12.6.53)
104 O B V Streaming Transfer Time – PIO (see 7.12.6.54)
105 O B V Maximum number of 512-byte blocks per DATA SET MANAGEMENT command
(see 7.5)
106 O Physical sector size / logical sector size (see 7.12.6.56)
B F 15 Shall be cleared to zero
B F 14 Shall be set to one
B F 13 Device has multiple logical sectors per physical sector.
B F 12 Device Logical Sector longer than 256 words
11:4 Reserved
B F 3:0 2X logical sectors per physical sector
107 O B F Inter-seek delay for ISO/IEC 7779 standard acoustic testing (see 7.12.6.57)
108..111 M B F World wide name (see 7.12.6.58)
112..115 Reserved
116 X Obsolete
117..118 O B F Logical sector size (DWord) (see 7.12.6.61)
Key: O/M – Mandatory/optional requirement.
F/V – Fixed/variable content M – Support of the word is mandatory.
F – The content of the field does not change O – Support of the word is optional.
except following a download microcode S/P – Content applies to Serial or Parallel transport
or power-on reset. S – Serial Transport
V – The contents of the field is variable and P – Parallel Transport
may change depending on the state of the B – Both Serial and Parallel Transports
device or the commands processed by N – Belongs to a transport other than Serial
the device. or Parallel
X – The fixed or variable type of this field is not
defined in this standard.
O S F
Word M P V Description
119 M Commands and feature sets supported (Continued from words 82..84) (see 7.12.6.40)
B F 15 Shall be cleared to zero
B F 14 Shall be set to one
13:10 Reserved
B F 9 DSN feature set is supported.
S F 8 Accessible Max Address Configuration feature set is supported.
S F 7 EPC feature set is supported.
B F 6 Sense Data Reporting feature set is supported.
B F 5 The Free-fall Control feature set is supported.
B F 4 Download Microcode mode 3 is supported.
B F 3 The READ LOG DMA EXT command and WRITE LOG DMA EXT
command are supported.
B F 2 The WRITE UNCORRECTABLE EXT command is supported.
B F 1 The Write-Read-Verify feature set is supported.
X 0 Obsolete
120 M Commands and feature sets supported or enabled (Continued from words 85..87)
(see 7.12.6.41)
B F 15 Shall be cleared to zero
B F 14 Shall be set to one
13:10 Reserved
B V 9 DSN feature set is enabled.
8 Reserved
B V 7 EPC feature set is enabled.
B V 6 Sense Data Reporting feature set is enabled.
B V 5 The Free-fall Control feature set is enabled.
B F 4 Download Microcode mode 3 is supported.
B F 3 The READ LOG DMA EXT command and WRITE LOG DMA EXT
command are supported.
B F 2 The WRITE UNCORRECTABLE EXT command is supported.
B V 1 The Write-Read-Verify feature set is enabled.
X 0 Obsolete
121..126 Reserved for expanded supported and enabled settings
Key: O/M – Mandatory/optional requirement.
F/V – Fixed/variable content M – Support of the word is mandatory.
F – The content of the field does not change O – Support of the word is optional.
except following a download microcode S/P – Content applies to Serial or Parallel transport
or power-on reset. S – Serial Transport
V – The contents of the field is variable and P – Parallel Transport
may change depending on the state of the B – Both Serial and Parallel Transports
device or the commands processed by N – Belongs to a transport other than Serial
the device. or Parallel
X – The fixed or variable type of this field is not
defined in this standard.
O S F
Word M P V Description
127 X Obsolete
128 O Security status (see 7.12.6.66)
15:9 Reserved
B V 8 Master Password Capability: 0 = High, 1 = Maximum
7:6 Reserved
B F 5 Enhanced security erase supported
B V 4 Security count expired
B V 3 Security frozen
B V 2 Security locked
B V 1 Security enabled
B F 0 Security supported
129..159 X Vendor specific
160..167 Reserved for CFA (see 7.12.6.68)
168 See 7.12.6.69
15:4 Reserved
O B F 3:0 Device Nominal Form Factor
169 DATA SET MANAGEMENT command support (see 7.12.6.70)
15:1 Reserved
O B F 0 The TRIM bit in the DATA SET MANAGEMENT command is supported.
170..173 O B F Additional Product Identifier (see 7.12.6.71)
174..175 Reserved
176..205 O B V Current media serial number (see 7.12.6.73)
Key: O/M – Mandatory/optional requirement.
F/V – Fixed/variable content M – Support of the word is mandatory.
F – The content of the field does not change O – Support of the word is optional.
except following a download microcode S/P – Content applies to Serial or Parallel transport
or power-on reset. S – Serial Transport
V – The contents of the field is variable and P – Parallel Transport
may change depending on the state of the B – Both Serial and Parallel Transports
device or the commands processed by N – Belongs to a transport other than Serial
the device. or Parallel
X – The fixed or variable type of this field is not
defined in this standard.
O S F
Word M P V Description
206 O B SCT Command Transport (see 7.12.6.74)
X 15:12 Vendor Specific
11:8 Reserved
7 Reserved for Serial ATA
6 Reserved
F 5 The SCT Data Tables command is supported.
F 4 The SCT Feature Control command is supported.
F 3 The SCT Error Recovery Control command is supported.
F 2 The SCT Write Same command is supported.
X 1 Obsolete
F 0 The SCT Command Transport is supported.
207..208 Reserved
209 O B F Alignment of logical sectors within a physical sector (see 7.12.6.75)
15 Shall be cleared to zero
14 Shall be set to one
13:0 Logical sector offset within the first physical sector where the first logical
sector is placed
210..211 O B V Write-Read-Verify Sector Mode 3 Count (DWord) (see 7.12.6.76)
212..213 O B F Write-Read-Verify Sector Mode 2 Count (DWord) (see 7.12.6.77)
214..216 X Obsolete
217 M B F Nominal media rotation rate (see 7.12.6.79)
218 Reserved
219 X Obsolete
220 O See 7.12.6.82
15:8 Reserved
B V 7:0 Write-Read-Verify feature set current mode
221 Reserved
Key: O/M – Mandatory/optional requirement.
F/V – Fixed/variable content M – Support of the word is mandatory.
F – The content of the field does not change O – Support of the word is optional.
except following a download microcode S/P – Content applies to Serial or Parallel transport
or power-on reset. S – Serial Transport
V – The contents of the field is variable and P – Parallel Transport
may change depending on the state of the B – Both Serial and Parallel Transports
device or the commands processed by N – Belongs to a transport other than Serial
the device. or Parallel
X – The fixed or variable type of this field is not
defined in this standard.
O S F
Word M P V Description
222 M B Transport major version number (see 7.12.6.84)
0000h or FFFFh = device does not report version
F 15:12 Transport Type
0h = Parallel
1h = Serial
Eh = PCIe
All others = Reserved
Value Description
37C8h Device requires SET FEATURES subcommand to spin-up after power-up and
IDENTIFY DEVICE data is incomplete (see 4.17).
738Ch Device requires SET FEATURES subcommand to spin-up after power-up and
IDENTIFY DEVICE data is complete (see 4.17).
8C73h Device does not require SET FEATURES subcommand to spin-up after
power-up and IDENTIFY DEVICE data is incomplete (see 4.17).
C837h Device does not require SET FEATURES subcommand to spin-up after
power-up and IDENTIFY DEVICE data is complete (see 4.17).
All other values Reserved
7.12.6.5 Word 3
Word 3 is obsolete.
7.12.6.6 Words 4..5
Words 4..5 are retired.
7.12.6.7 Word 6
Word 6 is obsolete.
7.12.6.8 Words 7..8: Reserved for CFA
Words 7..8 are reserved for use by CFA (e.g., for use in CFA-CF).
7.12.6.9 Word 9
Word 9 is retired.
7.12.6.10 Words 10..19: Serial number
Words 10..19 are a copy of the SERIAL NUMBER field (see 9.11.7.2).
7.12.6.11 Words 20..21
Words 20..21 are retired.
7.12.6.12 Word 22
Word 22 is obsolete.
7.12.6.13 Words 23..26: Firmware revision
Words 23..26 are a copy of the FIRMWARE REVISION field (see 9.11.7.3).
7.12.6.14 Words 27..46: Model number
Words 27..46 are a copy of the MODEL NUMBER field (see 9.11.7.4).
7.12.6.15 Word 47
Word 47 is obsolete.
7.12.6.16 Word 48: Trusted Computing feature set options
Bit 0 of word 48 is a copy of the TRUSTED COMPUTING SUPPORTED bit (see 9.11.8.6).
7.12.6.17 Words 49..50: Capabilities
Bits 15:14 of word 49 are reserved.
If bit 13 of word 49 is set to one, then table 55 shall define the Standby timer values used by the device. If bit 13
of word 49 is cleared to zero, then the Standby timer values used by the device shall be vendor specific.
Bit 12 of word 49 is reserved for use in the IDENTIFY PACKET DEVICE data (see ACS-3).
For PATA devices:
a) bit 11 of word 49 is a copy of the IORDY SUPPORTED bit (see 9.11.9.2.1); and
b) bit 10 of word 49 is a copy of the IORDY DISABLE SUPPORTED bit (see 9.11.9.2.2).
For SATA devices, bits 11:10 of word 49 shall be set to 11b.
Bit 9 of word 49 shall be set to one (i.e., LBA is supported).
For PATA devices, bit 8 of word 49 is a copy of the DMA SUPPORTED bit (see 9.11.9.2.3).
For SATA devices, bit 8 of word 49 shall be set to one.
Bits 7:2 of word 49 are reserved.
Bits 1:0 of word 49 are a copy of the ALIGNMENT ERROR REPORTING field (see 9.11.4.3.3).
Bit 15 of word 50 shall be cleared to zero.
Bit 14 of word 50 shall be set to one.
Bits 13:2 of word 50 are reserved.
Bit 1 of word 50 is obsolete.
If bit 0 of word 50 is set to one, the device has a minimum Standby timer value that is vendor specific. If this bit is
cleared to zero, there is no minimum Standby timer value.
7.12.6.18 Words 51..52
Words 51..52 are obsolete.
7.12.6.19 Word 53
Bit 0 of word 53 is obsolete.
For PATA devices, if bit 1 of word 53 is:
a) set to one, then the values reported in words 64..70 are valid; and
b) cleared to zero, then the values reported in words 64..70 are not valid.
All PATA devices except CFA-APT devices shall:
a) support PIO mode 3 or above;
b) set bit 1 of word 53 to one; and
Bit 13 of word 82 is a copy of the READ BUFFER SUPPORTED bit (see 9.11.5.2.10).
Bit 12 of word 82 is a copy of the WRITE BUFFER SUPPORTED bit (see 9.11.5.2.11).
Bits 11:10 of word 82 are obsolete.
Bit 9 shall be cleared to zero (i.e., the DEVICE RESET command (see ACS-3) is not supported).
Bits 8:7 of word 82 are obsolete
Bit 6 of word 82 is a copy of the READ LOOK-AHEAD SUPPORTED bit (see 9.11.5.2.12).
Bit 5 of word 82 is a copy of the VOLATILE WRITE CACHE SUPPORTED bit (see 9.11.5.2.13).
Bit 4 of word 82 shall be cleared to zero (i.e., the PACKET feature set (see ACS-3) is not supported).
Bit 3 of word 82 shall be set to one.
Bit 2 of word 82 is obsolete.
Bit 1 of word 82 is a copy of the SECURITY SUPPORTED bit (see 9.11.8.3.1).
Bit 0 of word 82 is a copy of the SMART bit (see 9.11.5.2.14).
Bit 13 of word 83 is a copy of the FLUSH CACHE EXT SUPPORTED bit (see 9.11.5.2.15).
Bit 12 of word 83 shall be set to one (i.e., the FLUSH CACHE command is supported).
Bit 11 of word 83 is obsolete.
Bit 10 of word 83 is a copy of the 48-BIT SUPPORTED bit (see 9.11.5.2.16).
Bits 9:8 of word 83 are obsolete.
Bit 7 of word 83 is obsolete.
Bit 6 of word 83 is a copy of the SPIN-UP SUPPORTED bit (see 9.11.5.2.17).
Bit 5 of word 83 is a copy of the PUIS SUPPORTED bit (see 9.11.5.2.18).
Bit 4 of word 83 is obsolete.
Bit 3 of word 83 is a copy of the APM SUPPORTED bit (see 9.11.5.2.19).
Bit 2 of word 83 is reserved for CFA (e.g., for use in CFA-CF).
Bit 1 of word 83 is obsolete.
Bit 0 of word 83 is a copy of the DOWNLOAD MICROCODE SUPPORTED bit (see 9.11.5.2.20).
Bit 13 of word 84 is a copy of the UNLOAD SUPPORTED bit (see 9.11.5.2.21).
Bits 12:11 of word 84 are obsolete.
Bits 10:9 of word 84 are obsolete.
Bit 8 of word 84 shall be set to one (i.e., the World Wide Name (see 7.12.6.58) is supported).
Bit 7 of word 84 is obsolete.
Bit 6 of word 84 is a copy of the WRITE FUA EXT SUPPORTED bit (see 9.11.5.2.22).
Bit 5 of word 84 is a copy of the GPL SUPPORTED bit (see 9.11.5.2.23).
Bit 4 of word 84 is a copy of the STREAMING SUPPORTED bit (see 9.11.5.2.24).
Bit 3 of word 84 is obsolete.
Bit 2 of word 84 is reserved.
Bit 1 of word 84 is a copy of the SMART SELF-TEST SUPPORTED bit (see 9.11.5.2.25).
Bit 0 of word 84 is a copy of the SMART ERROR LOGGING SUPPORTED bit (see 9.11.5.2.26).
Bits 13:10 of word 119 are reserved.
Bit 9 of word 119 is a copy of the DSN SUPPORTED bit (see 9.11.5.2.37).
Bit 8 of word 119 is a copy of the AMAX ADDR SUPPORTED bit (see 9.11.5.2.34).
Bit 7 of word 119 is a copy of the EPC SUPPORTED bit (see 9.11.5.2.27).
Bit 6 of word 119 is a copy of the SENSE DATA SUPPORTED bit (see 9.11.5.2.28).
Bit 5 of word 119 is a copy of the FREE-FALL SUPPORTED bit (see 9.11.5.2.29).
Bit 4 of word 119 is a copy of the DM MODE 3 SUPPORTED bit (see 9.11.5.2.30).
Bit 3 of word 119 is a copy of the GPL DMA SUPPORTED bit (see 9.11.5.2.31).
Bit 2 of word 119 is a copy of the WRITE UNCORRECTABLE SUPPORTED bit (see 9.11.5.2.32).
Bit 1 of word 119 is a copy of the WRV SUPPORTED bit (see 9.11.5.2.33).
Bit 0 of word 119 is obsolete.
7.12.6.41 Words 85..87, 120: Commands and feature sets supported or enabled
Words 85..87 and 120 indicate features, feature sets, or commands enabled. If a defined bit is cleared to zero,
the indicated feature, feature set, or command is not enabled. If a supported feature or feature set is supported
and there is no defined method to disable the feature or feature set, then it is defined as supported and the bit
shall be set to one.
If bit 14 of word 87 is set to one and bit 15 of word 87 is cleared to zero, then the contents of words 85..87 contain
valid information. Otherwise, the information is not valid in words 85..87.
If bit 15 of word 86 is set to one, bit 14 of word 120 is set to one, and bit 15 of word 120 is cleared to zero, then
the contents of word 120 contain valid information. Otherwise, the information is not valid in word 120.
Bit 14 of word 85 is a copy of bit 14 of word 82.
Bit 13 of word 85 is a copy of bit 13 of word 82.
Bit 12 of word 85 is a copy of bit 12 of word 82.
Bit 10 of word 85 is a copy of bit 10 of word 82.
Bit 9 of word 85 shall be cleared to zero (i.e., the DEVICE RESET command (see ACS-3) is not supported).
Bits 8:7 of word 85 are obsolete.
Bit 6 of word 85 is a copy of the READ LOOK-AHEAD ENABLED bit (see 9.11.6.2.10).
Bit 5 of word 85 is a copy of the VOLATILE WRITE CACHE ENABLED bit (see 9.11.6.2.6).
Bit 4 of word 85 is a copy of bit 4 of word 82.
Bit 3 of word 85 is a copy of bit 3 of word 82.
Bit 1 of word 85 is a copy of bit 1 in word 128.
Bit 0 of word 85 is a copy of the SMART ENABLED bit (see 9.11.6.2.11).
If bit 15 of word 86 is set to one, bit 14 of word 119 is set to one, and bit 15 of word 119 is cleared to zero, then
word 119 is valid. If bit 15 of word 86 is set to one, bit 14 of word 120 is set to one, and bit 15 of word 120 is
cleared to zero, then word 120 is valid.
Bit 14 of word 86 is reserved.
Bit 13 of word 86 is a copy of bit 13 of word 83.
Bit 12 of word 86 is a copy of bit 12 of word 83.
Bit 11 of word 86 is obsolete.
Bit 10 of word 86 is a copy of bit 10 of word 83.
Bits 9:8 of word 86 are obsolete.
Bit 8 of word 88 shall have the content described for the UDMA MODE 0 ENABLED bit (see 9.11.9.2.5.8).
Bit 7 of word 88 is reserved.
For PATA devices, bit 6 of word 88 is a copy of the UDMA MODE 6 SUPPORTED bit (see 9.11.9.2.5.9).
For SATA devices, bit 6 of word 88 may be set to one.
For PATA devices:
a) bit 5 of word 88 is a copy of the UDMA MODE 5 SUPPORTED bit (see 9.11.9.2.5.10);
b) bit 4 of word 88 is a copy of the UDMA MODE 4 SUPPORTED bit (see 9.11.9.2.5.11);
c) bit 3 of word 88 is a copy of the UDMA MODE 3 SUPPORTED bit (see 9.11.9.2.5.12);
d) bit 2 of word 88 is a copy of the UDMA MODE 2 SUPPORTED bit (see 9.11.9.2.5.13);
e) bit 1 of word 88 is a copy of the UDMA MODE 1 SUPPORTED bit (see 9.11.9.2.5.14); and
f) bit 0 of word 88 is a copy of the UDMA MODE 0 SUPPORTED bit (see 9.11.9.2.5.15).
For SATA devices, bits 5:0 of word 88 shall be set to 3Fh.
7.12.6.43 Word 89
Word 89 is a copy of the NORMAL SECURITY ERASE TIME field (see 9.11.8.5).
7.12.6.44 Word 90
Word 90 is a copy of the ENHANCED SECURITY ERASE TIME field (see 9.11.8.4).
7.12.6.45 Word 91: Current advanced power management level value
Bits 15:8 of word 91 are reserved.
Bits 7:0 of word 91 are a copy of the APM LEVEL field (see 9.11.6.3.2).
7.12.6.46 Word 92: Master Password Identifier
Word 92 is a copy of the MASTER PASSWORD IDENTIFIER field (see 9.11.8.2).
7.12.6.47 Word 93: Hardware reset results
For PATA devices, if bit 14 of word 93 is set to one and bit 15 of word 93 is cleared to zero, then the content of
word 93 contains valid information.
Bit 13 of word 93 is a copy of the CBLID bit (see 9.11.9.2.6.1).
Bit 12 of word 93 is reserved.
Bit 11 of word 93 is a copy of the D1 PDIAG bit (see 9.11.9.2.6.2).
Bits 10:9 of word 93 are a copy of the D1 DEVICE NUMBER DETECT field (see 9.11.9.2.6.3).
Bit 8 of word 93 shall be set to one for a PATA device.
Bit 7 of word 93 is reserved.
Bit 6 of word 93 is a copy of the D0/D1 SELECTION bit (see 9.11.9.2.6.6),
Bit 5 of word 93 is a copy of the D0 DASP bit (see 9.11.9.2.6.5).
Bit 4 of word 93 is a copy of the D0 PDIAG bit (see 9.11.9.2.6.4).
Bit 3 of word 93 is a copy of the D0 DIAGNOSTICS bit (see 9.11.9.2.6.7).
Bits 2:1 of word 93 are a copy of the D0 DEVICE NUMBER DETECT field (see 9.11.9.2.6.8).
Bit 0 of word 93 shall be set to one for a PATA device.
For SATA devices, word 93 shall be set to the value 0000h.
7.12.6.48 Word 94
Word 94 is obsolete.
Field Description
FEATURE Reserved
COUNT Standby timer period (see table 55)
LBA Reserved
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE N/A except when the Unload feature is requested, see 7.14.4
COUNT N/A except when the Unload feature is requested, see 7.14.4
LBA N/A except when the Unload feature is requested, see 7.14.4
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE 44h
COUNT 00h
LBA 055_4E4Ch
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE
Bit Description
15:4 Subcommand specific
3:0 SUBCOMMAND field – See 7.15.3.2
COUNT
Bit Description
15:8 Subcommand specific
7:3 NCQ TAG field – See 7.15.3.3
2:0 Reserved
Bit Description
7 Reserved
6 Shall be set to one
5 Reserved
4 Shall be cleared to zero
3:0 Reserved
7.15.3.2 Subcommand
Editor’s Note 42: Need to discuss, new commands are only defined as encapsulated. SHould they
have references in the command column?
Processing Reference
order
requirements Encapsulation, if
Subcommand Description (see 4.15.5) any (see 4.15.6) Command
0h ABORT NCQ QUEUE immediate none 7.15.11
1h DEADLINE HANDLING none none 7.15.12
2h HYBRID DEMOTE BY SIZE none none 7.15.8
3h HYBRID CHANGE BY LBA RANGE none none 7.15.9
4h HYBRID CONTROL none none 7.15.10
5h SET FEATURES none 7.41.1.6 7.41
6h ZERO EXT none 7.65.6 7.65
7h ZAC Management Out none ZAC ZAC
8h..Fh Reserved
SECTOR COUNT field is less than actual a Number of logical sectors to change to the To Priority b
Y sector count a
actual number of logical sectors in the non-volatile cache
N
associated with the from priority
a
The value of the SECTOR COUNT field in the command parameters.
b
the value of the REQUESTED CACHING PRIORITY LEVEL field (see 4.12.2.3).
7.15.8.3 Inputs
7.15.8.3.1 Overview
See table 61 for the HYBRID DEMOTE BY SIZE command inputs.
Field Description
FEATURE
Bit Description
15:8 SECTOR COUNT field (7:0) - See 7.15.8.3.3
7:4 FROM PRIORITY field – See 7.15.8.3.2
3:0 SUBCOMMAND field – shall be set to 2h
COUNT
Bit Description
15:8 SECTOR COUNT field (15:8) - See 7.15.8.3.3
7:3 NCQ TAG field – See 7.15.3.3
2:0 Reserved
Bit Description
31:24 Reserved
23:16 HYBRID INFORMATION field (see 4.12.2)
15:0 Reserved
DEVICE
Bit Description
7 Reserved
6 Shall be set to one
5 Reserved
4 Shall be cleared to zero
3:0 Reserved
Editor’s Note 43: Pulled this from READ FPDM QUEUED. Write has similiar statements
The device sets the ERROR bit to one and aborts the command in response to an LBA out of range, a duplicate
tag number, an invalid tag number, or an Interface CRC error (see table 347).
Errors that occur during the processing of this command are reported by returning a transport dependent
indicator (see table 348) with additional information available in the NCQ Command Error log (see 9.14).
Editor’s Note 44: Don’t think any of this needs to be said. There is no ABORT TYPE field and the NCQ
feature set does not need to be said. This is missing a table # for error outputs
Editor’s Note 45: There were issues with the heading levels in this area of 4.12. Need to verify that
the correct links are present below.
If:
a) the REQUESTED CACHING PRIORITY LEVEL field (see 4.12.2.3) is set to the maximum priority;
b) the MAX PRIORITY BEHAVIOR bit (see 9.19.2.11.3) is set to one; and
c) the non-volatile cache does not have mapping resources,
then:
a) the device shall return command aborted; and
b) in the Queued Error log, the device shall:
A) set the SENSE KEY to ABORTED COMMAND; and
B) set the additional sense code to INSUFFICIENT RESOURCES (see 6.2.9.25).
If any of the selected logical sectors are already in the non-volatile cache associated with other HYBRID
INFORMATION field (see 4.12.2) values, then the new values shall replace the previous values.
The device shall complete the requested changes and move the data, if needed, before returning command
completed.
NOTE 8 – The device may take 30 seconds or more to complete the command if a large LBA range is specified.
To minimize system response issues, large LBA ranges should be broken up into multiple smaller operations.
If the value of the REQUESTED CACHING PRIORITY LEVEL field (see 4.12.2.3) is cleared to zero, then the device may
evict the selected logical sectors from the non-volatile cache.
7.15.9.3 Inputs
7.15.9.3.1 Overview
See table 63 for the HYBRID CHANGE BY LBA RANGE command inputs.
Field Description
FEATURE
Bit Description
15:8 SECTOR COUNT field (7:0) - See 7.15.9.3.3
7:5 Reserved
4 AVOID HYBRID SPINUP bit – See 7.15.9.3.2
3:0 SUBCOMMAND field – shall be set to 3h
COUNT
Bit Description
15:8 SECTOR COUNT field (15:8) - See 7.15.9.3.3
7:3 NCQ TAG field – See 7.15.3.3
2:0 Reserved
Bit Description
31:24 Reserved
23:16 HYBRID INFORMATION field (see 4.12.2)
15:0 Reserved
DEVICE
Bit Description
7 Reserved
6 Shall be set to one
5 Reserved
4 Shall be cleared to zero
3:0 Reserved
Editor’s Note 46: Removed: 7.14.newA.3.3 STARTING LBA field. The STARTING LBA field specifies
the first LBA. The LBA field description is in the table.
Editor’s Note 47: Pulled this from READ FPDM QUEUED. Write has similiar statements
The device sets the ERROR bit to one and aborts the command in response to an LBA out of range, a duplicate
tag number, an invalid tag number, or an Interface CRC error (see table 347).
Errors that occur during the processing of this command are reported by returning a transport dependent
indicator (see table 348) with additional information available in the NCQ Command Error log (see 9.14).
Editor’s Note 48: Don’t think any of this needs to be said. There is no ABORT TYPE field and the NCQ
feature set does not need to be said. This is missing a table # for error outputs
7.15.10.3 Inputs
7.15.10.3.1 Overview
See table 64 for the HYBRID CONTROL command inputs.
Field Description
FEATURE
Bit Description
15:8 Reserved
7 DISABLE CACHING MEDIA field (see 7.15.10.3.2)
6:4 Reserved
3:0 SUBCOMMAND field – shall be set to 4h
COUNT
Bit Description
15:8 Reserved
7:3 NCQ TAG field – See 7.15.3.3
2:0 Reserved
LBA
Bit Description
47:16 Reserved
15:8 DIRTY HIGH THRESHOLD field (see 7.15.10.3.3)
7:0 DIRTY LOW THRESHOLD field (see 7.15.10.3.4)
AUXILIARY Reserved
DEVICE
Bit Description
7 Reserved
6 Shall be set to one
5 Reserved
4 Shall be cleared to zero
3:0 Reserved
3) sync all dirty data in the non-volatile cache to the primary medium;
4) evict all data from the non-volatile cache;
5) disable the Hybrid Information feature (see 4.12);
6) change the value of the ENABLED field (see 9.19.2.3) to 00h (i.e., Hybrid Information Disabled); and
7) disable the use of the non-volatile cache for storing user data until the device processes a SET
FEATURES Enable Hybrid Information subcommand (see 7.41.15.10.1).
If the device processes a reset or a power cycle while the value of the ENABLED field (see 9.19.2.3) is 80h (i.e.,
Hybrid Information Disable In Process), then the device shall change the value of the ENABLED field to FFh (i.e.,
Hybrid Information Enabled).
If the DISABLE CACHING MEDIA bit is set to one, then the device may report command completion before making
the requested changes. The host should check the Hybrid Information log (see 9.19) to determine if the
requested changes have been completed.
7.15.10.3.3 DIRTY LOW THRESHOLD field
The DIRTY LOW THRESHOLD field represents the threshold for the amount of dirty user logical sectors in the
non-volatile cache that sync operations should stop. The value of the DIRTY LOW THRESHOLD field divided by 255
specifies a fraction of the total reported NVM Size of the non-volatile cache that contains dirty logical sectors.
The device shall preserve this setting over all power cycles and all resets. See 4.12.3 for additional information
on syncing. The current value is reported in the Hybrid Information log (see 9.19).
7.15.10.3.4 DIRTY HIGH THRESHOLD field
The DIRTY HIGH THRESHOLD represents the threshold for the amount of dirty user logical sectors in the non-volatile
cache that sync operations should begin. The value of the DIRTY HIGH THRESHOLD field divided by 255 specifies a
fraction of the total reported NVM Size of the nonvolatile non-volatile cache that contains dirty data. The device
shall preserve this setting over all power cycles and all resets. The current value is reported in the Hybrid
Information log (see 9.19). See 4.12.3 for additional information on syncing.
7.15.10.4 Command Acceptance Outputs
See table 319.
7.15.10.5 Normal Outputs
See table 320.
7.15.10.6 Error Outputs
Editor’s Note 49: Pulled this from READ FPDM QUEUED. Write has similiar statements
The device sets the ERROR bit to one and aborts the command in response to an LBA out of range, a duplicate
tag number, an invalid tag number, or an Interface CRC error (see table 347).
Errors that occur during the processing of this command are reported by returning a transport dependent
indicator (see table 348) with additional information available in the NCQ Command Error log (see 9.14).
Editor’s Note 50: Don’t think any of this needs to be said. There is no ABORT TYPE field and the NCQ
feature set does not need to be said. This is missing a table # for error outputs
7.15.11.3 Inputs
7.15.11.3.1 Overview
See table 65 for the ABORT NCQ QUEUE command inputs.
Field Description
FEATURE
Bit Description
15:8 Reserved
7:4 ABORT TYPE field – See 7.15.11.3.2
3:0 SUBCOMMAND field – shall be set to 0h
COUNT
Bit Description
15:14 PRIO field – See 4.15.2
13:8 Reserved
7:3 NCQ TAG field – See 7.15.3.3
2:0 Reserved
LBA
Bit Description
47:8 Reserved
7:3 TTAG field – See 7.15.11.3.3
2:0 Reserved
Bit Description
7 Reserved
6 Shall be set to one
5 Reserved
4 Shall be cleared to zero
3:0 Reserved
Field Description
FEATURE
Bit Description
15:6 Reserved
5 RDNC bit – See 7.15.12.3.3
4 WDNC bit – See 7.15.12.3.2
3:0 SUBCOMMAND field – shall be set to 1h
COUNT
Bit Description
15:8 Reserved
7:3 NCQ TAG field – See 7.15.3.3
2:0 Reserved
LBA Reserved
AUXILIARY Subcommand specific
DEVICE
Bit Description
7 Reserved
6 Shall be set to one
5 Reserved
4 Shall be cleared to zero
3:0 Reserved
Field Description
FEATURE Subcommand Code (see table 69)
COUNT Value to be returned in the error outputs (see table 341)
LBA Value to be returned in the error outputs (see table 341)
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Subcommand
Code Description Action
00h NOP Return command aborted.
01h..FFh Obsolete
Field Description
FEATURE N/A
COUNT N/A
LBA N/A
DEVICE
Bit Description
7:5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE N/A
COUNT N/A
LBA N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE N/A
COUNT The number of logical sectors to be transferred. A value of 00h indicates that 256 logical sectors
are to be transferred
LBA LBA of first logical sector to be transferred
DEVICE
Bit Description
7:5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
If an unrecoverable error occurs while the device is processing this command, the device shall return command
completion with the ERROR bit set to one and the LBA field set to the LBA of First Unrecoverable Error (see 6.8.2).
The validity of the data transferred is indeterminate. See table 334.
Field Description
FEATURE Reserved
COUNT The number of logical sectors to be transferred. A value of 0000h indicates that 65 536 logical
sectors are to be transferred
LBA LBA of first logical sector to be transferred
AUXILIARY
Bit Description
31:24 Reserved
23:16 HYBRID INFORMATION field (see 4.12.2.1)
15:0 Reserved
DEVICE
Bit Description
7 Obsolete
6 Shall be set to one
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE The number of logical sectors to be transferred. A value of 0000h indicates that 65 536 logical
sectors are to be transferred
COUNT
Bit Description
15:14 PRIO field – See 4.15.2
13:8 Reserved
7:3 NCQ TAG field – See 7.15.3.3
2:1 Reserved
0 RARC bit – See 7.21.3.4
Bit Description
31:24 Reserved
23:16 HYBRID INFORMATION field (see 4.12.2.1)
15:0 Reserved
DEVICE
Bit Description
7 FUA bit – See 7.21.3.2
6 Shall be set to one
5 Reserved
4 Shall be cleared to zero
3:0 Reserved
modified copy of the requested data as a result of having volatile cached writes, the modified data shall be written
to the non-volatile media before being retrieved from the non-volatile media as part of this operation. If the FUA
bit is cleared to zero, the data shall be retrieved either from the device's non-volatile media or cache.
7.21.3.3 I ICC field
The Isochronous Command Completion (ICC) field is valid if the PRIO field is set to 01b. It is assigned by the host
based on the intended deadline associated with the command issued. If a deadline has expired, the device shall
continue to complete the command as soon as possible. This behavior may be modified by the host if the device
supports the NCQ NON-DATA command (see 7.15) and supports the DEADLINE HANDLING subcommand
(see 7.15.12). This subcommand allows the host to set whether the device shall abort or continue processing
commands that have exceeded the time set by the ICC field.
There are several parameters encoded in the ICC field:
a) Fine or Coarse timing;
b) Interval;
c) Time Limit; and
d) Max Time.
The Interval indicates the time units of the Time Limit parameter.
If the ICC field bit 7 is cleared to zero, then:
a) the time interval is fine-grained;
b) Interval = 10 ms;
c) Time Limit = (ICC field (6:0) + 1) 10 ms; and
d) Max Fine Time = 128 10 ms = 1.28 s.
If the ICC field bit 7 is set to one, then:
a) the time interval is coarse-grained;
b) Interval = 0.5 s;
c) Time Limit = (ICC field (6:0) + 1) 0.5 s; and
d) Max Coarse Time = 128 0.5 s = 64 s.
7.21.3.4 RARC bit
The Rebuild Assist Recovery Control bit (RARC) bit specifies how the device shall process read recovery attempts
for this command.
If the Rebuild Assist feature set:
a) is not supported (see 9.11.10.2.27); or
b) is supported and disabled (see 9.11.10.3.11),
then the RARC bit shall be ignored.
If the Rebuild Assist feature set is supported and enabled, the processing of the RARC bit is defined in 4.18.
7.21.4 Command Acceptance Outputs
See table 319.
7.21.5 Normal Outputs
See table 320.
7.21.6 Error Outputs
If the SENSE DATA AVAILABLE bit is set to one (see 6.2.9), one of the following additional sense codes (see SPC-4)
should be returned:
a) INTERNAL TARGET FAILURE (see 6.2.9.2);
b) WARNING – DEVICE STATISTICS NOTIFICATION ACTIVE (see 6.2.9.9);
c) FAILURE PREDICTION THRESHOLD EXCEEDED (see 6.2.9.7);
d) NO ADDITIONAL SENSE INFORMATION (see 6.2.9.8);
e) INITIALIZING COMMAND REQUIRED (see 6.2.9.10);
Field Description
FEATURE If not defined by the log (see 9.1) specified by the LOG ADDRESS field, this field is reserved.
COUNT LOG PAGE COUNT field – See 7.22.3.2
LBA
Bit Description
47:40 Reserved
39:32 PAGE NUMBER field (15:8) – See 7.22.3.4
31:16 Reserved
15:8 PAGE NUMBER field (7:0) – See 7.22.3.4
7:0 LOG ADDRESS field – See 7.22.3.3
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE If not defined by the log (see 9.1) specified by the LOG ADDRESS field, this field is reserved.
COUNT Block Count – See 7.22.3.2
LBA
Bit Description
47:40 Reserved
39:32 PAGE NUMBER field (15:8) – See 7.22.3.4
31:16 Reserved
15:8 PAGE NUMBER field (7:0) – See 7.22.3.4
7:0 LOG ADDRESS field – See 7.22.3.3
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Editor’s Note 53: These error outputs probably need to be duplicated and update for the
encapsulation version.
Table 77 — RECEIVE FPDMA QUEUED command encapsulation for the subcommand specific inputs
from a READ LOG DMA EXT command
RECEIVE FPDMA QUEUED field (see table 84) READ LOG DMA EXT field (see table 76), if any
LBA LBA
AUXILIARY (15:0) FEATURE
AUXILIARY (31:16) Reserved
Field Description
FEATURE N/A
COUNT The number of logical sectors to be transferred. A value of 00h indicates that 256 logical sectors
are to be transferred
LBA LBA of first logical sector to be transferred
DEVICE
Bit Description
7:5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
7.24.4 Outputs
7.24.5 Normal Outputs
See table 311.
7.24.6 Error Outputs
If the SENSE DATA AVAILABLE bit is set to one (see 6.2.9), one of the following additional sense codes (see SPC-4)
should be returned:
a) INTERNAL TARGET FAILURE (see 6.2.9.2);
b) WARNING – DEVICE STATISTICS NOTIFICATION ACTIVE (see 6.2.9.9);
c) FAILURE PREDICTION THRESHOLD EXCEEDED (see 6.2.9.7);
d) NO ADDITIONAL SENSE INFORMATION (see 6.2.9.8);
e) INITIALIZING COMMAND REQUIRED (see 6.2.9.10);
f) DEFECT LIST ERROR (see 6.2.9.14);
g) ACCESS DENIED - NO ACCESS RIGHT (see 6.2.9.15);
h) LOGICAL UNIT FAILED SELF CONFIGURATION (see 6.2.9.11);
i) COMMAND SEQUENCE ERROR (see 6.2.9.6);
j) INVALID COMMAND OPERATION CODE (see 6.2.9.5);
k) INFORMATION UNIT iuCRC ERROR DETECTED (see 6.2.9.4);
l) WRITE ERROR (see 6.2.9.16);
m) INITIATOR RESPONSE TIMEOUT (see 6.2.9.17);
n) UNRECOVERED READ ERROR (see 6.2.9.19);
o) MISCORRECTED ERROR (see 6.2.9.23);
p) ADDRESS MARK NOT FOUND FOR DATA FIELD (see 6.2.9.20);
q) READ ERROR - LBA MARKED BAD BY APPLICATION CLIENT (see 6.2.9.21); or
r) LOGICAL BLOCK ADDRESS OUT OF RANGE (see 6.2.9.22).
The validity of the data transferred is indeterminate. A device may return command completion with the ERROR
bit set to one if an Interface CRC error has occurred. See table 334.
NOTE 11 – There is no defined mechanism for a device to return an Interface CRC error status that may have
occurred during the last data block of a PIO Data-In transfer. There may be other mechanisms in which a host
may verify that an Interface CRC error occurred in these cases.
Field Description
FEATURE Reserved
COUNT The number of logical sectors to be transferred. A value of 0000h indicates that 65 536 logical
sectors are to be transferred
LBA LBA of first logical sector to be transferred
DEVICE
Bit Description
7 Obsolete
6 Shall be set to one
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE
Bit Description
15:8 COMMAND CCTL field – See 7.26.3.2
7 Obsolete
6 READ CONTINUOUS bit – See 7.26.3.3
5 NOT SEQUENTIAL bit – See 7.26.3.4
4 Obsolete
3 Reserved
2:0 STREAM ID field – See 7.26.3.5
COUNT The number of logical sectors to be transferred. A value of 0000h indicates that 65 536 logical
sectors are to be transferred
LBA LBA of first logical sector to be transferred
DEVICE
Bit Description
7 Obsolete
6 Shall be set to one
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
If the COMMAND CCTL field is cleared to zero, and the DEFAULT CCTL field was not cleared to zero in the most
recent CONFIGURE STREAM command (see 7.4) for the stream specified by the STREAM ID field, then the
device shall return command completion within the time specified by the DEFAULT CCTL field (see 7.4.3.4).
The result is vendor specific if:
a) the COMMAND CCTL field is cleared to zero, and the DEFAULT CCTL field was cleared to zero in the most
recent CONFIGURE STREAM command (see 7.4) for the stream specified by the STREAM ID field; or
b) the COMMAND CCTL field is cleared to zero and no previous CONFIGURE STREAM command was used
to specify a default CCTL for the stream specified by the STREAM ID field.
7.26.3.3 READ CONTINUOUS bit
If the READ CONTINUOUS bit is set to one, then:
a) the device shall not stop processing the command due to errors associated with reading the media;
b) if an error occurs during data transfer, while reading data from the media before command completion,
before the amount of time allowed for command completion based on the setting of the COMMAND CCTL
field (see 7.26.3.2), or the DEFAULT CCTL field (see 7.4.3) is reached, then the device:
1) shall continue to transfer the amount of data requested;
2) may continue reading data from the media;
3) shall return command completion after all data for the command has been transferred; and
4) shall save the error information in the Read Streaming Error log;
and
c) if the amount of time allowed for command completion based on the setting of the COMMAND CCTL field
(see 7.26.3.2) or the DEFAULT CCTL field (see 7.4.3) is reached, then the device:
1) shall stop processing the command;
2) shall return command completion; and
3) shall set the COMMAND COMPLETION TIME OUT bit in the Read Streaming Error log to one.
If the READ CONTINUOUS bit is cleared to zero and an error occurs, then the device:
a) may continue transferring data; and
b) shall return command completion after the data transfer has been completed.
7.26.3.4 NOT SEQUENTIAL bit
If the NOT SEQUENTIAL bit is set to one, the next read stream command that specifies the same stream in the
STREAM ID field may not be sequential in the LBA space. If the NOT SEQUENTIAL bit is cleared to zero, the device
may perform operations (e.g., read ahead operations) that anticipate the next read stream command with the
same stream in the STREAM ID field to be sequential in the LBA space. Any read of the device media or internal
device buffer management as a result of the state of the NOT SEQUENTIAL bit is vendor specific.
7.26.3.5 STREAM ID field
The STREAM ID field specifies the stream to be read. The device shall operate according to the parameters
specified by the most recent CONFIGURE STREAM command specifying this stream in the STREAM ID field
that returned command completion without an error.
7.26.4 Normal Outputs
See table 314 for the definition of Normal Outputs.
7.26.5 Error Outputs
If the SENSE DATA AVAILABLE bit is set to one (see 6.2.9), one of the following additional sense codes (see SPC-4)
should be returned:
a) INTERNAL TARGET FAILURE (see 6.2.9.2);
b) WARNING – DEVICE STATISTICS NOTIFICATION ACTIVE (see 6.2.9.9);
c) FAILURE PREDICTION THRESHOLD EXCEEDED (see 6.2.9.7);
d) NO ADDITIONAL SENSE INFORMATION (see 6.2.9.8);
e) INITIALIZING COMMAND REQUIRED (see 6.2.9.10);
f) DEFECT LIST ERROR (see 6.2.9.14);
g) ACCESS DENIED - NO ACCESS RIGHT (see 6.2.9.15);
Field Description
FEATURE
Bit Description
15:8 COMMAND CCTL field – See 7.26.3.2
7 Obsolete
6 READ CONTINUOUS bit – See 7.26.3.3
5 NOT SEQUENTIAL bit – See 7.26.3.4
4 Obsolete
3 Reserved
2:0 STREAM ID field – See 7.26.3.5
COUNT The number of logical sectors to be transferred. A value of 0000h indicates that 65 536 logical
sectors are to be transferred
LBA LBA of first logical sector to be transferred
DEVICE
Bit Description
7 Obsolete
6 Shall be set to one
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
7.28.3 Inputs
See table 82 for the READ VERIFY SECTOR(S) command inputs.
Field Description
FEATURE N/A
COUNT The number of logical sectors to be verified. A value of 00h indicates that 256 logical sectors are
to be verified
LBA LBA of first logical sector to be verified
DEVICE
Bit Description
7:5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE Reserved
COUNT The number of logical sectors to be verified. A value of 0000h indicates that 65 536 logical sectors
are to be verified
LBA LBA of first logical sector to be verified
DEVICE
Bit Description
7 Obsolete
6 Shall be set to one
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE The number of 512-byte blocks of data to be transferred. A value of 0000h indicates that 65 536
512-byte blocks of data are to be transferred
COUNT
Bit Description
15:14 PRIO field – See 4.15.2
13 Reserved
12:8 SUBCOMMAND field – See 7.30.3.2
7:3 NCQ TAG field – See 7.15.3.3
2:0 Reserved
Bit Description
7 Reserved
6 Shall be set to one
5 Reserved
4 Shall be cleared to zero
3:0 Reserved
7.30.3.2 Subcommand
Table 85 defines the RECEIVE FPDMA QUEUED subcommands.
Processing Reference
order
requirements Encapsulation, if
Subcommand Description (see 4.15.5) any (see 4.15.6) Command
00h Reserved
01h READ LOG DMA EXT sequential 7.23.6 7.23
02h ZAC Management In none ZAC ZAC
03h..1Fh Reserved
Field Description
FEATURE Reserved
COUNT Reserved
LBA Reserved
DEVICE
Bit Description
7:5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Value Command
0000h SANITIZE STATUS EXT (see 7.32.7)
0001h..0010h Reserved
0011h CRYPTO SCRAMBLE EXT (see 7.32.3)
0012h BLOCK ERASE EXT (see 7.32.2)
0013h Reserved
0014h OVERWRITE EXT (see 7.32.4)
0015h..001Fh Reserved
0020h SANITIZE FREEZE LOCK EXT (see 7.32.6)
0021h..003Fh Reserved
0040h SANITIZE ANTIFREEZE LOCK EXT (see 7.32.5)
0041h..FFFFh Reserved
7.32.2.3 Inputs
7.32.2.3.1 Overview
See table 88 for the BLOCK ERASE EXT command inputs.
Field Description
FEATURE 0012h
COUNT
Bit Description
15 ZONED NO RESET bit – See 7.32.2.3.2
14:5 Reserved
4 FAILURE MODE bit – See 7.32.2.3.3
3:0 Reserved
LBA
Bit Description
47:32 Reserved
31:0 shall be set to 426B_4572h (DWord)
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
The contents of the ZONED NO RESET bit shall not affect the processing performed by an ATA device that is not a
zoned device.
7.32.3.3 Inputs
See table 89 for the CRYPTO SCRAMBLE EXT command inputs.
Field Description
FEATURE 0011h
COUNT
Bit Description
15 ZONED NO RESET bit – See 7.32.2.3.2
14:5 Reserved
4 FAILURE MODE bit – See 7.32.2.3.3
3:0 Reserved
LBA
Bit Description
47:32 Reserved
31:0 shall be set to 4372_7970h (DWord)
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
7.32.4.3 Inputs
7.32.4.3.1 Overview
See table 90 for the OVERWRITE EXT command inputs.
Field Description
FEATURE 0014h
COUNT
Bit Description
15 ZONED NO RESET bit – See 7.32.2.3.2
14:8 Reserved
7 INVERT PATTERN BETWEEN OVERWRITE PASSES bit – See 7.32.4.3.2
6 DEFINITIVE ENDING PATTERN bit – See 7.32.4.3.3
5 Reserved
4 FAILURE MODE bit – See 7.32.2.3.3
3:0 OVERWRITE PASS COUNT field – See 7.32.4.3.4
LBA
Bit Description
47:32 shall be set to 4F57h (word)
31:0 OVERWRITE PATTERN field (DWord) – See 7.32.4.3.5
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
b) the DEFINITIVE ENDING PATTERN SUPPORTED bit is cleared to zero or the DEFINITIVE ENDING PATTERN bit is
cleared to zero, then the pattern used for the first write pass may consist of the user data set to:
A) the inversion of the OVERWRITE PATTERN field; or
B) the OVERWRITE PATTERN field.
7.32.4.3.4 OVERWRITE PASS COUNT field
The OVERWRITE PASS COUNT field specifies the number of overwrite passes (i.e., how many times the data in the
user area is to be overwritten) using the data from the OVERWRITE PATTERN field of this command. An overwrite
pass count of zero specifies 16 overwrite passes.
7.32.4.3.5 OVERWRITE PATTERN field
The OVERWRITE PATTERN field specifies a 32-bit pattern that shall be repeated as necessary to fill each physical
sector within the Sanitize operation scope (see 4.19.2).
7.32.4.4 Normal Outputs
See table 323.
7.32.4.5 Error Outputs
If the SENSE DATA AVAILABLE bit is set to one (see 6.2.9), one of the following additional sense codes (see SPC-4)
should be returned:
a) INTERNAL TARGET FAILURE (see 6.2.9.2);
b) WARNING – DEVICE STATISTICS NOTIFICATION ACTIVE (see 6.2.9.9);
c) FAILURE PREDICTION THRESHOLD EXCEEDED (see 6.2.9.7);
d) NO ADDITIONAL SENSE INFORMATION (see 6.2.9.8);
e) INITIALIZING COMMAND REQUIRED (see 6.2.9.10);
f) DEFECT LIST ERROR (see 6.2.9.14);
g) ACCESS DENIED - NO ACCESS RIGHT (see 6.2.9.15);
h) LOGICAL UNIT FAILED SELF CONFIGURATION (see 6.2.9.11);
i) LOGICAL UNIT FAILED SELF-TEST (see 6.2.9.24);
j) COMMAND SEQUENCE ERROR (see 6.2.9.6);
k) INVALID COMMAND OPERATION CODE (see 6.2.9.5);
l) INFORMATION UNIT iuCRC ERROR DETECTED (see 6.2.9.4);
m) WRITE ERROR (see 6.2.9.16);
n) INVALID FIELD IN PARAMETER LIST (see 6.2.9.13);
o) PARAMETER VALUE INVALID (see 6.2.9.12);
p) INITIATOR RESPONSE TIMEOUT (see 6.2.9.17);
q) UNRECOVERED READ ERROR (see 6.2.9.19);
r) MISCORRECTED ERROR (see 6.2.9.23);
s) ADDRESS MARK NOT FOUND FOR DATA FIELD (see 6.2.9.20);
t) OVERLAPPED COMMANDS ATTEMPTED (see 6.2.9.18);
u) READ ERROR - LBA MARKED BAD BY APPLICATION CLIENT (see 6.2.9.21); or
v) LOGICAL BLOCK ADDRESS OUT OF RANGE (see 6.2.9.22).
The device shall return command aborted if:
a) the device does not support the Sanitize feature set;
b) the device does not support the OVERWRITE EXT command;
c) the value of LBA field bits 47:32 are not set to 4F57h;
d) deferred microcode data exists (see 7.7);
e) the device is in:
A) the SD1: Sanitize Frozen state (see 4.19.10.3); or
B) the SD2: Sanitize Operation In Progress state (see 4.19.10.4);
f) the following conditions exist:
A) the device is in the SD3: Sanitize Operation Failed state (see 4.19.10.5) or the SD4: Sanitize
Operation Succeeded state (see 4.19.10.6);
B) the Failure Mode Policy value (see 4.19.8) is zero; and
C) the FAILURE MODE bit is set to one (see 7.32.2.3.3);
or
g) the device is in the SEC4: Security Enabled/Locked/Not Frozen state (see 4.21.11.8) and:
A) the RESTRICTED SANITIZE OVERRIDES SECURITY bit is cleared to zero (see 9.11.8.7.8); or
B) the RESTRICTED SANITIZE OVERRIDES SECURITY bit is set to one and the FAILURE MODE bit set to one
(see 7.32.2.3.3).
See table 350.
Field Description
FEATURE 0040h
COUNT Reserved
LBA
Bit Description
47:32 Reserved
31:0 shall be set to 416E_7469h (DWord)
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
7.32.6.3 Inputs
See table 92 for the SANITIZE FREEZE LOCK EXT command inputs.
Field Description
FEATURE 0020h
COUNT Reserved
LBA
Bit Description
47:32 Reserved
31:0 shall be set to 4672_4C6Bh (DWord)
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE 0000h
COUNT
Bit Description
15:1 Reserved
0 CLEAR SANITIZE OPERATION FAILED bit – See 7.32.7.3.2
LBA Reserved
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE N/A
COUNT N/A
LBA N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Word Description
0 Control word
Bit Field Name Description
15:1 Reserved
0 IDENTIFIER 0=compare User password
1=compare Master password
1..16 PASSWORD field (32 bytes)
17..255 Reserved
Field Description
FEATURE N/A
COUNT N/A
LBA N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
ERASE MODE bit Erase Mode Reallocated user data erased Data pattern b User data erased b
0 Normal No d binary 0's or binary 1's
c a
0..native max address
1 Enhanced Yes vendor specific
a User data sectors that were previously written and are no longer in use due to reallocation are written by
the SECURITY ERASE UNIT command.
b The SECURITY ERASE UNIT command shall write the specified data pattern to the specified LBA range.
c The ENHANCED SECURITY ERASE SUPPORTED bit (see 9.11.8.3.3) indicates whether the Enhanced Erase
mode is supported.
d User data sectors that were previously written and are no longer in use due to reallocation may be written
by the SECURITY ERASE UNIT command.
The NORMAL SECURITY ERASE TIME field (see 9.11.8.5) gives an estimate of the time required to complete the
erasure.
The ENHANCED SECURITY ERASE TIME field (see 9.11.8.4) gives an estimate of the time required to complete the
erasure.
On successful completion, this command shall disable Security (i.e., return the device to the SEC1: Security
Disabled/Not Locked/Not Frozen state (see 4.21.11.5)), and invalidate any existing User password. Any
previously valid Master password and the MASTER PASSWORD IDENTIFIER field (see 9.11.8.2) remain valid.
7.35.3 Inputs
See table 98 for the SECURITY ERASE UNIT command inputs.
Field Description
FEATURE N/A
COUNT N/A
LBA N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Word Description
0 Control word
Bit Field Name Description
15:3 Reserved
ZAC
2 See ZAC a
SECURITY OPTION
1 ERASE MODE 0=Normal Erase mode
1=Enhanced Erase mode
0 IDENTIFIER 0=Compare User password
1=Compare Master password
1..16 PASSWORD field (32 bytes)
17..255 Reserved
a
If the device is not a zoned device, this bit is reserved.
Field Description
FEATURE N/A
COUNT N/A
LBA N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
If the device supports the Master Password Identifier feature (see 4.21.10) and the NEW MASTER PASSWORD
IDENTIFIER field (see table 102) contains a value other than 0000h or FFFFh, then the device shall save the
contents of the NEW MASTER PASSWORD IDENTIFIER field in the MASTER PASSWORD IDENTIFIER field (see 9.11.8.2).
If the NEW MASTER PASSWORD IDENTIFIER field contains 0000h or FFFFh, the device shall preserve the existing
contents of the MASTER PASSWORD IDENTIFIER field and return successful command completion.
If the device does not support the Master Password Identifier feature, then the device shall:
a) ignore the NEW MASTER PASSWORD IDENTIFIER field;
b) not alter the MASTER PASSWORD IDENTIFIER field; and
c) not return command aborted based on the value supplied in the NEW MASTER PASSWORD IDENTIFIER field.
7.37.2.3 Setting the User Password
If the IDENTIFIER bit (see table 102) is cleared to zero (i.e., set User password), the device shall save the contents
of the NEW PASSWORD field (see table 102) as the stored User password in a non-volatile location. The MASTER
PASSWORD IDENTIFIER field (see 9.11.8.2) shall not be changed.
Bits in the Security page (see 9.11.8) of the IDENTIFY DEVICE data log shall be updated as follows:
a) the SECURITY ENABLED bit (see 9.11.8.3.7) shall be set to one (i.e., security is enabled); and
b) the MASTER PASSWORD CAPABILITY bit (see 9.11.8.3.2) shall be set to the value in the NEW MASTER
PASSWORD CAPABILITY bit (see table 102).
7.37.3 Inputs
See table 101 for the SECURITY SET PASSWORD command inputs.
Field Description
FEATURE N/A
COUNT N/A
LBA N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Word Description
0 Control word
Bit Bit Name Description
15:9 Reserved
8 NEW MASTER PASSWORD 0=High
CAPABILITY (see 7.37.2.3) 1=Maximum
7:1 Reserved
0 IDENTIFIER 0=set User password
(see 7.37.2.1) 1=set Master password
1..16 NEW PASSWORD field (32 bytes)
17 NEW MASTER PASSWORD IDENTIFIER field (see 7.37.2.2)
18..255 Reserved
7.38.3 Inputs
See table 103 for the SECURITY UNLOCK command inputs.
Field Description
FEATURE N/A
COUNT N/A
LBA N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Word Description
0 Control word
Bit Bit Name Description
15:1 Reserved
0 IDENTIFIER 0=compare User password
1=compare Master password
Field Description
FEATURE The number of 512-byte blocks of data to be transferred. A value of 0000h indicates that 65 536
512-byte blocks of data are to be transferred
COUNT
Bit Description
15:14 PRIO field – See 4.15.2
13 Reserved
12:8 SUBCOMMAND field – See 7.39.3.2
7:3 NCQ TAG field – See 7.15.3.3
2:0 Reserved
Bit Description
7 Reserved
6 Shall be set to one
5 Reserved
4 Shall be cleared to zero
3:0 Reserved
7.39.3.2 Subcommand
Editor’s Note 54: Need to discuss, new commands are only defined as encapsulated. SHould they
have references in the command column?
If the device processes any reset while processing a HYBRID EVICT command, then the resulting condition of
the non-volatile cache is indeterminate.
The device should return command completion with no error after all selected LBA ranges have been
successfully evicted.
NOTE 13 – This command may take longer to complete than a typical maximum time-out.
7.39.8.3 Inputs
7.39.8.3.1 Overview
See table 107 for the HYBRID EVICT command inputs.
Field Description
FEATURE The number of 512-byte blocks of data to be transferred. A value of 0000h indicates that 65 536
512-byte blocks of data are to be transferred
COUNT
Bit Description
15:14 PRIO field – See 4.15.2
13 Reserved
12:8 SUBCOMMAND field – shall be set to 2h
7:3 NCQ TAG field – See 7.15.3.3
2:0 Reserved
LBA Reserved
AUXILIARY
Bit Description
31:1 Reserved
0 EVICT ALL bit – See 7.39.8.3.2
15:0 Reserved
DEVICE
Bit Description
7 Reserved
6 Shall be set to one
5 Reserved
4 Shall be cleared to zero
3:0 Reserved
Table 108 — Output from the host for the HYBRID EVICT command
...
496..511 QWord Entry 0
Bit Description
63:48 RANGE LENGTH field (see 7.39.8.7.1)
47:0 STARTING LBA field (see 7.39.8.7.2)
Editor’s Note 56: Not sure if this subclause has the proper form. Maybe these should be a part of the
overview...
7.39.8.7.3 Examples
Examples of how to combine LBA values and range lengths to form a LBA Range Entry follow.
EXAMPLE 1 - Logical blocks 11 through 18 make one LBA Range Entry that has LBA 11 as its STARTING LBA field and the
value of 8 as its RANGE LENGTH field (i.e., 0008_0000_0000_000Bh).
EXAMPLE 2 - If only logical block 20 is represented in an LBA Range Entry, the range value is one (i.e.,
0001_0000_0000_0014h).
7.39.9 Command Acceptance Outputs
See table 319.
7.39.10 Normal Outputs
See table 320.
7.39.11 Error Outputs
If the SENSE DATA AVAILABLE bit is set to one (see 6.2.9), one of the following additional sense codes (see SPC-4)
should be returned:
a) INTERNAL TARGET FAILURE (see 6.2.9.2);
b) WARNING – DEVICE STATISTICS NOTIFICATION ACTIVE (see 6.2.9.9);
c) FAILURE PREDICTION THRESHOLD EXCEEDED (see 6.2.9.7);
d) NO ADDITIONAL SENSE INFORMATION (see 6.2.9.8);
e) INFORMATION UNIT iuCRC ERROR DETECTED (see 6.2.9.4);
f) INVALID COMMAND OPERATION CODE (see 6.2.9.5);
g) WRITE ERROR (see 6.2.9.16);
h) LOGICAL BLOCK ADDRESS OUT OF RANGE (see 6.2.9.22);
i) OVERLAPPED COMMANDS ATTEMPTED (see 6.2.9.18);
j) LOGICAL UNIT FAILED SELF CONFIGURATION (see 6.2.9.11);
k) INITIATOR RESPONSE TIMEOUT (see 6.2.9.17);
l) DEFECT LIST ERROR (see 6.2.9.14); or
m) INITIALIZING COMMAND REQUIRED (see 6.2.9.10).
The device sets the ERROR bit to one and aborts the command in response to an LBA out of range, a duplicate
tag number, an invalid tag number, or an Interface CRC error (see table 347).
Errors that occur during the processing of this command are reported by returning a transport dependent
indicator (see table 348) with additional information available in the NCQ Command Error log (see 9.14).
Field Description
FEATURE Reserved
COUNT Reserved
LBA
Bit Description
47:0 TIMESTAMP field
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE SET FEATURES SUBCOMMAND field – See 7.41.2
COUNT Subcommand specific
LBA Subcommand specific
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Editor’s Note 57: Not sure if this is an issue, but this defines error outputs globally for SET
FEATURES. EPC (see 7.41.19.2.4) defines it own. Is a statement needed here to allow this or make
it more clear
If the SENSE DATA AVAILABLE bit is set to one (see 6.2.9), one of the following additional sense codes (see SPC-4)
should be returned:
a) INTERNAL TARGET FAILURE (see 6.2.9.2);
b) WARNING – DEVICE STATISTICS NOTIFICATION ACTIVE (see 6.2.9.9);
c) FAILURE PREDICTION THRESHOLD EXCEEDED (see 6.2.9.7);
Table 111 — NCQ NON-DATA command encapsulation for the subcommand specific inputs from a
SET FEATURES command
NCQ NON-DATA field (see table 58) SET FEATURES field (see table 110), if any
FEATURE (7:4) Reserved
FEATURE (15:8) FEATURE (7:0)
COUNT (15:8) COUNT (7:0)
LBA (27:0) LBA (27:0)
LBA (31:28) Reserved
AUXILIARY Reserved
Code Description
00h Reserved
01h Reserved for CFA
02h Enable volatile write cache (see 7.41.3)
03h Set transfer mode (see 7.41.4)
04h Obsolete
05h Enable the APM feature set (see 7.41.5)
06h Enable the PUIS feature set (see 7.41.6)
07h PUIS feature set device spin-up (see 7.41.7)
08h Reserved
If the device supports the CFA feature set, then this subcommand is reserved for CFA;
09h
otherwise, this subcommand is obsolete.
0Ah Reserved for CFA
0Bh Enable Write-Read-Verify feature set (see 7.41.8)
0Ch Enable device life control (see 7.41.9)
0Dh..0Fh Reserved
10h Enable use of SATA feature (see 7.41.15)
11h..1Fh Reserved
20h..21h Obsolete
22h..30h Reserved
31h Obsolete
32h Reserved
33h Obsolete
34h..40h Reserved
41h Enable the Free-fall Control feature set (see 7.41.14)
42h Obsolete
43h Set Maximum Host Interface Sector Times (see 7.41.10)
44h Obsolete
45h Set rate basis (see 7.41.11)
46h..49h Reserved
4Ah Extended Power conditions (see 7.41.19)
4Bh..4Fh Reserved
50h Advanced Background Operation Control (see 7.41.21)
51h..53h Reserved
54h Obsolete
55h Disable read look-ahead feature (see 7.41.12)
56h..5Ch Vendor Specific
5Dh..5Eh Obsolete
Code Description
5Fh Obsolete
60h..61h Reserved
62h Long Physical Sector Alignment Error Reporting Control (see 7.41.18)
63h Enable/Disable the DSN feature set (see 7.41.20)
64h..65h Reserved
66h Disable reverting to power-on defaults (see 7.41.13)
67h..68h Reserved
69h Reserved for CFA
6Ah..76h Reserved
77h Obsolete
78h..80h Reserved
81h Reserved for CFA
82h Disable volatile write cache (see 7.41.3)
83h Reserved
84h Obsolete
85h Disable the APM feature set (see 7.41.5)
86h Disable the PUIS feature set (see 7.41.6)
87h Reserved
88h Obsolete
If the device supports the CFA feature set, then this subcommand is reserved for CFA;
89h
otherwise, this subcommand is obsolete.
8Ah Reserved for CFA
8Bh Disable Write-Read-Verify feature set (see 7.41.8)
8Ch Disable device life control (see 7.41.9)
8Dh..8Fh Reserved
90h Disable use of SATA feature (see 7.41.15)
91h..94h Reserved
95h Obsolete
96h..98h Reserved
99h Obsolete
9Ah Obsolete
Code Description
9Bh..A9h Reserved
AAh Enable read look-ahead feature (see 7.41.12)
ABh Obsolete
ACh..BAh Reserved
BBh Obsolete
BCh..C0h Reserved
C1h Disable the Free-fall Control feature set (see 7.41.14)
C2h Obsolete
C3h Enable/Disable the Sense Data Reporting feature set (see 7.41.16)
C4h Enable/Disable sense data return for successful NCQ commands (see 7.41.17)
C5h..CBh Reserved
CCh Enable reverting to power-on defaults (see 7.41.13)
CDh..D5h Reserved
D6h..DCh Vendor Specific
DDh.DEh Obsolete
DFh Obsolete
E0h Vendor Specific
E1h..EFh Reserved
F0h..F3h Reserved for CFA
F4h..FFh Reserved
If a device receives a SET FEATURES command with a Set Transfer Mode subcommand and the COUNT field
value set to 0000_0000b, then the device shall set the default PIO mode. If the COUNT field is set to 0000_0001b
and the device supports disabling of IORDY (see ATA8-APT), then the device shall set the default PIO mode and
disable IORDY. A device shall support all PIO modes below the highest mode supported (e.g., if PIO mode 1 is
supported PIO mode 0 shall be supported).
Support of IORDY is mandatory if PIO mode 3 or above is the current mode of operation.
A device shall support all Multiword DMA modes below the highest mode supported (e.g., if Multiword DMA
mode 1 is supported Multiword DMA mode 0 shall be supported).
A device shall support all Ultra DMA modes below the highest mode supported (e.g., if Ultra DMA mode 1 is
supported Ultra DMA mode 0 shall be supported).
If an Ultra DMA mode is enabled any previously enabled Multiword DMA mode shall be disabled by the device. If
a Multiword DMA mode is enabled any previously enabled Ultra DMA mode shall be disabled by the device.
For PATA systems using a cable assembly, the host should determine that an 80-conductor cable assembly is
connecting the host with the device(s) before enabling any Ultra DMA mode greater than 2 in the device(s) (see
ATA8-APT).
The current transfer mode is indicated in the TRANSFER MODE field (see 9.11.9.6.1).
Device performance may increase with increasing APM levels. Device power consumption may increase with
increasing power management levels. The APM levels may contain discrete bands (e.g., a device may support
one APM method from 80h to A0h and a higher performance, higher power consumption method from level A1h
to FEh). APM levels 80h and higher do not permit the device to spin down, if possible, to save power.
Subcommand code 85h disables APM. Subcommand 85h may not be implemented on all devices that
implement subcommand 05h.
Support for the APM feature set is indicated by the APM SUPPORTED bit (see 9.11.5.2.19). The enabled state of
the APM feature set is indicated by the APM ENABLED bit (see 9.11.6.2.13). The current APM level is indicated in
the APM LEVEL field (see 9.11.6.3.2).
7.41.6 Enable/disable the PUIS feature set
Subcommand code 06h enables the PUIS feature set (see 4.17). If this feature set is enabled, the device shall
power-up into the PM4: PUIS state (i.e., the device shall be ready to receive commands but shall not spin-up)
(see 4.17). After this feature set is enabled, it shall only be disabled by a subsequent subcommand code 86h
that disables this feature set. This feature set shall not be disabled by a power-on reset, a hardware reset, or a
software reset.
Subcommand code 86h disables the PUIS feature set. If this feature set is disabled, the device shall power-up
into Active mode. The factory default for this feature set shall be disabled.
Support for the PUIS feature set is indicated by the PUIS SUPPORTED bit (see 9.11.5.2.18).The enabled state of
the PUIS feature set is indicated in the PUIS ENABLED bit (see 9.11.6.2.12).
7.41.7 PUIS feature set device spin-up
Subcommand code 07h shall cause a device that has powered-up into Standby mode to go to the Active mode
(see 4.17 and figure 8).
LBA field
Description
bits 7:0
00h a Write-Read-Verify Mode 0
Always enabled (i.e., the device shall perform a Write-Read-Verify for all logical
sectors for all write commands).
01h a Write-Read-Verify Mode 1
The device shall perform a Write-Read-Verify on the first 65 536 logical sectors
written after:
a) spin-up; or
b) the device completes a SET FEATURES command setting the
Write-Read-Verify mode without error.
02h a Write-Read-Verify Mode 2
The number of logical sectors on which a device performs a Write-Read-Verify
is vendor specific.
03h Write-Read-Verify Mode 3
The device shall perform a Write-Read-Verify on the first n logical sectors
written by the host after:
a) spin-up; or
b) the device completes a SET FEATURES command setting the
Write-Read-Verify mode without error.
n=x 1 024
where:
x=number specified by the COUNT field.
04h-FFh Reserved
a
The COUNT field shall be ignored.
Upon completion of SET FEATURES subcommand 43h, the device may adjust the following fields to allow for
the specified host interface sector time:
a) DMA SECTOR TIME (see 9.11.6.4);
b) PIO SECTOR TIME (see 9.11.6.5); and
c) STREAM ACCESS LATENCY (see 9.11.6.7).
7.41.11 Set rate basis
Subcommand 45h sets the value of the Utilization Usage Rate device statistic RATE BASIS field (see 9.5.4.12.3) to
the value in the COUNT field.
Support for the Set rate basis subcommand is indicated by the SETTING RATE BASIS SUPPORTED bit
(see 9.5.4.12.3). Supported values for the COUNT field are indicated by the Utilization Usage Rate Support
QWord (see 9.11.5.11) in the Supported Capabilities page (see 9.11.5).
The value in the RATE BASIS field:
a) may be reset during the processing of a power-on reset; and
b) shall be preserved over all other resets (i.e., hardware reset and software reset).
COUNT
field Description Reference
00h Reserved for Serial ATA
01h Nonzero Buffer Offsets 7.41.15.2
02h DMA Setup FIS Auto-Activate optimization 7.41.15.3
03h Device-initiated interface power state transitions 7.41.15.4
04h Guaranteed In-Order Data Delivery 7.41.15.5
05h Obsolete
06h Software Settings Preservation 7.41.15.6
07h Device Automatic Partial to Slumber transitions 7.41.15.7
08h Enable Hardware Feature Control 7.41.15.8
09h Device Sleep 7.41.15.9
0Ah Enable/Disable Hybrid Information
0Bh Power Disable Feature 7.41.15.11
09h..FFh Reserved for Serial ATA
After a SET FEATURES Enable Hardware Feature Control command returns command completion without an
error:
a) the CURRENT HARDWARE FEATURE CONTROL IDENTIFIER field (see 9.11.10.4) shall be set to the value in the
LBA field (15:0);
b) the Hardware Feature Control feature shall be enabled (i.e., IDENTIFY DEVICE data word 79, bit 5 is set
to one); and
c) the behavior of Hardware Feature Control is specified by Table 118.
The device shall return command aborted if:
a) the Hardware Feature Control feature is not supported (i.e., IDENTIFY DEVICE data word 78 bit 5 is
cleared to zero);
b) the value in the LBA field (15:0) is not equal to the value in the SUPPORTED HARDWARE FEATURE CONTROL
IDENTIFIER field (see 9.11.10.5); or
c) the CURRENT HARDWARE FEATURE CONTROL IDENTIFIER field (see 9.11.10.4) is not cleared to zero.
If the COUNT field is set to one, the device shall process the command and set the ALIGNMENT ERROR bit
(see 6.2.2) to one in response to a write command in which:
a) the first byte of data does not begin at the first byte of a physical sector (see 7.12.6.75); or
b) the last byte of data does not end at the last byte of a physical sector (see 7.12.6.75).
If the COUNT field is set to two, the device shall return command aborted and set the ALIGNMENT ERROR bit
(see 6.2.2) to one, leaving the condition of the data unknown, in response to a write command in which:
a) the first byte of data does not begin at the first byte of a physical sector (see 7.12.6.75); or
b) the last byte of data does not end at the last byte of a physical sector (see 7.12.6.75).
If the COUNT field is set to 03h..FFh, the device shall report command aborted.
If Long Physical Sector Alignment Error Reporting Control is supported, then the device shall support the Long
Physical Sector Mis-alignment log (see 9.13).
This setting shall be preserved across all resets.
7.41.19 Extended Power Conditions subcommand
7.41.19.1 Overview
SET FEATURES subcommand code 4Ah configures the use of the EPC feature set (see 4.9). If the EPC feature
set is not supported, the device shall return command aborted.
Table 119 describes the EPC subcommands that are specified in LBA field bits (3:0) for the Extended Power
Conditions subcommand of the SET FEATURES command.
EPC
subcommands Description
0h Restore Power Condition Settings (see 7.41.19.2)
1h Go To Power Condition (see 7.41.19.3)
2h Set Power Condition Timer (see 7.41.19.4)
3h Set Power Condition State (see 7.41.19.5)
4h Enable the EPC feature set (see 7.41.19.6)
5h Disable the EPC feature set (see 7.41.19.7)
6h Set EPC Power Source (see 7.41.19.8)
7h..Fh Reserved
Table 120 describes the contents of the POWER CONDITION ID field that are specified in the COUNT field and select
the power condition or power conditions to be processed.
Support for the EPC feature set is indicated by the EPC SUPPORTED bit (see 9.11.5.2.27). The enabled state of
the EPC feature set is indicated by the EPC ENABLED bit (see 9.11.6.2.5).
Field Description
COUNT POWER CONDITION ID field (see table 120)
LBA
Bit Description
27:7 Reserved
6 DEFAULT bit
1 = Restore from Default settings
0 = Restore from Saved settings
5 Reserved
4 SAVE bit
1 = Save settings on completion
0 = Do not save settings on completion
3:0 0h (i.e., Restore Power Condition subcommand (see table 119))
Field Description
COUNT POWER CONDITION ID field (see table 120)
LBA
Bit Description
27:26 Reserved
25 DELAYED ENTRY bit – See 7.41.19.3.1
24 HOLD POWER CONDITION bit – See 7.41.19.3.1
23:4 Reserved
3:0 1h (i.e., Go To Power Condition subcommand (see table 119))
Field Description
COUNT POWER CONDITION ID field (see table 120)
LBA
Bit Description
27:24 Reserved
23:8 TIMER field – See 7.41.19.4.3
7 TIMER UNITS bit – See 7.41.19.4.3
1 = TIMER field units of measure are 1 min
0 = TIMER field units of measure are 100 ms
6 Reserved
5 ENABLE bit
1 = Enable the selected power condition
0 = Disable the selected power condition
4 SAVE bit
1 = Save settings on completion
0 = Do not save settings on completion
3:0 2h (i.e., Set Power Condition Timer subcommand (see table 119))
If the TIMER UNITS bit is cleared to zero, the new timer value shall be equal to the contents of the TIMER field. If the
TIMER UNITS bit is set to one, the new timer value shall be equal to the contents of the TIMER field multiplied by
600.
If the new timer value is greater than the value in the MAXIMUM TIMER SETTING field (see 9.8.4.14) for the selected
power condition, then the device may set the new timer value to the maximum timer setting for the selected
power condition. If the new timer value is less than the value in the MINIMUM TIMER SETTING field (see 9.8.4.13) for
the selected power condition, then the device may set the new timer value to the minimum timer setting for the
selected power condition.
7.41.19.4.4 Normal Outputs
See table 311.
7.41.19.4.5 Error Outputs
If the SENSE DATA AVAILABLE bit is set to one (see 6.2.9), one of the following additional sense codes (see SPC-4)
should be returned:
a) INTERNAL TARGET FAILURE (see 6.2.9.2);
b) WARNING – DEVICE STATISTICS NOTIFICATION ACTIVE (see 6.2.9.9);
c) FAILURE PREDICTION THRESHOLD EXCEEDED (see 6.2.9.7); or
d) NO ADDITIONAL SENSE INFORMATION (see 6.2.9.8).
The device shall return command aborted If:
a) the new timer value is:
A) less than the maximum setting for the selected power condition;
B) greater than the minimum setting for the selected power condition; and
C) not supported by the device;
b) the POWER CONDITION ID field is invalid;
c) the selected power condition is not changeable;
d) the selected power condition is not supported;
e) the SAVE bit is set to one and the selected power condition is not saveable;
f) the new timer value is greater than the maximum setting (see 9.8) for the selected power condition and
the device did not set the timer to the maximum setting; or
g) the new timer value is less than the minimum setting (see 9.8) for the selected power condition and the
device did not set the timer to the minimum setting.
If command aborted is returned, then the device shall make no modifications to the power condition settings.
See table 326.
7.41.19.5.2 Inputs
See table 124 for the SET FEATURES command inputs.
Field Description
COUNT POWER CONDITION ID field (see table 120)
LBA
Bit Description
27:6 Reserved
5 ENABLE bit
1 = Enable the selected power condition
0 = Disable the selected power condition
4 SAVE bit
1 = Save settings on completion
0 = Do not save settings on completion
3:0 3h (i.e., Set Power Condition State subcommand (see table 119))
return command aborted. If command aborted is returned, then the device shall make no modifications to the
power condition settings. See table 326.
Field Description
COUNT Reserved
LBA
Bit Description
27:4 Reserved
3:0 4h (i.e., Enable the EPC feature set (see table 119))
Field Description
COUNT Reserved
LBA
Bit Description
27:4 Reserved
3:0 5h (i.e., Disable the EPC feature set (see table 119))
Field Description
COUNT
Bit Description
7:2 Reserved
1:0 POWER SOURCE field – See 7.41.19.8.2.2
LBA
Bit Description
27:4 Reserved
3:0 6h (i.e., Set EPC Power Source)
Table 129 — SET FEATURES fields for Advanced Background Operation Control
Field Description
COUNT Reserved
Bits Description
27:25 ABO CONTROL field (see 7.41.21.2)
LBA 24 IR bit (see 7.41.21.4)
23:16 Reserved
15:0 ABO TIMELIMIT field (see 7.41.21.3)
Code Description
0h Do not change host initiated advanced background operations.
1h Start host initiated advanced background operations.
2h Stop host initiated advanced background operations.
3h..7h Reserved
and
b) if the value of the ABO MAX TIMELIMIT field (see 9.11.5.14.5):
A) is non-zero; and
B) is less than the value of the ABO TIMELIMIT field,
then the device shall use the value of the ABO MAX TIMELIMIT field as the effective value of the
ABO TIMELIMIT field;
and
4) return command completion with no error;
and
b) if the IR bit is set to one, then:
A) if the ABO IR MODE SUPPORTED bit (see 9.11.5.14.2) is cleared to zero, the device shall return
command aborted; and
B) if the ABO IR MODE SUPPORTED bit is set to one, the device shall:
1) return command completion with no error;
2) reset the abo_timer to zero, if the ABO TIMELIMIT field is non-zero;
3) initialize and start the abo_timer, if the ABO TIMELIMIT field is non-zero; and
4) perform host initiated advanced background operations until;
A) the abo_timer is greater than or equal to a non-zero ABO TIMELIMIT field;
B) the device determines that all necessary advanced background operations are completed;
or
C) the device processes a SET FEATURES subcommand Advanced Background Operation
Control with the ABO CONTROL field set to 2h (i.e., stop host initiated background control
operations).
If the ABO CONTROL field is set to 2h and the device is:
a) not performing host initiated advanced background operations, then the device shall return command
completion with no error; or
b) performing host initiated advanced background operations, then the device shall:
1) ignore the IR bit, and the ABO TIMELIMIT field;
2) stop performing host initiated advanced background operations; and
3) return command completion with no error.
7.42.3 Inputs
7.42.3.1 Overview
See table 131 for the SET SECTOR CONFIGURATION EXT command inputs.
Field Description
FEATURE COMMAND CHECK field – See 7.42.3.2
COUNT
Bit Description
15:3 Reserved
2:0 SECTOR CONFIGURATION DESCRIPTOR INDEX field – See 7.42.3.3
LBA Reserved
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE N/A
COUNT N/A
LBA N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
7.44 SMART
7.44.1 Overview
Individual SMART commands are identified by the value placed in the FEATURE field. Table 133 shows these
values.
Value Command
00h..CFh Reserved
D0h SMART READ DATA (see ACS-3)
D1h..D3h Obsolete
D4h SMART EXECUTE OFF-LINE IMMEDIATE (see ACS-3)
D5h SMART READ LOG (see 7.44.2)
D6h SMART WRITE LOG (see 7.44.4)
D7h..D9h Obsolete
DAh SMART RETURN STATUS (see 7.44.3)
DBh Obsolete
DCh..DFh Reserved
E0h..FFh vendor specific
Field Description
FEATURE D5h
COUNT Specifies the number of log pages to be read from the specified log. The log transferred by the
ATA device shall start at the first page in the specified log, regardless of the Count requested
LBA
Bit Description
27:24 N/A
23:8 C24Fh
7:0 LOG ADDRESS field, specifies the log to be read – See 7.22.3.3
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
The UNCORRECTABLE ERROR bit shall be set to one if SMART data is uncorrectable. The ID NOT FOUND bit shall be
set to one if the data is not available or the data structure checksum is invalid. The ABORT bit shall be set to one
if SMART is not enabled, if the COUNT field is cleared to zero, or if field values are invalid. The ABORT bit shall be
set to one if the count is larger than the log size reported in the SMART Log Directory (see 9.3). A device may
return command completion with the ERROR bit set to one if an Interface CRC error has occurred. See table 342.
Field Description
FEATURE DAh
COUNT N/A
LBA
Bit Description
27:24 N/A
23:8 C24Fh
7:0 N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE D6h
COUNT Specifies the number of log pages that shall be written. The data transferred to the device shall be
stored starting at the first block in the specified log. If the device receives a value of zero in this
field, then the device shall report command aborted
LBA
Bit Description
27:24 N/A
23:8 C24Fh
7:0 LOG ADDRESS field – See 7.44.4.3.2
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE N/A
COUNT Standby timer period (see table 55)
LBA N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE N/A
COUNT N/A
LBA N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE SECURITY PROTOCOL field – See 7.47.3.2
COUNT Reserved
LBA
Bit Description
27:25 Reserved
24 TRUSTED NON-DATA SEND/RECEIVE bit
0 = Non-Data TRUSTED SEND
1 = Non-Data TRUSTED RECEIVE
23:8 SP SPECIFIC field, Security Protocol specific (word) – See 7.47.3.3
7:0 Reserved
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
7.48.3 Inputs
7.48.3.1 Overview
See table 140 for the TRUSTED RECEIVE command inputs.
Field Description
FEATURE SECURITY PROTOCOL field – See 7.48.3.2
COUNT TRANSFER LENGTH field (7:0) – See 7.48.3.4
LBA
Bit Description
27:24 Reserved
23:8 SP SPECIFIC field, Security Protocol specific (word) – See 7.48.3.3
7:0 TRANSFER LENGTH field (15:8) – See 7.48.3.4
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Value Description
00h Return security protocol information (see 7.48.6)
01h..06h Reserved for TCG
07h Reserved for T10
08h..1Fh Reserved
20h..21h Reserved for T10
22h..3Fh Reserved
40h..41h Reserved for T10
42h..E9h Reserved
EAh Reserved for NVM Express
EBh Defined by SCSA (see 3.1.75)
ECh Reserved for JEDEC®
EDh Reserved for SDCard
EEh Reserved for IEEE 1667
EFh Reserved for T10
F0h..FFh Vendor Specific
The device shall return command aborted if an unrecoverable error occurred during the processing of the
command. The amount of data transferred is indeterminate. A device may return command completion with
the ERROR bit set to one if an Interface CRC error has occurred. See table 328.
7.48.6 Security Protocol 00h Description
7.48.6.1 Overview
The Security Protocol 00h returns security protocol related information about the device. A TRUSTED RECEIVE
command with the SECURITY PROTOCOL field set to 00h is not linked to an earlier TRUSTED SEND command.
The TRANSFER LENGTH field contains the number of 512-byte blocks of data to be transferred (e.g., one means
512 bytes, two means 1 024 bytes). A transfer length of zero is invalid. Pad bytes that are cleared to zero shall
be added at the end of a 512-byte block, if specified data is less than a multiple of 512 bytes.
If the length of the TRUSTED RECEIVE parameter data is greater than the value in the transfer length, the
device shall return the TRUSTED RECEIVE parameter data truncated to the requested transfer length without
indicating an error.
If the SECURITY PROTOCOL field is set to 00h, the SP SPECIFIC field is shown in table 142.
If the SP SPECIFIC field is set to a reserved value, then the command shall be aborted.
Each time a TRUSTED RECEIVE command with the SECURITY PROTOCOL field set to 00h is received, the device
shall transfer the data starting with byte 0.
Bit
7 6 5 4 3 2 1 0
Byte
0 Reserved
1 Reserved
2 Reserved
3 Reserved
4 Reserved
5 Reserved
6
LIST LENGTH (word) (M–7)
7
8
… Supported Security Protocol List
M
M+1
… Pad bytes, if any (see 7.48.6.1)
511
The LIST LENGTH field indicates the total length, in bytes, of the supported security protocol list.
The Supported Security Protocol List shall contain a list of all supported SECURITY PROTOCOL field values. Each
byte indicates a supported SECURITY PROTOCOL field value. The values shall be in ascending order starting with
00h.
The total data length shall be 512 bytes. Pad bytes are appended as needed to meet this requirement. Pad
bytes shall have a value of 00h.
Bit
7 6 5 4 3 2 1 0
Byte
0 Reserved
1 Reserved
2
CERTIFICATES LENGTH (word) (M–3)
3
4
… Certificates (zero or more)
M
M+1
… Pad bytes, if any (see 7.48.6.1)
(512t)–1
The CERTIFICATES LENGTH field indicates the total length, in bytes, of the certificates. This length includes one or
more certificates. If the device has no certificate to return, the certificate length is set to 0000h, the 4 byte
header, and 508 pad bytes are returned.
The contents of the Certificates are defined in 7.48.6.3.2 and 7.48.6.3.3.
The total data length shall conform to the TRANSFER LENGTH field (see 7.48.3.4) requirements described in
7.48.6.2.
7.48.6.3.2 Public Key certificate description
RFC 3280 defines the certificate syntax for certificates consistent with the X.509v3 Public Key Certificate
Specification.
7.48.6.3.3 Attribute certificate description
RFC 3281 defines the certificate syntax for certificates consistent with the X.509v2 Attribute Certificate
Specification.
Bit
7 6 5 4 3 2 1 0
Byte
0
… LENGTH OF COMPLIANCE DESCRIPTORS (DWord) (M–3)
3
4
… Compliance Descriptors (see 7.48.6.4.3)
M
M+1
… Pad bytes, if any (see 7.48.6.1)
(512t)-1
Compliance Compliance
Description Reference
Descriptor Type Descriptor
0000h Reserved
0001h Security requirements for cryptographic modules FIPS 140-2, 7.48.6.4.3.3
FIPS 140-3
0002h..FFFFh Reserved
Field Description
FEATURE SECURITY PROTOCOL field – See 7.48.3.2
COUNT TRANSFER LENGTH field (7:0) – See 7.48.3.4
LBA
Bit Description
27:24 Reserved
23:8 SP SPECIFIC field, Security Protocol specific (word) – See 7.48.3.3
7:0 TRANSFER LENGTH field (15:8) – See 7.48.3.4
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
See 7.48.3.
7.49.4 Normal Outputs
See 7.48.4.
7.49.5 Error Outputs
See 7.48.5.
Field Description
FEATURE SECURITY PROTOCOL field – See 7.50.3.2
COUNT TRANSFER LENGTH field (7:0) – See 7.50.3.4
LBA
Bit Description
27:24 Reserved
23:8 SP SPECIFIC field, Security Protocol specific (word) – See 7.50.3.3
7:0 TRANSFER LENGTH field (15:8) – See 7.50.3.4
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Value Description
00h Reserved
01h..06h Reserved for TCG
07h Reserved for T10
08h..1Fh Reserved
20h..21h Reserved for T10
22h..40h Reserved
41h Reserved for T10
42h..E9h Reserved
EAh Reserved for NVM Express
EBh Defined by SCSA (see 3.1.75)
ECh Reserved for JEDEC
EDh Reserved for SDCard
EEh Reserved for IEEE 1667
EFh Reserved for T10
F0h..FFh Vendor Specific
The device shall return command aborted if an unrecoverable error occurred during the processing of the
command. The amount of data transferred is indeterminate. A device may return command completion with the
ERROR bit set to one if an Interface CRC error has occurred. See table 328.
Field Description
FEATURE SECURITY PROTOCOL field – See 7.50.3.2
COUNT Transfer Length (7:0) – See 7.50.3.4
LBA
Bit Description
27:24 Reserved
23:8 SP SPECIFIC field, Security Protocol specific (word) – See 7.50.3.3
7:0 Transfer Length (15:8) – See 7.50.3.4
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE N/A
COUNT N/A
LBA N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE N/A
COUNT N/A
LBA N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE N/A
COUNT The number of logical sectors to be transferred. A value of 00h indicates that 256 logical sectors
are to be transferred
LBA LBA of first logical sector to be transferred
DEVICE
Bit Description
7:5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE Reserved
COUNT The number of logical sectors to be transferred. A value of 0000h indicates that 65 536 logical
sectors are to be transferred
LBA LBA of first logical sector to be transferred
AUXILIARY
Bit Description
31:24 Reserved
23:16 HYBRID INFORMATION field (see 4.12.2.1)
15:0 Reserved
DEVICE
Bit Description
7:5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE Reserved
COUNT The number of logical sectors to be transferred. A value of 0000h indicates that 65 536 logical
sectors are to be transferred
LBA LBA of first logical sector to be transferred
AUXILIARY
Bit Description
31:24 Reserved
23:16 HYBRID INFORMATION field (see 4.12.2.1)
15:0 Reserved
DEVICE
Bit Description
7 Obsolete
6 Shall be set to one
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE The number of logical sectors to be transferred. A value of 0000h indicates that 65 536 logical
sectors are to be transferred
COUNT
Bit Description
15:14 PRIO field – See 4.15.2
13:8 Reserved
7:3 NCQ TAG field – See 7.15.3.3
2:0 Reserved
Bit Description
31:24 Reserved
23:16 HYBRID INFORMATION field (see 4.12.2.1)
15:0 Reserved
DEVICE
Bit Description
7 FUA bit – See 7.57.3.2
6 Shall be set to one
5 Reserved
4 Shall be cleared to zero
3:0 Reserved
reported. If the FUA bit is cleared to zero the device may return command completion before the data is written to
the non-volatile media.
7.57.3.3 ICC field
The Isochronous Command Completion (ICC) field is valid if the PRIO field is set to 01b. It is assigned by the host
based on the intended deadline associated with the command issued. If a deadline has expired, the device shall
continue to complete the command as soon as possible. This behavior may be modified by the host if the device
supports the NCQ NON-DATA command (see 7.15) and supports the DEADLINE HANDLING subcommand
(see 7.15.12). This subcommand allows the host to set whether the device shall abort or continue processing
commands that have exceeded the time set by the ICC field.
There are several parameters encoded in the ICC field:
a) Fine or Coarse timing;
b) Interval;
c) Time Limit; and
d) Max Time.
The Interval indicates the time units of the Time Limit parameter.
If ICC field bit 7 is cleared to zero, then:
a) the time interval is fine-grained;
b) Interval = 10 ms;
c) Time Limit = (ICC field (6:0) + 1) 10 ms; and
d) Max Fine Time = 128 10 ms = 1.28 s.
If ICC field bit 7 is set to one, then:
a) the time interval is coarse-grained;
b) Interval = 0.5 s;
c) Time Limit = (ICC field (6:0) + 1) 0.5 s; and
d) Max Coarse Time = 128 0.5 s = 64 s.
7.57.4 Command Acceptance Outputs
See table 319.
7.57.5 Normal Outputs
See table 320.
7.57.6 Error Outputs
If the SENSE DATA AVAILABLE bit is set to one (see 6.2.9), one of the following additional sense codes (see SPC-4)
should be returned:
a) INTERNAL TARGET FAILURE (see 6.2.9.2);
b) WARNING – DEVICE STATISTICS NOTIFICATION ACTIVE (see 6.2.9.9);
c) FAILURE PREDICTION THRESHOLD EXCEEDED (see 6.2.9.7);
d) NO ADDITIONAL SENSE INFORMATION (see 6.2.9.8);
e) INFORMATION UNIT iuCRC ERROR DETECTED (see 6.2.9.4);
f) INVALID COMMAND OPERATION CODE (see 6.2.9.5);
g) WRITE ERROR (see 6.2.9.16);
h) LOGICAL BLOCK ADDRESS OUT OF RANGE (see 6.2.9.22);
i) OVERLAPPED COMMANDS ATTEMPTED (see 6.2.9.18);
j) LOGICAL UNIT FAILED SELF CONFIGURATION (see 6.2.9.11);
k) INITIATOR RESPONSE TIMEOUT (see 6.2.9.17);
l) DEFECT LIST ERROR (see 6.2.9.14); or
m) INITIALIZING COMMAND REQUIRED (see 6.2.9.10).
The device sets the ERROR bit to one and aborts the command in response to an LBA out of range, a duplicate
tag number, an invalid tag number, or an Interface CRC error (see table 347).
Errors that occur during the processing of this command are reported by returning a transport dependent
indicator (see table 348) with additional information available in the NCQ Command Error log (see 9.14).
Field Description
FEATURE Reserved
COUNT LOG PAGE COUNT field – See 7.58.3.2
LBA
Bit Description
47:40 Reserved
39:32 PAGE NUMBER field (15:8) – See 7.58.3.3
31:16 Reserved
15:8 PAGE NUMBER field (7:0) – See 7.58.3.3
7:0 LOG ADDRESS field, specifies the log to be written – See 7.44.4.3.2
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE Reserved
COUNT LOG PAGE COUNT field – See 7.58.3.2
LBA
Bit Description
47:40 Reserved
39:32 PAGE NUMBER field (15:8) – See 7.58.3.3
31:16 Reserved
15:8 PAGE NUMBER field (7:0) – See 7.58.3.3
7:0 LOG ADDRESS field, specifies the log to be written – See 7.44.4.3.2
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Table 161 — SEND FPDMA QUEUED command encapsulation for the subcommand specific inputs from
a WRITE LOG DMA EXT command
SEND FPDMA QUEUED field (see table 105) WRITE LOG DMA EXT field (see table 160), if any
LBA LBA
AUXILIARY Reserved
Field Description
FEATURE N/A
COUNT The number of logical sectors to be transferred. A value of 00h indicates that 256 logical sectors
are to be transferred
LBA LBA of first logical sector to be transferred
DEVICE
Bit Description
7:5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE Reserved
COUNT The number of logical sectors to be transferred. A value of 0000h indicates that 65 536 logical
sectors are to be transferred
LBA LBA of first logical sector to be transferred
DEVICE
Bit Description
7 Obsolete
6 Shall be set to one
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE
Bit Description
15:8 COMMAND CCTL field – See 7.26.3.2.
7 Obsolete
6 WRITE CONTINUOUS bit – See 7.62.3.2
5 FLUSH bit – See 7.62.3.3
4 Obsolete
3 Reserved
2:0 STREAM ID field – See 7.62.3.4
COUNT The number of logical sectors to be transferred. A value of 0000h indicates that 65 536 logical
sectors are to be transferred
LBA LBA of first logical sector to be transferred
DEVICE
Bit Description
7 Obsolete
6 Shall be set to one
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
3) shall return command completion after all data for the command has been transferred; and
4) shall save the error information in the Write Streaming Error log (see 9.24);
or
c) if the amount of time allowed for command completion based on the setting of the COMMAND CCTL field
or the DEFAULT CCTL field (see 7.4.3) is reached, then the device:
1) shall stop processing the command;
2) shall return command completion;
3) shall set the COMMAND COMPLETION TIME OUT bit in the Write Streaming Error log to one; and
4) may continue writing data to the media.
If the WRITE CONTINUOUS bit is cleared to zero and an error occurs, then the device:
a) shall stop processing the command and return command completion; and
b) may continue writing data to the media.
7.62.3.3 FLUSH bit
If the FLUSH bit is set to one, the DEFAULT CCTL field (see 7.4.3.4) is cleared to zero in the most recent
CONFIGURE STREAM command (see 7.4) for the Stream ID, and the COMMAND CCTL field (see 7.26.3.2)
is cleared to zero, then the device shall write all data for the specified stream to the media before command
completion is reported.
If the FLUSH bit is set to one and the DEFAULT CCTL field was not cleared to zero in the most recent CONFIGURE
STREAM command for the Stream ID, then the device shall return command completion within the time specified
by the DEFAULT CCTL field.
If the FLUSH bit is set to one and the COMMAND CCTL field is not cleared to zero, then the device shall return
command completion within ((the contents of the COMMAND CCTL field) (the contents of the STREAM
GRANULARITY field (see 9.11.6.8))) µs.
If the FLUSH bit is set to one and either the DEFAULT CCTL field was not cleared to zero in the most recent
CONFIGURE STREAM command (see 7.4) for the Stream ID, or the COMMAND CCTL field is not cleared to zero,
then the device:
a) shall measure the time before reporting command completion from command acceptance;
b) shall set the COMMAND COMPLETION TIME OUT bit (see 6.3.3) to one if all of the data for the command has
been received by the device, but the device has not yet written all of the data to its media; and
c) should continue writing data to its media after reporting command completion.
7.62.3.4 STREAM ID field
The STREAM ID field specifies the stream to be written. The device shall operate according to the parameters
specified by the most recent CONFIGURE STREAM command specifying this Stream ID that returned command
completion without an error. Any write to the device media or internal device buffer management as a result of
the Stream ID is vendor specific.
7.62.4 Normal Outputs
See table 314 for the definition of Normal Outputs.
7.62.5 Error Outputs
If the SENSE DATA AVAILABLE bit is set to one (see 6.2.9), one of the following additional sense codes (see SPC-4)
should be returned:
Editor’s Note 59: Not sure this represents all the stream conditions. There are a variety of stream
related errors.
Field Description
FEATURE
Bit Description
15:8 COMMAND CCTL field – See 7.26.3.2.
7 Obsolete
6 WRITE CONTINUOUS bit – See 7.62.3.2
5 FLUSH bit – See 7.62.3.3
4 Obsolete
3 Reserved
2:0 STREAM ID field – See 7.62.3.4
COUNT The number of logical sectors to be transferred. A value of 0000h indicates that 65 536 logical
sectors are to be transferred
LBA LBA of first logical sector to be transferred
DEVICE
Bit Description
7 Obsolete
6 Shall be set to one
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE
Bit Description
15:8 Reserved
7:0 Uncorrectable options
Value Description
00h-54h Reserved
55h Create a pseudo-uncorrectable error with logging
56h-59h Reserved
5Ah Vendor specific
5Bh-A4h Reserved
A5h Vendor Specific
A6h-A9h Reserved
AAh Create a flagged error without logging
ABh-FFh Reserved
COUNT The number of logical sectors to be marked. A value of 0000h indicates that 65 536 logical
sectors are to be marked
LBA LBA of first logical sector to be marked
DEVICE
Bit Description
7 Obsolete
6 Shall be set to one
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
7.65.3 Inputs
7.65.3.1 Inputs overview
See table 167 for the ZERO EXT command inputs.
Field Description
FEATURE
Bit Description
15:1 Reserved
0 TRIM bit – See 7.65.3.2
COUNT The number of logical sectors to be written with zeros. A value of 0000h is reserved.
LBA LBA of first logical sector to be written with zeros.
DEVICE
Bit Description
7 Obsolete
6 Shall be set to one
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Table 168 — NCQ-NON-DATA command encapsulation for the subcommand specific inputs from a
ZERO EXT command
NCQ NON-DATA field (see table 58) ZERO EXT field (see table 167), if any
FEATURE (7:4) Reserved
FEATURE (15:8) COUNT (7:0)
COUNT (15:8) COUNT (15:8)
LBA LBA
8.1 Introduction
8.1.1 Overview
The SCT Command Transport uses logs (see table 169) to provide transport methods for:
a) a host to send an SCT Command and data to a device; and
b) a device to send data and SCT Status to a host.
Table 170 — Summary of ATA commands used by the SCT Command Transport
Sending a 512-byte block of data (i.e., key page) to the SCT Command/Status log starts the SCT command
process. The key page contains the SCT command's ACTION CODE field, FUNCTION CODE field, and parameters,
if any, that are required to process the SCT command. If the combination of action code and function code
requires data transfer, then the data is transferred by reading or writing the SCT Data Transfer log. The SCT
Status (i.e., error or command) is read from the SCT Command/Status log.
SCT commands (see 8.2.3) are processed like other ATA commands, therefore they take precedence over any
background activity the device may be performing when the SCT command is processed (e.g., a function
initiated by a SMART EXECUTE OFFLINE IMMEDIATE command). Some SCT commands indicate ATA
command completion and return status while the SCT command is still processing. Information about the SCT
command that is still processing may be retrieved by reading the SCT Command/Status log (see 8.2.5).
A device supporting the SCT Command Transport should report a length of one in the General Purpose Log
Directory (see 9.2) and the SMART Log Directory (see 9.3) for the SCT Command/Status log and the SCT Data
Transfer log, respectively. The length of the SCT Data Transfer log does not indicate the length of an SCT
Command Transport data transfer. This differs from the requirement in this standard that the GPL Directory
(see 9.2) and the SMART Log Directory (see 9.3) report the actual length of the specified log pages.
8.1.2 SCT command interactions with ATA commands
If the value in the EXTENDED STATUS CODE field is FFFFh (i.e., the SCT command is processing in background
(see table 175)) and the device processes:
a) an ATA command that reads from the SCT Data Transfer log (see 8.1.1), then the device shall process
the command to read the SCT Data Transfer log as described in 8.2.4;
b) an ATA command that writes to the SCT Data Transfer log, then the device shall process the command
to write the SCT Data Transfer log as described in 8.2.4;
c) an ATA command that reads from the SCT Command/Status log, then the device shall process the
command to read the SCT Command/Status log; or
d) any other ATA command, then:
1) if the SCT command being processed in the background is SCT Write Same command, the device
shall terminate the SCT Write Same command with the EXTENDED STATUS CODE field set to 0008h
(i.e., Background SCT command was aborted because of an interrupting host command);
2) if the SCT command being processed in the background is not the SCT Write Same command, the
device shall terminate the SCT command with the EXTENDED STATUS CODE field set to 0000h (i.e.,
Command complete without error); and
3) the device shall begin processing the new ATA command.
8.1.3 NCQ accesses to the SCT logs
If:
a) the LOG ADDRESS field is set to E0h (i.e., the SCT Command/Status log) or the LOG ADDRESS field is set to
E1h (i.e., the SCT Data Transfer log) in one of the following commands:
A) a RECEIVE FPDMA QUEUED command with the SUBCOMMAND field (see 7.30.3.2) set to 01h (i.e.,
READ LOG DMA EXT (see 7.23)); or
B) a SEND FPDMA QUEUED command with the SUBCOMMAND field (see 7.39.3.2) set to 02h (i.e.,
WRITE LOG DMA EXT (see 7.59));
and
b) the SATA NCQ Send and Receive log page 0h (see 9.18) contains:
A) a SEQUENTIAL QUEUED READ LOG DMA EXT SUPPORTED bit (see 9.18.7) cleared to zero; or
B) a SEQUENTIAL QUEUED WRITE LOG DMA EXT SUPPORTED bit (see 9.18.9) cleared to zero,
then the device shall return command aborted.
8.1.4 Resets
A device shall terminate processing an SCT command during the processing of a software reset, hardware
reset, or power-on reset. Premature termination of SCT command processing may cause data loss or other
indeterminate results. There is no indication after the device becomes ready that the previous command was
terminated.
If the device processes a power-on reset or a hardware reset, then the device shall clear the following fields in
the SCT Status Response (see table 186) to zero:
a) EXTENDED STATUS CODE;
b) ACTION CODE; and
c) FUNCTION CODE.
The device shall clear the EXTENDED STATUS CODE field to zero during processing of a software reset. The other
content of the SCT Status Response fields shall not be affected by the device processing a software reset.
Table 171 — Fields to send an SCT Command using SMART WRITE LOG
Field Description
FEATURE D6h (i.e., SMART WRITE LOG (see 7.44.4))
COUNT 01h (i.e., one page is transferred)
LBA
Bit Description
27:24 N/A
23:8 C24Fh
7:0 E0h (i.e., SCT Command/Status log address)
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Table 172 defines the SCT command format contained in the input data of the WRITE LOG EXT command
(see 7.58) and WRITE LOG DMA EXT command (see 7.59).
Table 172 — Fields to send an SCT Command using GPL write logs
Field Description
FEATURE Reserved
COUNT 0001h
LBA
Bit Description
47:40 Reserved
39:32 00h a
31:16 Reserved
15:8 00h a
7:0 E0h (i.e., SCT Command/Status log address)
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Table 173 defines how a device shall set the fields for a write to the SCT Command/Status log that returns
command completion without an error.
Field Description
ERROR 00h
COUNT SCT command dependent
LBA SCT command dependent
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11.
5:2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 174 defines how a device shall set the fields after an error occurred during processing of an SCT
Command/Status in response to writing the SCT command log.
Field Description
ERROR
Bit Description
7:5 N/A
4 ID NOT FOUND bit – See 6.3.4
3 N/A
2 ABORT bit – See 6.3.2
1 N/A
0 Obsolete
Bit Description
27:24 Reserved
23:8 SCT command dependent.
7:0 EXTENDED STATUS CODE field (15:8) (see table 175)
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11.
5:2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Code Description
0000h Command complete without error
0001h Invalid function code
0002h Input LBA out of range
0003h Request 512-byte data block count overflow. The number of data blocks requested to transfer
(i.e., the COUNT field) by the log command is larger than defined for the SCT command.
0004h Invalid function code in SCT Error Recovery command
0005h Invalid selection code in SCT Error Recovery command
0006h Host read command timer is less than minimum value
0007h Host write command timer is less than minimum value
0008h Background SCT operation was terminated because of an interrupting host command
0009h Background SCT operation was terminated because of unrecoverable error
000Ah Obsolete
000Bh SCT data transfer command was issued without first issuing an SCT command
000Ch Invalid function code in SCT Feature Control command
000Dh Invalid feature code in SCT Feature Control command
000Eh Invalid state value in SCT Feature Control command
000Fh Invalid option flags value in SCT Feature Control command
0010h Invalid SCT action code
0011h Invalid table ID (table not supported)
0012h Operation was terminated due to device security being locked
0013h Invalid revision code in SCT data
0014h Foreground SCT operation was terminated because of unrecoverable error
0015h The most recent non-SCT command returned command completion with an error due to the
SCT Error Recovery Control Read Command Timer or SCT Error Recovery Control Write
Command Timer expiring
0016h..BEFFh Reserved
BF00h..BFFFh Reserved for Serial ATA
C000h..FFEFh Vendor specific
FFF0h..FFFEh Reserved
FFFFh SCT command processing in background
Table 176 — SCT data transfer using the SMART feature set
Field Description
FEATURE D6h (i.e., SMART WRITE LOG (see 7.44.4))
D5h (i.e., SMART READ LOG (see 7.44.2))
COUNT Number of 512-byte data blocks to transfer
LBA
Bit Description
27:24 N/A
23:8 C24Fh
7:0 E1h (i.e., SCT Data Transfer)
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Table 177 defines an SCT data transfer using GPL feature set commands.
Table 177 — SCT data transfer using the GPL feature set
Field Description
FEATURE Reserved
COUNT Number of 512-byte data blocks to transfer
LBA
Bit Description
47:40 Reserved
39:32 00h a
31:16 Reserved
15:8 00h a
7:0 E1h (i.e., SCT Data Transfer)
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
ERROR 00h
COUNT Reserved
LBA
Bit Description
27:24 Reserved
23:8 NUMBER OF PAGES REMAINING field – See 8.2.4.2.2
7:0 Reserved
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5:2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 179 defines the SCT data transfer response for GPL feature set commands (see table 170) that return
command completion without an error.
Field Description
ERROR 00h
COUNT Reserved
LBA
Bit Description
47:24 Reserved
23:8 NUMBER OF PAGES REMAINING field – See 8.2.4.2.2
7:0 Reserved
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5:2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Field Description
ERROR
Bit Description
7:5 N/A
4 ID NOT FOUND bit – See 6.3.4
3 N/A
2 ABORT bit – See 6.3.2
1 N/A
0 Obsolete
Bit Description
27:8 Reserved
7:0 EXTENDED STATUS CODE field (15:8) (see table 175)
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11.
5:2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 181 defines an SCT data transfer error response for GPL feature set commands (see table 170) that read
from or write to the SCT Data Transfer log.
Field Description
ERROR
Bit Description
7:5 N/A
4 ID NOT FOUND bit – See 6.3.4
3 N/A
2 ABORT bit – See 6.3.2
1 N/A
0 Obsolete
COUNT
Bit Description
15:8 Reserved
7:0 EXTENDED STATUS CODE field (7:0) (see table 175)
LBA
Bit Description
47:8 Reserved
7:0 EXTENDED STATUS CODE field (15:8) (see table 175)
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5:2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 182 — SCT status request using the SMART feature set
Field Description
FEATURE D5h (i.e., SMART READ LOG (see 7.44.2))
COUNT 01h (i.e., one page is transferred)
LBA
Bit Description
27:24 N/A
23:8 C24Fh
7:0 E0h (i.e., SCT Command/Status log address)
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Table 183 defines the GPL feature set commands (see table 170) that read the SCT Command/Status log for
status.
Table 183 — SCT status request using the GPL feature set
Field Description
FEATURE Reserved
COUNT 0001h (i.e., one page is transferred)
LBA
Bit Description
47:40 Reserved
39:32 00h a
31:16 Reserved
15:8 00h a
7:0 E0h (i.e., SCT Command/Status log address)
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Table 184 defines the SCT Status response for commands from the SMART feature set (see table 170) that
return command completion without an error.
Field Description
ERROR 00h
COUNT EXTENDED STATUS CODE field (7:0) (see table 175)
LBA
Bit Description
27:8 Reserved
7:0 EXTENDED STATUS CODE field (15:8) (see table 175)
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11.
5:2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 185 defines the SCT Status response for GPL feature set commands (see table 170) that return command
completion without an error.
Field Description
ERROR 00h
COUNT
Bit Description
15:8 Reserved
7:0 EXTENDED STATUS CODE field (7:0) (see table 175)
LBA
Bit Description
47:8 Reserved
7:0 EXTENDED STATUS CODE field (15:8) (see table 175)
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5:2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 186 defines the format of the status response information that shall be set by the device in response to a
read of the SCT Command/Status log.
Table 187 defines the contents of the SMART STATUS field in the SCT status response.
Value Description
0000h SMART status not reported.
2CF4h The device has detected a threshold exceeded condition.
C24Fh The device has not detected a threshold exceeded condition.
all others Reserved
Table 188 defines the error response for a read of the SCT Command/Status log.
Field Description
ERROR
Bit Description
7:5 N/A
4 ID NOT FOUND bit – See 6.3.4
3 N/A
2 ABORT bit – See 6.3.2
1 N/A
0 Obsolete
COUNT Reserved
LBA Reserved
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5:2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 190 defines the contents of the ACTION CODE field in an SCT key page.
Code Description
0000h Reserved
0001h Obsolete
0002h SCT Write Same command (see 8.3.2)
0003h SCT Error Recovery Control command (see 8.3.3)
0004h SCT Feature Control command (see 8.3.4)
0005h SCT Data Tables command (see 8.3.5)
0006h Vendor specific
0007h Reserved for Serial ATA
0008h..BFFFh Reserved
C000h..FFFFh Vendor specific
A) if the number of pattern blocks written (i.e., the 512-byte data blocks written to the SCT Data
Transfer log by previous commands plus the data blocks being written by the current command)
is equal to what is required (see 8.3.2.2), then the device shall:
1) return command completion for the command that wrote to the SCT Data Transfer log
(see 8.1.1); and
2) write the pattern data (see 8.3.2.3.1.3) in the specified logical sectors;
B) if the number of pattern blocks written is more than what is required, the device shall:
1) terminate the SCT Write Same command;
2) set the EXTENDED STATUS CODE field to 0009h (see table 175); and
3) return command aborted for the command that wrote to the SCT Data Transfer log;
and
C) if the number of pattern blocks written is less than what is required (see 8.3.2.2), the device shall:
1) set the EXTENDED STATUS CODE field to FFFFh;
2) set the NUMBER OF PAGES REMAINING field (see 8.2.4.2) to the number of log pages remaining;
and
3) return command completion without error for the command that wrote to the SCT Data Transfer
log.
8.3.2.3.1.3 Write the pattern to the specified logical sectors
While the device is writing the logical sector sized pattern data to the specified logical sectors if the key page
FUNCTION CODE field (see table 191) is set to 0001h, 0002h, or 0003h, then:
a) if the device indicates command acceptance for a command to read from the SCT Command/Status log
(i.e., an SCT Status request (see 8.1.1)), then the device shall process the SCT Status request and shall
set:
A) the EXTENDED STATUS CODE field to FFFFh (see table 175); and
B) the LBA field (see 8.2.5) to the LBA of the last logical sector that was written;
b) if the device indicates command acceptance for any command other than a read from the SCT
Command/Status log, then the device shall:
1) abort background processing for the SCT Write Same command;
2) set the EXTENDED STATUS CODE field to 0008h (see table 175); and
3) process the new command;
and
c) if writing to any of the specified logical sector fails, the device shall:
1) abort background processing for the SCT Write Same command; and
2) set the EXTENDED STATUS CODE field to 0009h (see table 175).
If all specified logical sectors have been written without error, the EXTENDED STATUS CODE field shall be set to
0000h.
8.3.2.3.2 Foreground Processing
8.3.2.3.2.1 Get the foreground pattern from the key page
If the key page FUNCTION CODE field (see table 191) is set to 0101h, then the device shall write the logical sector
sized pattern data as defined in 8.3.2.2 (see 8.3.2.3.2.3).
8.3.2.3.2.2 Get the foreground pattern from the SCT Data Transfer log
To perform a foreground SCT Write Same command with a data pattern:
1) if the device processes a write log command to the SCT command log without error and the key page
FUNCTION CODE field (see table 191) is set to 0102h or 0103h, then the device shall return command
completion for the command that wrote to the SCT Command/Status log (see 8.1.1) with the:
A) NUMBER OF PAGES REMAINING field (see 8.2.4.2) set to the number of log pages to be written to the
SCT Data Transfer log; and
B) EXTENDED STATUS CODE field set to:
a) FFFFh (see table 175), if the device is ready to receive data; or
b) a value other than FFFFh or 0000h, if the device becomes unable to receive the data;
2) while the EXTENDED STATUS CODE field is set to FFFFh, if the device processes a command that writes to
the SCT Data Transfer log, then:
A) if the number of pattern blocks written (i.e., the 512-byte data blocks written to the SCT Data
Transfer log by previous commands plus the data blocks being written by the current command) is
equal to what is required (see 8.3.2.2), then the device shall write that logical sector sized pattern
data (see 8.3.2.3.2.3);
B) if the number of pattern blocks written is more than what is required (see 8.3.2.2), then the device
shall:
1) terminate the SCT Write Same command;
2) set the EXTENDED STATUS CODE field to 0014h (see table 175); and
3) return command aborted for the command that wrote to the SCT Data Transfer log;
and
C) if the number of number of pattern blocks written is less than what is required (see 8.3.2.2), then the
device shall:
1) set the EXTENDED STATUS CODE field to FFFFh (see table 175);
2) set the NUMBER OF PAGES REMAINING field (see 8.2.4.2) to the number of log pages remaining;
and
3) return command completion without error for the command that wrote to the SCT Data Transfer
log.
8.3.2.3.2.3 Write the pattern to the specified logical sectors
While the device is writing the pattern data to the specified logical sectors, if the key page FUNCTION CODE field is
set to 0101h, 0102h, or 0103h, then:
1) if writing to any of the specified logical sectors fails, the device shall:
1) abort processing for the SCT Write Same command;
2) set the EXTENDED STATUS CODE field to 0014h (see table 175); and
3) return command completion for the command that wrote to the SCT Command/Status log or the
SCT Data Transfer log, indicating the failure (see 8.1.1) of the SCT Write Same command;
and
2) if all specified logical blocks are written without error, the device shall:
1) set the EXTENDED STATUS CODE field to 0000h (see table 175); and
2) return command completion without error for the command that wrote to the SCT Command/Status
log or the SCT Data Transfer log, indicating the success (see 8.1.1) of the SCT Write Same
command.
8.3.2.4 Status Reporting
If the SCT Command returns an error in response to writing the SCT Command/Status log, then table 174
describes the error return.
If the SCT Command returns an error in response to writing the SCT Data log, then:
a) if the error is in response to a SMART read log or write log command, then table 180 describes the error;
or
b) if the error is in response to a GPL read log or write log command, then table 181 describes the error;
8.3.2.5 SEGMENT INITIALIZED bit
The SCT Write Same command may change the SEGMENT INITIALIZED bit in the SCT Status response
(see table 186). If the SCT Write Same command writes all of the user data without error, the SEGMENT
INITIALIZED bit shall be set to one. A write to any user addressable logical sector on the device, except a write
caused by another SCT Write Same command with the START field and the FILL COUNT field cleared to zero
(i.e., an SCT Write Same command causing the device to write to all logical sectors), shall cause the SEGMENT
INITIALIZED bit to be cleared to zero. Reallocations as a result of reading data, either in the foreground or
background, shall not clear the SEGMENT INITIALIZED bit.
Field Description
ERROR
Bit Description
7:5 N/A
4 ID NOT FOUND bit – See 6.3.4
3 N/A
2 ABORT bit – See 6.3.2
1 N/A
0 Obsolete
COUNT Reserved
LBA
Bit Description
27:24 Reserved
23:8 NUMBER OF PAGES REMAINING field:
If the key page FUNCTION CODE field (see table 191) was set to 0001h or 0101h, this
field shall be set to 0000h.
If the key page FUNCTION CODE field was set to 0002h 0003h, 0102h, or 0103h, this
field shall be set to the number of log pages the device expects for the pattern data.
7:0 Reserved
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5:2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 193 defines the format of an SCT Error Recovery Control command key page written to the SCT
Command/Status log (see 8.1.1).
Field Description
ERROR
Bit Description
7:5 N/A
4 ID NOT FOUND bit – See 6.3.4
3 N/A
2 ABORT bit – See 6.3.2
1 N/A
0 Obsolete
COUNT SCT ERROR RECOVERY CONTROL RETURNED VALUE field (7:0) (see table 195)
LBA
Bit Description
27:8 Reserved
7:0 SCT ERROR RECOVERY CONTROL RETURNED VALUE field (15:8) (see table 195)
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11.
5:2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
The contents of the SCT ERROR RECOVERY CONTROL RETURNED VALUE field are defined by the contents of the
FUNCTION CODE field in the key page as shown in table 195.
FUNCTION CODE
field
(see table 193) SCT ERROR RECOVERY CONTROL RETURNED VALUE field contents
0002h Current Timer Value
0004h Power-on Timer Value
all others Reserved
If the FUNCTION CODE field is set to 0001h, the processing performed by the SCT Feature Control command is
defined in table 197 based on the contents of the FEATURE CODE field and the STATE field.
FEATURE
CODE STATE
field field State definition
0000h Reserved
0001h 0001h The SET FEATURES command (see 7.41) shall determine the state of the volatile write
cache (see 7.41.3). This is the default value (see 8.3.4.2) for feature code 0001h.
0002h a Volatile write cache shall be enabled.
0003h a Volatile write cache shall be disabled.
0002h 0001h b Volatile Write Cache Reordering shall be enabled (i.e., disk write scheduling may be
reordered by the device), regardless of the enabled or disabled state of the volatile write
cache. This is the default value (see 8.3.4.2) for feature code 0002h.
0002h b Volatile Write Cache Reordering shall be disabled, and disk write scheduling is
processed on a first-in-first-out (FIFO) basis, regardless of the enabled or disabled state
of the volatile write cache.
0003h 0000h Reserved
0001h.. Set the INTERVAL FIELD in the HDA Temperature History table (see 8.3.5.2) to the larger
FFFFh of:
a) the value in the STATE field; or
b) the contents of the SAMPLE PERIOD field in the HDA Temperature History table.
Clear the HDA Temperature History table as described in 8.3.5.2.2.For feature code
0003h, the default value (see 8.3.4.2) is the value in the SAMPLE PERIOD field in the
HDA Temperature History table (see 8.3.5.2)
0004h.. Reserved for Serial ATA
0005h
0006h.. Reserved
CFFFh
D000h.. Vendor Specific
FFFFh
a
Volatile write cache shall be set to the specified state, and any attempt to change the volatile write cache
settings using a SET FEATURES command shall not result in an error and shall not change the
operational state of the volatile write cache. The VOLATILE WRITE CACHE ENABLED bit (see 9.11.6.2.6) shall
reflect the current operational state of the volatile write cache (i.e., if set to one, the volatile write cache is
enabled, and if cleared to zero, the volatile write cache is disabled).
b
If volatile write cache is disabled, then the current volatile Write Cache Reordering state has no effect on
writes. The state of volatile Write Cache Reordering has no effect on NCQ commands (see 4.15).
Field Description
ERROR
Bit Description
7:5 N/A
4 ID NOT FOUND bit – See 6.3.4
3 N/A
2 ABORT bit – See 6.3.2
1 N/A
0 Obsolete
COUNT If the key page FUNCTION CODE field (see table 191) was set to 0002h, this field contains the
Feature State (7:0) associated with the Feature Code specified in the key page.
If the key page FUNCTION CODE field was set to 0003h, this field contains the Option Flags (7:0)
associated with the Feature Code specified in the key page.
Otherwise, this field is reserved.
LBA
Bit Description
27:8 Reserved
7:0 If the key page FUNCTION CODE field (see table 191) was set to 0002h, this field
contains the Feature State (15:8) associated with the Feature Code specified in the
key page.
If the key page FUNCTION CODE field was set to 0003h, this field contains the Option
Flags (15:8) associated with the Feature Code specified in the key page.
Otherwise, this field is reserved.
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11.
5:2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Code Description
0000h Invalid
0001h Reserved
0002h HDA Temperature History table (in degrees Celsius) – See 8.3.5.2
0003h-0004h Reserved for Serial ATA
0005h-CFFFh Reserved
D000h-FFFFh Vendor Specific
Field Description
ERROR
Bit Description
7:5 N/A
4 ID NOT FOUND bit – See 6.3.4
3 N/A
2 ABORT bit – See 6.3.2
1 N/A
0 Obsolete
COUNT Reserved
LBA
Bit Description
27:24 Reserved
23:8 If the key page TABLE ID field (see table 200) was set to 0002h, this field shall be set
to 0001h (i.e., number of pages requested). Otherwise this field is reserved.
7:0 Reserved.
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11.
5:2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
9 Log Definitions
9.1 Overview
This Annex provides a description of all logs. All logs are optional unless otherwise specified. These logs are
accessible via commands (see 7.22, 7.23, 7.44.2, 7.44.4, 7.58, 7.59). Table 205 is a summary of these logs.
The following terms are associated with logs:
a) name: the log name is a term that describes the data in the associated log;
b) address: each log name has an associated numeric value that is the log address; and
c) log page: each log is composed or one or more log pages and each page has a page number.
The LOG ADDRESS field is used by read log commands and write log commands to access a specific log.
Table 204 shows an example layout of logs. Data transfer associated with the SMART READ LOG command
and the SMART WRITE LOG command starts from the first log page (i.e., log page number zero). GPL feature
set (see 4.11) commands allow the host to specify the starting log page number using the PAGE NUMBER field.
Log
Log Name Address Log pages
Log Directory 00h log page 0 (the Log Directory only has one 512-byte log
page)
Host Specific 80h Log page 0 (first 512-byte log page)
(see 9.10) Log page 1 (second 512-byte log page)
…
Log page 15 (last 512-byte log page)
Host Specific 81h Log page 0 (first 512-byte log page)
Log page 1 (second 512-byte log page)
…
Log page 15 (last 512-byte log page)
…
Host Specific 9Fh Log page 0 (first 512-byte log page)
Log page 1 (second 512-byte log page)
…
Log page 15 (last 512-byte log page)
Word Description
0 General Purpose Logging Version a
1 Number of log pages at log address 01h
2 Number of log pages at log address 02h
3 Number of log pages at log address 03h
4 Number of log pages at log address 04h
…
128 Number of log pages at log address 80h
129 Number of log pages at log address 81h
…
255 Number of log pages at log address FFh
a
This word shall be set to 0001h.
Offset Description
0..1 SMART Logging Version (word)
2 Number of log pages at log address 1
3 Reserved
4 Number of log pages at log address 2
5 Reserved
… …
510 Number of log pages at log address 255
511 Reserved
The value of the SMART Logging Version word shall be 0001h if the device supports multi-block SMART logs.
If the device does not support multi-block SMART logs, then log address 00h is defined as reserved.
The content of the error log data structure entries is defined in 9.23.4.
9.4.5 Device error count
The Device Error Count field is defined in 9.23.5.
9.4.6 Data structure checksum
The data structure checksum is defined in 9.7.6.
Each device statistic shall be one QWord in length and have the format shown in table 210.
Bits Description
63:56 DEVICE STATISTICS FLAGS field (see table 211)
55:0 The device statistic's value that is comprised of one
to 56 bits with the least significant bit in bit zero
59 MONITORED V 1 = The monitored condition set for this device statistic is met (see 9.27).
CONDITION 0 = The monitored condition set for this device statistic is not met.
MET
58..56 Reserved
Key:
F/V – Fixed/variable content
F – The content of the field is fixed and does not change.
V – The contents of the field is variable and may change depending on the state of the device
or the commands processed by the device.
a
If this standard does not define a normalized value for a device statistic, the NORMALIZED STATISTIC bit
shall be cleared to zero.
e) the device shall save all statistics whose values have changed to a non-volatile location before entering
PM2:Standby state (see 4.16.4) or any power management state (see 4.16.4) where the media is not
accessible to the host;
f) there may be a statistic update timer that periodically causes a statistic to be copied to a non-volatile
location (i.e., update interval);
g) while the device is in the PM3:Sleep state (see 4.16.4):
A) the current statistics shall not be updated to the non-volatile locations;
B) the associated statistic update timers shall not continue operation; and
C) the device shall not exit PM3:Sleep state to update the non-volatile statistics;
h) while the device is in the PM2:Standby state (see 4.16.4):
A) the current statistics may be saved to the non-volatile locations;
B) if the statistics are saved to the non-volatile locations, then the associated statistic update timers
shall be re-initialized and shall continue operation while in the PM2:Standby state;
C) if the statistics are not saved to the non-volatile locations, then the associated statistic update timers
shall not continue operation while in the PM2:Standby state; and
D) the device shall not exit PM2:Standby state to update the non-volatile statistics;
and
i) while the device is in the PM0:Active state (see 4.16.4) or PM1:Idle state (see 4.16.4), if the statistics
update timer expires and:
A) a statistic value has not changed, then the device shall:
a) save the statistic to a non-volatile location; and
b) re-initialize the associated statistic update timer;
or
B) a statistic’s value has changed and:
a) a command is not being processed, then the device shall save the updated statistic to a
non-volatile location and re-initialize the associated statistic update timer; or
b) a command is being processed, then the device:
A) should save the updated statistic to a non-volatile location during command processing, and
if the statistic is saved, then the device server shall re-initialize the associated statistic
update timer; and
B) shall, before processing the next command, save the updated statistic to a non-volatile
location and re-initialize the associated statistic update timer.
9.5.2 List of Supported Device Statistics log pages (log page 00h)
The List of Supported Device Statistics log pages contains a list of the supported Device Statistics log pages as
described in table 212. If the Device Statistics log is supported and any Device Statistics log page other than the
General Statics log page (see 9.5.4) is supported, then this Device Statistics log page shall be implemented.
Entries shall be in order of ascending log page number. Every log page for which there is at least one supported
statistic shall be listed.
c) should increment this statistic while it is in the PM2:Standby state (see 4.16.4);
d) should increment this statistic while it is in the PM5: PUIS and spin-up subcommand not supported
state (see 4.16.4);
e) should increment this statistic while it is in the PM6: PUIS and spin-up subcommand supported state
(see 4.16.4); and
f) shall not increment this statistic while it is in PM3:Sleep state (see 4.16.4).
This statistic is incremented in a volatile location with a resolution of one minute or less. This volatile value is
accumulated into a non-volatile location per the update interval.
9.5.4.4.2 Update Interval
One hour.
9.5.4.4.3 Measurement Units
Hours.
9.5.4.4.4 Initialization
This statistic shall be cleared to zero at the time of manufacture.
9.5.4.5 Logical Sectors Written
9.5.4.5.1 Description
The Logical Sectors Written statistic is a value that records the number of logical sectors received from the host.
This statistic is incremented by one for each logical sector that was received from the host without an error.
9.5.4.5.2 Update Interval
One hour.
9.5.4.5.3 Measurement Units
Logical sectors.
9.5.4.5.4 Initialization
This statistic shall be cleared to zero at the time of manufacture.
9.5.4.6 Number of Write Commands
9.5.4.6.1 Description
The Number of Write Commands statistic is the number of write commands that returned command completion
without an error. This statistic is incremented by one for each write command that returns command completion
without an error.
9.5.4.6.2 Update Interval
One hour.
9.5.4.6.3 Measurement Units
Events.
9.5.4.6.4 Initialization
This statistic shall be cleared to zero at the time of manufacture.
9.5.4.7 Logical Sectors Read
9.5.4.7.1 Description
The Logical Sectors Read statistic is a value that records the number of logical sectors sent to the host. This
statistic is incremented by one for each logical sector that was sent to the host without an error.
9.5.4.7.2 Update Interval
One hour.
Value Description
0..99 999 Less than (i.e., 0.00% to 99.99% of) Less than (i.e., 0.00% to 99.99%) of the
designed workload has been utilized.the designed workload has been utilized.
10 000 Exactly the designed workload for the device has been utilized.
10 001..65 534 Greater than (i.e., 100.01% to 655.34% of) the designed workload has been utilized.
65 535 Greater than 655.34% of the designed workload has been utilized.
Value Description
00h The contents of the UTILIZATION USAGE RATE field are valid.
10h The contents of the UTILIZATION USAGE RATE field are not valid because insufficient information
has been collected about the workload utilization (e.g., not enough accesses of the recording
media have been detected to allow computation of the UTILIZATION USAGE RATE field).
81h The contents of the UTILIZATION USAGE RATE field are not valid because the most recently
processed SET DATE & TIME command specified a timestamp resulted in usage rate that is
unreasonable (e.g., the device has been in service for 25 years).
FFh The contents of UTILIZATION USAGE RATE field are not valid for an undetermined reason.
all other Reserved
values
Value Description
0h The contents of the UTILIZATION USAGE RATE field are based on the time of manufacture
until the time indicated by the Date and Time TimeStamp (see 9.5.4.9) device statistic,
including times during which the device was powered off.
4h The contents of the UTILIZATION USAGE RATE field are based on the time elapsed since
the most recent processing of a power-on reset.
8h The contents of the UTILIZATION USAGE RATE field are based on the Power-on Hours
device statistic (see 9.5.4.4).
Fh The basis for the UTILIZATION USAGE RATE field is undetermined.
all other values Reserved
The Set rate basis subcommand of the SET FEATURES command (see 7.41.11) instructs the device set the
RATE BASIS field to a specific value.
Value Description
0..99 During the specified time interval (see 9.5.4.12.3), the Workload Utilization
usage rate has been less than (i.e., 0% to 99% of) the designed usage rate
100 During the specified time interval, the Workload Utilization usage rate has been
the exact usage rate designed for the device
101..254 During the specified time interval, the Workload Utilization usage rate has been
greater than (i.e., 101% to 254% of) the designed usage rate
255 During the specified time interval, the Workload Utilization usage rate has been
greater than 254% of the designed usage rate
Value Description
00h..7Fh Random write resources used is within nominal bounds.
80h..FFh Random write resources used have exceeded nominal bounds.
9.5.5.3.4 Initialization
This statistic shall be cleared to zero at the time of manufacture.
9.5.5.4 Number of Resets Between Command Acceptance and Command Completion
9.5.5.4.1 Description
The Number of Resets Between Command Acceptance and Command Completion statistic is a counter that
records the number of software reset or hardware reset events that occur while one or more commands have
been accepted by the device but have not reached command completion. This statistic shall be incremented by
one for each event.
9.5.5.4.2 Update Interval
One hour.
9.5.5.4.3 Measurement Units
Events.
9.5.5.4.4 Initialization
This statistic shall be cleared to zero at the time of manufacture.
9.5.6 Rotating Media Statistics (log page 03h)
9.5.6.1 Overview
The Rotating Media Statics log page contains device rotating media information as described in table 221.
The Rotating Media Statics statistics are as follows:
a) Device Statistics Information Header;
b) Spindle Motor Power-on Hours;
c) Head Flying Hours;
d) Head Loaded Events;
e) Number of Reallocated Logical Sectors;
f) Read Recovery Attempts;
g) Number of Mechanical Start Failures;
h) Number of Reallocation Candidate Logical Sectors; and
i) Number of High Priority Unload Events.
9.5.6.6.3 Initialization
This statistic shall be cleared to zero at the time of manufacture.
9.5.6.7 Read Recovery Attempts
9.5.6.7.1 Description
Read Recovery Attempts is a counter that records the number of logical sectors that have required three or more
attempts to read the data from the media for each read command. This statistic shall be incremented by one for
each logical sector that encounters a read recovery attempt.
If that logical sector is in the same physical sector as one or more other logical sectors, then:
a) the counter shall be incremented by one for every logical sector in that physical sector; and
b) the counter shall not be incremented for any other logical sector in that physical sector that are read by
the same read command.
These events may be caused by external environmental conditions (e.g., operating in a moving vehicle).
EXAMPLE 1 - If there are eight logical sectors in a physical sector and a read command encounters a read recovery attempt
for two logical sectors in the same physical sector, then this statistic is incremented by eight.
EXAMPLE 2 - If there are eight logical sectors in a physical sector and a read command encounters a read recovery attempt
for two logical sectors each in a different physical sector, then this statistic is incremented by sixteen.
9.5.6.7.2 Update Interval
One hour.
9.5.6.7.3 Measurement Units
Events.
9.5.6.7.4 Initialization
This statistic shall be cleared to zero at the time of manufacture.
9.5.6.8 Number of Mechanical Start Failures
9.5.6.8.1 Description
The Number of Mechanical Start Failures statistic is a counter that records the number of mechanical start
failures after device manufacture. A mechanical start failure is a failure that prevents the device from achieving a
normal operating condition. This statistic shall be incremented by one for each mechanical start failure event
encountered.
9.5.6.8.2 Update Interval
One hour.
fault errors. Error log data structures shall not include errors attributed to the receipt of faulty commands (e.g.,
command codes not implemented by the device or requests with invalid parameters or invalid LBAs).
All 28-bit entries contained in the Comprehensive SMART log (see 9.4), shall also be included in the Extended
Comprehensive SMART Error log with the 48-bit entries.
Offset Description
n..n+17 First command data structure
n+18..n+35 Second command data structure
n+36..n+53 Third command data structure
n+54..n+71 Fourth command data structure
n+72..n+89 Fifth command data structure
n+90..n+123 Error data structure
Offset Description
n Content of the Device Control field when the Command was initiated.
n+1 Content of the FEATURE field (7:0) when the Command was initiated.
n+2 Content of the FEATURE field (15:8) when the Command was initiated.
n+3 Content of the COUNT field (7:0) when the Command was initiated.
n+4 Content of the COUNT field (15:8) when the Command was initiated.
n+5 Content of the LBA field (7:0) when the Command was initiated.
n+6 Content of the LBA field (31:24) when the Command was initiated.
n+7 Content of the LBA field (15:8) when the Command was initiated.
n+8 Content of the LBA field (39:32) when the Command was initiated.
n+9 Content of the LBA field (23:16) when the Command was initiated.
n+10 Content of the LBA field (47:40) when the Command was initiated.
n+11 Content of the DEVICE field when the Command was initiated.
n+12 Content written to the Command field when the command was initiated
n+13 Reserved
n+14..n+17 Timestamp (DWord) shall be the time since power-on in milliseconds
when command acceptance occurred. This timestamp may wrap.
Offset Description
Transport specific value when the Command was initiated. See the
n
appropriate transport standard, reference Device Control field.
n+1 Content of the ERROR field (7:0) after command completion occurred.
n+2 Content of the COUNT field (7:0) after command completion occurred.
n+3 Content of the COUNT field (15:8) after command completion occurred.
n+4 Content of the LBA field (7:0) when the command completion occurred.
n+5 Content of the LBA field (31:24) when the command completion occurred.
n+6 Content of the LBA field (15:8) when the command completion occurred.
n+7 Content of the LBA field (39:32) when the command completion occurred.
n+8 Content of the LBA field (23:16) when the command completion occurred.
n+9 Content of the LBA field (47:40) when the command completion occurred.
n+10 Content of the DEVICE field after command completion occurred.
n+11 Content written to the STATUS field after command completion occurred.
n+12..n+30 Extended error information
n+31 State
n+32..n+33 Life timestamp (word)
Value a State
x0h Unknown
x1h Sleep
x2h Standby
x3h Active/Idle
x4h Executing SMART off-line or self-test
x5h-xAh Reserved
xBh-xFh Vendor specific
a
The value of x is vendor specific and may be different for each
state.
Sleep indicates the reset for which the error being reported was received when the device was in the Sleep
mode.
Standby indicates the command or reset for which the error being reported was received when the device was in
the Standby mode.
Active/Idle indicates the command or reset for which the error being reported was received when the device was
in the Active or Idle mode.
Executing SMART off-line or self-test indicates the command or reset for which the error being reported was
received when the device was processing a SMART off-line or self-test.
Life timestamp shall contain the power-on lifetime of the device in hours when command completion occurred.
9.7.5 Device error count
The Device error count word shall contain the total number of errors attributable to the device that have been
reported by the device during the life of the device (e.g., Uncorrectable errors (see 6.3.6), ID Not Found errors
(see 6.3.4) for which the LBA requested was valid, servo errors, write fault errors). This device error count shall
not include errors attributed to the receipt of faulty commands (e.g., command codes not implemented by the
device or requests with invalid parameters or invalid LBAs). If the maximum value for this field is reached, then
the count shall remain at the maximum value if additional errors are encountered and logged.
9.7.6 Data structure checksum
The data structure checksum is the two’s complement of the sum of the first 511 bytes in the data structure.
Each byte shall be added with unsigned arithmetic, and overflow shall be ignored. The sum of all 512 bytes shall
be zero when the checksum is correct. The checksum is placed in byte 511.
If the POWER CONDITION CHANGEABLE bit is set to one, then the power condition is changeable if EPC is enabled.
If the POWER CONDITION CHANGEABLE bit is cleared to zero, then the power condition is not changeable
9.8.4.5 DEFAULT TIMER ENABLED bit
The DEFAULT TIMER ENABLED bit is set at the time of manufacture. The DEFAULT TIMER ENABLED bit may be copied
to the CURRENT TIMER ENABLED bit (see 9.8.4.7) during the processing of a SET FEATURES command with:
a) the Set Power Condition Timer subcommand (see 7.41.19.4); or
b) the Restore Power Condition Settings subcommand (see 7.41.19.2).
The DEFAULT TIMER ENABLED bit is valid if the POWER CONDITION SUPPORTED bit (see 9.8.4.2) is set to one,
regardless of whether EPC is enabled or disabled.
9.8.4.6 SAVED TIMER ENABLED bit
The SAVED TIMER ENABLED bit may be set to the value in the CURRENT TIMER ENABLED bit (see 9.8.4.7) during the
processing of a SET FEATURES command with:
a) the Set Power Condition Timer subcommand (see 7.41.19.4); or
b) the Restore Power Condition Settings subcommand (see 7.41.19.2).
The SAVED TIMER ENABLED bit:
a) is copied to the CURRENT TIMER ENABLED bit during the processing of a power-on reset (see 4.9.4); and
b) may be copied to the CURRENT TIMER ENABLED bit during the processing of a SET FEATURES command
with:
A) the Set Power Condition Timer subcommand (see 7.41.19.4); or
B) the Restore Power Condition Settings subcommand (see 7.41.19.2).
The SAVED TIMER ENABLED bit is valid if the POWER CONDITION SUPPORTED bit (see 9.8.4.2) is set to one,
regardless of whether EPC is enabled or disabled.
9.8.4.7 CURRENT TIMER ENABLED bit
If EPC is disabled, then the CURRENT TIMER ENABLED bit shall be cleared to zero.
If EPC is enabled and the CURRENT TIMER SETTING field (see 9.8.4.11) is nonzero and the CURRENT TIMER ENABLED
bit is set to one, then the power condition timer is enabled.
If EPC is enabled and the CURRENT TIMER ENABLED bit is cleared to zero, then the power condition timer is
disabled.
9.8.4.8 HOLD POWER CONDITION NOT SUPPORTED bit
The HOLD POWER CONDITION NOT SUPPORTED bit is valid if the POWER CONDITION SUPPORTED bit (see 9.8.4.2) is set
to one and the LOW POWER STANDBY SUPPORTED bit (see 9.11.5.2.36) is set to one, whether EPC is enabled or
disabled.
If the HOLD POWER CONDITION NOT SUPPORTED bit is valid and cleared to zero, then the device supports the Hold
Power Condition parameter of the EPC Go To Power Condition subcommand (see 7.41.19.3) for this power
condition.
If the HOLD POWER CONDITION NOT SUPPORTED bit is valid and set to one, then the device does not support the
Hold Power Condition parameter of the EPC Go To Power Condition subcommand for this power condition.
9.8.4.9 DEFAULT TIMER SETTING field
The DEFAULT TIMER SETTING field is set at the time of manufacture. The DEFAULT TIMER SETTING field may be
copied to the CURRENT TIMER SETTING field during the processing of a SET FEATURES command with:
a) the Set Power Condition Timer subcommand (see 7.41.19.4); or
b) the Restore Power Condition Settings subcommand (see 7.41.19.2).
The DEFAULT TIMER SETTING field is valid if the POWER CONDITION SUPPORTED bit (see 9.8.4.2) is set to one,
regardless of whether EPC is enabled or disabled.
A value of FFFF_FFFFh indicates that the time is greater than or equal to 429 496 729 500 ms.
Measurement Units: 100 ms.
9.8.4.10 SAVED TIMER SETTING field
The SAVED TIMER SETTING field has may be set to the value in the CURRENT TIMER SETTING field (see 9.8.4.11)
during the processing of a SET FEATURES command with:
a) the Set Power Condition Timer subcommand (see 7.41.19.4); or
b) the Restore Power Condition Settings subcommand (see 7.41.19.2).
The SAVED TIMER SETTING field:
a) is copied to the CURRENT TIMER SETTING field during the processing of a power-on reset (see 4.9.4); and
b) may be copied to the CURRENT TIMER SETTING field during the processing of a SET FEATURES command
with:
A) the Set Power Condition Timer subcommand (see 7.41.19.4); or
B) the Restore Power Condition Settings subcommand (see 7.41.19.2).
The SAVED TIMER SETTING field is valid if the POWER CONDITION SUPPORTED bit (see 9.8.4.2) is set to one,
regardless of whether EPC is enabled or disabled.
A value of FFFF_FFFFh indicates that the time is greater than or equal to 429 496 729 500 ms.
Measurement Units: 100 ms.
9.8.4.11 CURRENT TIMER SETTING field
The CURRENT TIMER SETTING field contains the minimum time that the device shall wait after command completion
before entering this power condition if the EPC feature set is enabled.
The CURRENT TIMER SETTING field shall be cleared to zero if:
a) EPC is disabled;
b) the POWER CONDITION SUPPORTED bit (see 9.8.4.2) is cleared to zero; or
c) the CURRENT TIMER ENABLED bit (see 9.8.4.7) is cleared to zero.
A value of zero indicates that this power condition is disabled if the EPC feature set is enabled.
A value of FFFF_FFFFh indicates that the time is greater than or equal to 429 496 729 500 ms.
Measurement Units: 100 ms.
9.8.4.12 NOMINAL RECOVERY TIME TO PM0:ACTIVE field
The NOMINAL RECOVERY TIME TO PM0:ACTIVE field contains the nominal time required to transition from this power
condition to PM0:Active state (see 4.16.4) if the EPC feature set is enabled. This time does not include
processing time for the command that caused this transition to occur.
The NOMINAL RECOVERY TIME TO PM0:ACTIVE field is valid if the POWER CONDITION SUPPORTED bit (see 9.8.4.2) is
set to one, regardless of whether EPC is enabled or disabled.
A value of zero indicates that the nominal recovery time is not specified. A value of FFFF_FFFFh indicates that
the recovery time is greater than or equal to 429 496 729 500 ms.
This value shall be preserved over all resets.
Measurement Units: 100 ms.
9.8.4.13 MINIMUM TIMER SETTING field
The MINIMUM TIMER SETTING field contains the minimum timer value allowed by the Set Power Condition Timer
subcommand (see 7.41.19.4) for this power condition if the EPC feature set is enabled.
The MINIMUM TIMER SETTING field is valid if the POWER CONDITION SUPPORTED bit (see 9.8.4.2) is set to one,
regardless of whether EPC is enabled or disabled.
A value of zero indicates that the minimum timer setting is not specified. A value of FFFF_FFFFh indicates that
the minimum time is greater than or equal to 429 496 729 500 ms.
The Extended Self-test log is a circular buffer. All unused self-test descriptors shall be filled with zeros.
9.9.2 Self-test descriptor index
The Self-test descriptor index indicates the most recent self-test descriptor. If there have been no self-tests, the
Self-test descriptor index is cleared to zero.
9.9.3 Self-test log data structure revision number
The value of the self-test log data structure revision number shall be 01h.
Offset Description
n Content of the LBA field (7:0)
n+1 Content of the self-test execution status byte
n+2..n+3 Life timestamp (word)
n+4 Content of the self-test failure checkpoint byte
n+5 Failing LBA (7:0)
n+6 Failing LBA (15:8)
n+7 Failing LBA (23:16)
n+8 Failing LBA (31:24)
n+9 Failing LBA (39:32)
n+10 Failing LBA (47:40)
n+11..n+25 Vendor specific
Content of the LBA field (7:0) shall be the content of the LBA field (7:0) when the nth self-test subcommand was
issued (see ACS-3).
Content of the self-test execution status byte shall be the content of the self-test execution status byte when the
nth self-test was completed (see ACS-3).
Life timestamp shall contain the power-on lifetime of the device in hours when the nth self-test subcommand was
completed.
Content of the self-test failure checkpoint byte may contain additional information about the self-test that failed.
The failing LBA shall be the LBA of the logical sector that caused the test to fail. If the device encountered more
than one failed logical sector during the test, this field shall indicate the LBA of First Unrecoverable Error
(see 6.8.2). If the test passed or the test failed for some reason other than a failed logical sector, the value of this
field is undefined.
9.9.5 Data structure checksum
The data structure checksum is the two's complement of the sum of the first 511 bytes in the data structure.
Each byte shall be added with unsigned arithmetic, and overflow shall be ignored. The sum of all 512 bytes is
zero when the checksum is correct. The checksum is placed in byte 511.
9.11.2 List of Supported IDENTIFY DEVICE data log pages (Page 00h)
IDENTIFY DEVICE data log page 00h (see table 237) contains a list of which IDENTIFY DEVICE data log pages
(see table 236) are supported by the device. Entries shall be in order of ascending page number (e.g., the
following entries are returned by a Serial ATA device: 00h, 01h, 02h, 03h, 04h, 05h, 06h, and 08h).
If the LOGICAL TO PHYSICAL SECTOR RELATIONSHIP SUPPORTED bit (see table 238) is set to one, then:
a) the device has more than one logical sector per physical sector; and
b) the LOGICAL TO PHYSICAL SECTOR RELATIONSHIP field (see 9.11.4.3.4) is valid.
See 9.11.4.3.5 for information on the alignment of logical sectors within a physical sector.
If the LOGICAL TO PHYSICAL SECTOR RELATIONSHIP SUPPORTED bit is cleared to zero, then
a) the device has only one logical sector per physical sector; and
b) the LOGICAL TO PHYSICAL SECTOR RELATIONSHIP field is invalid.
The IDENTIFY DEVICE data contains a copy of the LOGICAL TO PHYSICAL SECTOR RELATIONSHIP SUPPORTED bit
(see IDENTIFY DEVICE data word 106 in table 50).
9.11.4.3.2 Device has a logical sector size greater than 256 words (LOGICAL SECTOR SIZE SUPPORTED bit)
If the LOGICAL SECTOR SIZE SUPPORTED bit (see table 238) is set to one, then
a) the device has been formatted with a logical sector size larger than 256 words; and
b) the LOGICAL SECTOR SIZE field (see 9.11.4.4) is valid.
If the LOGICAL SECTOR SIZE SUPPORTED bit is cleared to zero, then
a) the logical sector size is 256 words; and
b) the LOGICAL SECTOR SIZE field is invalid.
The IDENTIFY DEVICE data contains a copy of the LOGICAL SECTOR SIZE SUPPORTED bit (see IDENTIFY DEVICE
data word 106 in table 50).
9.11.4.3.3 Alignment Error reporting (ALIGNMENT ERROR REPORTING field)
If the LPS MISALIGNMENT REPORTING SUPPORTED bit (see 9.11.5.2.3) is set to one (i.e., if Long Physical Sector
Alignment Error Reporting Control is supported), then the ALIGNMENT ERROR REPORTING field (see table 238)
indicates the current Long Physical Sector Alignment Error Reporting setting as follows:
a) 00b indicates that Long Physical Sector Alignment Error reporting is disabled;
b) 01b indicates that Long Physical Sector Alignment Error reporting is enabled;
c) 10b indicates that the device shall report command aborted if an Alignment Error occurs; and
d) 11b is reserved.
The Long Physical Sector Alignment Error Reporting Control subcommand of the SET FEATURES command
(see 7.41.18) is the method for changing the ALIGNMENT ERROR REPORTING field.
The IDENTIFY DEVICE data contains a copy of the ALIGNMENT ERROR REPORTING field (see IDENTIFY DEVICE
data word 49 in table 50).
9.11.4.3.4 2x logical sectors per physical sectors (LOGICAL TO PHYSICAL SECTOR RELATIONSHIP field)
The LOGICAL TO PHYSICAL SECTOR RELATIONSHIP field (see table 238) indicates the size of the device physical
sectors in power of two logical sectors.
EXAMPLE 1 - Bits 3:0: 0 means 20 means 1 logical sector per physical sector
EXAMPLE 2 - Bits 3:0: 1 means 21 means 2 logical sectors per physical sector
EXAMPLE 3 - Bits 3:0: 2 means 22 means 4 logical sectors per physical sector
EXAMPLE 4 - Bits 3:0: 3 means 23 means 8 logical sectors per physical sector
The IDENTIFY DEVICE data contains a copy of the LOGICAL TO PHYSICAL SECTOR RELATIONSHIP field (see
IDENTIFY DEVICE data word 106 in table 50).
9.11.4.3.5 Logical sector offset within the first physical sector where the first logical sector is placed
(LOGICAL SECTOR OFFSET field)
The LOGICAL SECTOR OFFSET field (see table 238) indicates the number of unused logical sectors that precede
logical sector zero in the first physical sector of the media. An example of how to use the LOGICAL SECTOR
OFFSET field is shown in C.3.2.
The IDENTIFY DEVICE data contains a copy of the LOGICAL SECTOR OFFSET field (see IDENTIFY DEVICE data
word 209 in table 50).
9.11.4.4 Logical Sector Size (LOGICAL SECTOR SIZE field)
The LOGICAL SECTOR SIZE field (see table 238) indicates the size of device's logical sectors in words. If the
LOGICAL SECTOR SIZE SUPPORTED bit (see 9.11.4.3.2) is set to one, then:
a) the value in the LOGICAL SECTOR SIZE field shall be greater than or equal to 256; and
b) all logical sectors on a device shall be the length indicated by the LOGICAL SECTOR SIZE field.
If the LOGICAL SECTOR SIZE SUPPORTED bit is cleared to zero, the LOGICAL SECTOR SIZE field shall be cleared to
zero.
The IDENTIFY DEVICE data contains a copy of the LOGICAL SECTOR OFFSET field (see IDENTIFY DEVICE data
words 117..118 in table 50).
9.11.4.5 Nominal Buffer Size (BUFFER SIZE field)
The BUFFER SIZE field (see table 238) reports the size, in bytes, of the buffer supported by the device. The
partitioning of the buffer is vendor specific.
9.11.5 Supported Capabilities (page 03h)
9.11.5.1 Overview
The Supported Capabilities log page (see table 239) provides a mechanism for the device to report support for
feature sets, features, commands and other device capabilities.
If the LPS MISALIGNMENT REPORTING SUPPORTED bit (see table 239) is set to one, the device supports the
SET FEATURES command with the Long Physical Sector Alignment Error Reporting Control subcommand
(see 7.41.18). If the LPS MISALIGNMENT REPORTING SUPPORTED bit is cleared to zero, the device does not support
the SET FEATURES command with the Long Physical Sector Alignment Error Reporting Control subcommand.
The IDENTIFY DEVICE data contains a copy of the LPS MISALIGNMENT REPORTING SUPPORTED bit (see IDENTIFY
DEVICE data word 69 in table 50).
9.11.5.2.4 READ BUFFER DMA is supported (READ BUFFER DMA SUPPORTED bit)
If the READ BUFFER DMA SUPPORTED bit (see table 239) is set to one, the READ BUFFER DMA command is
supported. If the READ BUFFER DMA SUPPORTED bit is cleared to zero, the READ BUFFER DMA command is not
supported.
The IDENTIFY DEVICE data contains a copy of the READ BUFFER DMA SUPPORTED bit (see IDENTIFY DEVICE
data word 69 in table 50).
9.11.5.2.5 WRITE BUFFER DMA is supported (WRITE BUFFER DMA SUPPORTED bit)
If the WRITE BUFFER DMA SUPPORTED bit (see table 239) is set to one, the WRITE BUFFER DMA command is
supported. If the WRITE BUFFER DMA SUPPORTED bit is cleared to zero, the WRITE BUFFER DMA command is not
supported.
The IDENTIFY DEVICE data contains a copy of the WRITE BUFFER DMA SUPPORTED bit (see IDENTIFY DEVICE
data word 69 in table 50).
9.11.5.2.6 DOWNLOAD MICROCODE DMA is supported (DOWNLOAD MICROCODE DMA SUPPORTED bit)
If the DOWNLOAD MICROCODE DMA SUPPORTED bit (see table 239) is set to one, the DOWNLOAD MICROCODE
DMA command is supported. If the DOWNLOAD MICROCODE DMA SUPPORTED bit is cleared to zero, the
DOWNLOAD MICROCODE DMA command is not supported.
The IDENTIFY DEVICE data contains a copy of the DOWNLOAD MICROCODE DMA SUPPORTED bit (see IDENTIFY
DEVICE data word 69 in table 50).
9.11.5.2.7 Optional ATA device 28-bit commands supported (28-BIT SUPPORTED bit)
The 28-BIT SUPPORTED bit (see table 239) shall be cleared to zero if all of the following commands are supported:
a) FLUSH CACHE;
b) READ DMA;
c) READ SECTOR(S);
d) READ VERIFY SECTOR(S);
e) WRITE DMA; and
f) WRITE SECTOR(S).
The 28-BIT SUPPORTED bit shall be set to one if any of the following commands are not supported:
a) FLUSH CACHE;
b) READ DMA;
c) READ SECTOR(S);
d) READ VERIFY SECTOR(S);
e) WRITE DMA; or
f) WRITE SECTOR(S).
The IDENTIFY DEVICE data contains a copy of the 28-BIT SUPPORTED bit (see IDENTIFY DEVICE data word 69
in table 50).
9.11.5.2.8 Return zeroes data after trim is supported (RZAT SUPPORTED bit)
The RZAT SUPPORTED bit (see table 239) indicates the device behavior when returning data from trimmed logical
sectors as described in table 35.
If the DRAT SUPPORTED bit (see 9.11.5.2.2) is cleared to zero, the RZAT SUPPORTED bit shall be cleared to zero.
The IDENTIFY DEVICE data contains a copy of the RZAT SUPPORTED bit (see IDENTIFY DEVICE data word 69 in
table 50).
9.11.5.2.9 The NOP command is supported (NOP SUPPORTED bit)
If the NOP SUPPORTED bit (see table 239) is set to one, the NOP command (see 7.16) is supported. If the NOP
SUPPORTED bit is cleared to zero, the NOP command is not supported.
The IDENTIFY DEVICE data contains a copy of the NOP SUPPORTED bit (see IDENTIFY DEVICE data word 82 in
table 50).
9.11.5.2.10 The READ BUFFER command is supported (READ BUFFER SUPPORTED bit)
If the READ BUFFER SUPPORTED bit (see table 239) is set to one, the READ BUFFER command is supported. If
the READ BUFFER SUPPORTED bit is cleared to zero, the READ BUFFER command is not supported.
The IDENTIFY DEVICE data contains a copy of the READ BUFFER SUPPORTED bit (see IDENTIFY DEVICE data
word 82 in table 50).
9.11.5.2.11 The WRITE BUFFER command is supported (WRITE BUFFER SUPPORTED bit)
If the WRITE BUFFER SUPPORTED bit (see table 239) is supported is set to one, the WRITE BUFFER command is
supported. If the WRITE BUFFER SUPPORTED bit is supported is cleared to zero, the WRITE BUFFER command is
not supported.
The IDENTIFY DEVICE data contains a copy of the WRITE BUFFER SUPPORTED bit (see IDENTIFY DEVICE data
word 82 in table 50).
9.11.5.2.12 Read look-ahead is supported (READ LOOK-AHEAD SUPPORTED bit)
If the READ LOOK-AHEAD SUPPORTED bit (see table 239) is set to one, read look-ahead is supported. If the READ
LOOK-AHEAD SUPPORTED bit is cleared to zero, read look-ahead is not supported.
The IDENTIFY DEVICE data contains a copy of the READ LOOK-AHEAD SUPPORTED bit (see IDENTIFY DEVICE
data word 82 in table 50).
9.11.5.2.13 The volatile write cache is supported (VOLATILE WRITE CACHE SUPPORTED bit)
If the VOLATILE WRITE CACHE SUPPORTED bit (see table 239) is set to one, volatile write cache is supported. If the
VOLATILE WRITE CACHE SUPPORTED bit is cleared to zero, volatile write cache is not supported.
The IDENTIFY DEVICE data contains a copy of the VOLATILE WRITE CACHE SUPPORTED bit (see IDENTIFY
DEVICE data word 82 in table 50).
9.11.5.2.14 The SMART feature set is supported (SMART bit)
If the SMART bit (see table 239) is set to one, the SMART feature set is supported. If the SMART bit is cleared to
zero, the SMART feature set is not supported.
The IDENTIFY DEVICE data contains a copy of the SMART bit (see IDENTIFY DEVICE data word 82 in table 50).
9.11.5.2.15 The FLUSH CACHE EXT command is supported (FLUSH CACHE EXT SUPPORTED bit)
If the FLUSH CACHE EXT SUPPORTED bit (see table 239) is set to one, the FLUSH CACHE EXT command
(see 7.11) is supported. If the FLUSH CACHE EXT SUPPORTED bit is cleared to zero, the FLUSH CACHE EXT
command is not supported.
The IDENTIFY DEVICE data contains a copy of the FLUSH CACHE EXT SUPPORTED bit (see IDENTIFY DEVICE
data word 83 in table 50).
9.11.5.2.16 The 48-bit Address feature set is supported (48-BIT SUPPORTED bit)
If the 48-BIT SUPPORTED bit (see table 239) is set to one, the 48-bit Address feature set (see 4.3) is supported. If
the 48-BIT SUPPORTED bit is cleared to zero, the 48-bit Address feature set (see 4.3) is not supported.
The IDENTIFY DEVICE data contains a copy of the 48-BIT SUPPORTED bit (see IDENTIFY DEVICE data word 83
in table 50).
9.11.5.2.17 SET FEATURES subcommand is required to spin-up after power-up (SPIN-UP SUPPORTED bit)
If the SPIN-UP SUPPORTED bit (see table 239) is set to one, the device requires the SET FEATURES subcommand
to spin-up after power-up if the PUIS feature set is enabled (see 7.41.7). If the SPIN-UP SUPPORTED bit is cleared
to zero, the device does not require the SET FEATURES subcommand to spin-up after power-up.
The IDENTIFY DEVICE data contains a copy of the SPIN-UP SUPPORTED bit (see IDENTIFY DEVICE data word
83 in table 50).
The IDENTIFY DEVICE data contains a copy of the APM SUPPORTED bit (see IDENTIFY DEVICE data word 83 in
table 50).
9.11.5.2.20 The DOWNLOAD MICROCODE command is supported (DOWNLOAD MICROCODE SUPPORTED bit)
If the DOWNLOAD MICROCODE SUPPORTED bit (see table 239) is set to one, the DOWNLOAD MICROCODE
command is supported. If the DOWNLOAD MICROCODE SUPPORTED bit is cleared to zero, the DOWNLOAD
MICROCODE command is not supported.
The IDENTIFY DEVICE data contains a copy of the DOWNLOAD MICROCODE SUPPORTED bit (see IDENTIFY
DEVICE data word 83 in table 50).
9.11.5.2.21 The IDLE IMMEDIATE command with UNLOAD feature is supported (UNLOAD SUPPORTED bit)
If the UNLOAD SUPPORTED bit (see table 239) is set to one, the IDLE IMMEDIATE command with unload feature
(see 7.14.2.2) is supported. If the UNLOAD SUPPORTED bit is cleared to zero, the IDLE IMMEDIATE command with
unload feature (see 7.14.2.2) is not supported.
The IDENTIFY DEVICE data contains a copy of the UNLOAD SUPPORTED bit (see IDENTIFY DEVICE data word
84 in table 50).
9.11.5.2.22 The WRITE DMA FUA EXT command is supported (WRITE FUA EXT SUPPORTED bit)
The WRITE FUA EXT SUPPORTED bit (see table 239) shall be set to one if:
a) the 48-BIT SUPPORTED bit (see 9.11.5.2.16) is set to one; and
b) the WRITE DMA FUA EXT command (see 7.56) is supported.
Otherwise, the WRITE FUA EXT SUPPORTED bit shall be cleared to zero.
The IDENTIFY DEVICE data contains a copy of the WRITE FUA EXT SUPPORTED bit (see IDENTIFY DEVICE data
word 84 in table 50).
9.11.5.2.23 The GPL feature set is supported (GPL SUPPORTED bit)
If the GPL SUPPORTED bit (see table 239) is set to one, the GPL feature set (see 4.11) is supported. If the GPL
SUPPORTED bit is cleared to zero, the GPL feature set is not supported.
The IDENTIFY DEVICE data contains a copy of the GPL SUPPORTED bit (see IDENTIFY DEVICE data word 84 in
table 50).
9.11.5.2.24 The Streaming feature set is supported (STREAMING SUPPORTED bit)
If the STREAMING SUPPORTED bit (see table 239) is set to one, the Streaming feature set (see 4.25) is supported.
If the STREAMING SUPPORTED bit is cleared to zero, the Streaming feature set is not supported.
The IDENTIFY DEVICE data contains a copy of the STREAMING SUPPORTED bit (see IDENTIFY DEVICE data
word 84 in table 50).
9.11.5.2.25 The SMART self-test is supported (SMART SELF-TEST SUPPORTED bit)
If the SMART SELF-TEST SUPPORTED bit (see table 239) is set to one, SMART self-test is supported. If the SMART
SELF-TEST SUPPORTED bit is cleared to zero, SMART self-test is not supported.
This bit is valid if the SMART bit (see 9.11.5.2.14) is set to one indicating that the SMART feature set is supported.
The IDENTIFY DEVICE data contains a copy of the SMART SELF-TEST SUPPORTED bit (see IDENTIFY DEVICE
data word 84 in table 50).
9.11.5.2.26 SMART error logging is supported (SMART ERROR LOGGING SUPPORTED bit)
If the SMART ERROR LOGGING SUPPORTED bit (see table 239) is set to one, SMART error logging is supported.
If the SMART ERROR LOGGING SUPPORTED bit (see table 239) is cleared to zero, SMART error logging is not
supported.
This bit is valid if the SMART bit (see 9.11.5.2.14) is set to one indicating that the SMART feature set is supported.
The IDENTIFY DEVICE data contains a copy of the SMART ERROR LOGGING SUPPORTED bit (see IDENTIFY
DEVICE data word 84 in table 50).
9.11.5.2.27 Extended Power Conditions feature set is supported (EPC SUPPORTED bit)
If the EPC SUPPORTED bit (see table 239) is set to one, the Extended Power Conditions feature set (see 4.9)
is supported. If the EPC SUPPORTED bit is cleared to zero, the Extended Power Conditions feature set is not
supported.
If the EPC SUPPORTED bit is cleared to zero, then:
a) the LOW POWER STANDBY SUPPORTED bit (see 9.11.5.2.36) shall be cleared to zero; and
b) the SET EPC POWER SOURCE SUPPORTED bit (see 9.11.5.2.35) shall be cleared to zero.
The IDENTIFY DEVICE data contains a copy of the EPC SUPPORTED bit (see IDENTIFY DEVICE data word 119 in
table 50).
9.11.5.2.28 Sense Data Reporting feature set is supported (SENSE DATA SUPPORTED bit)
If the SENSE DATA SUPPORTED bit (see table 239) is set to one, the Sense Data Reporting feature set (see 4.23) is
supported. If the SENSE DATA SUPPORTED bit is cleared to zero, the Sense Data Reporting feature set is not
supported.
The IDENTIFY DEVICE data contains a copy of the SENSE DATA SUPPORTED bit (see IDENTIFY DEVICE data
word 119 in table 50).
9.11.5.2.29 The Free-fall Control feature set is supported (FREE-FALL SUPPORTED bit)
If the FREE-FALL SUPPORTED bit (see table 239) is set to one, the Free-fall Control feature set (see 4.10) is
supported. If the FREE-FALL SUPPORTED bit is cleared to zero, the Free-fall Control feature set (see 4.10) is
not supported.
The IDENTIFY DEVICE data contains a copy of the FREE-FALL SUPPORTED bit (see IDENTIFY DEVICE data word
119 in table 50).
9.11.5.2.30 The DOWNLOAD MICROCODE command with mode 3 is supported (DM MODE 3 SUPPORTED bit)
If the DM MODE 3 SUPPORTED bit (see table 239) is set to one, the DOWNLOAD MICROCODE command (see 7.7)
and the DOWNLOAD MICROCODE DMA command (see 7.8) requesting the offset transfer method are
supported. Otherwise, the DM MODE 3 SUPPORTED bit is cleared to zero.
The IDENTIFY DEVICE data contains a copy of the DM MODE 3 SUPPORTED bit (see IDENTIFY DEVICE data
word 119 in table 50).
9.11.5.2.31 The READ LOG DMA EXT and WRITE LOG DMA EXT commands are supported (GPL DMA SUP-
PORTED bit)
If the GPL DMA SUPPORTED bit (see table 239) is set to one, the READ LOG DMA EXT command (see 7.23) and
WRITE LOG DMA EXT command (see 7.59) are supported. Otherwise, the GPL DMA SUPPORTED bit is cleared to
zero.
If the GPL SUPPORTED bit (see 9.11.5.2.23) is cleared to zero, the GPL DMA SUPPORTED bit shall be cleared to zero.
The IDENTIFY DEVICE data contains a copy of the GPL DMA SUPPORTED bit (see IDENTIFY DEVICE data word
119 in table 50).
9.11.5.2.32 The WRITE UNCORRECTABLE EXT command is supported (WRITE UNCORRECTABLE SUPPORTED
bit)
If the WRITE UNCORRECTABLE SUPPORTED bit (see table 239) is set to one, the WRITE UNCORRECTABLE EXT
command (see 7.64) is supported. If the WRITE UNCORRECTABLE SUPPORTED bit is cleared to zero, the WRITE
UNCORRECTABLE EXT command is not supported.
The IDENTIFY DEVICE data contains a copy of the WRITE UNCORRECTABLE SUPPORTED bit (see IDENTIFY
DEVICE data word 119 in table 50).
9.11.5.2.33 The Write-Read-Verify feature set is supported (WRV SUPPORTED bit)
If the WRV SUPPORTED bit (see table 239) is set to one, the Write-Read-Verify feature set (see 4.27) is supported.
If the WRV SUPPORTED bit is cleared to zero, the Write-Read-Verify feature set is not supported.
The IDENTIFY DEVICE data contains a copy of the WRV SUPPORTED bit (see IDENTIFY DEVICE data word 119
in table 50).
9.11.5.2.34 Accessible Max Address Configuration feature set is supported (AMAX ADDR SUPPORTED bit)
If the AMAX ADDR SUPPORTED bit (see table 239) is set to one, the Accessible Max Address Configuration feature
set (see 4.4) is supported. If the AMAX ADDR SUPPORTED bit is cleared to zero, the Accessible Max Address
Configuration feature set is not supported.
The IDENTIFY DEVICE data contains a copy of the AMAX ADDR SUPPORTED bit (see IDENTIFY DEVICE data
word 119 in table 50).
9.11.5.2.35 Set EPC Power Source is supported (SET EPC POWER SOURCE SUPPORTED bit)
If the SET EPC POWER SOURCE SUPPORTED bit (see table 239) is set to one, the Set EPC Power Source function
(see 7.41.19.8) is supported. If the SET EPC POWER SOURCE SUPPORTED bit is cleared to zero, the Set EPC Power
Source function is not supported.
9.11.5.2.36 Low Power Standby is supported (LOW POWER STANDBY SUPPORTED bit)
If the LOW POWER STANDBY SUPPORTED bit is set to one, the device supports the HOLD POWER CONDITION bit and
the DELAYED ENTRY bit in the EPC Go To Power Condition subcommand (see 7.41.19.3). If the LOW POWER
STANDBY SUPPORTED bit is cleared to zero, the device does not support the HOLD POWER CONDITION bit and the
DELAYED ENTRY bit in the EPC Go To Power Condition subcommand.
The IDENTIFY DEVICE data contains a copy of the DSN SUPPORTED bit (see IDENTIFY DEVICE data word 119 in
table 50).
9.11.5.2.38 Request Sense Device Fault Support (REQUEST SENSE DEVICE FAULT SUPPORTED bit)
If the REQUEST SENSE DEVICE FAULT SUPPORTED bit (see table 239) is set to one, the device supports returning
normal outputs for the REQUEST SENSE DATA EXT command (see 7.31) while the device is in a device fault
condition (see 6.2.6).
If the REQUEST SENSE DEVICE FAULT SUPPORTED bit is cleared to zero, the device does not support returning
normal outputs for the REQUEST SENSE DATA EXT command while the device is in a device fault condition.
9.11.5.2.39 DLC SUPPORTED bit
If the DLC SUPPORTED bit set to one, the device supports the SET FEATURES subcommand to Enable device life
control (see 7.41.9) and SET FEATURES subcommand to Disable device life control. If the DLC SUPPORTED bit is
cleared to zero, the device does not support the SET FEATURES subcommand to Enable device life control and
SET FEATURES subcommand to Disable device life control.
9.11.5.2.40 SUCCESSFUL NCQ COMMAND SENSE DATA SUPPORTED bit
A SUCCESSFUL NCQ COMMAND SENSE DATA SUPPORTED bit set to one indicates that the device supports returning
sense data (see 4.23) for NCQ commands (see 4.15) that the device completes without an error using the Sense
Data for Successful NCQ Commands log (see 9.29) as defined in 4.15.7. A SUCCESSFUL NCQ COMMAND SENSE
DATA SUPPORTED bit cleared to zero indicates that the device does not support returning sense data for NCQ
commands that complete without errors.
The SUCCESSFUL NCQ COMMAND SENSE DATA SUPPORTED bit shall be cleared to zero if:
a) the SENSE DATA SUPPORTED bit (see 9.11.5.2.28) is cleared to zero;
b) the NCQ FEATURE SET SUPPORTED bit (see 9.11.10.2.4) is cleared to zero;
c) the NCQ AUTOSENSE SUPPORTED bit (see 9.11.10.2.21) is cleared to zero; or
d) the QUEUED READ LOG DMA EXT SUPPORTED bit (see 9.18.8) is cleared to zero.
9.11.5.2.41 ZERO EXT command is supported (ZERO EXT SUPPORTED bit)
If the ZERO EXT SUPPORTED bit (see table 239) is set to one, the device supports the ZERO EXT command
(see 7.65). If the ZERO EXT SUPPORTED bit is cleared to zero, the device does not support the ZERO EXT
command.
9.11.5.2.42 Set Sector Configuration command is supported (SET SECTOR CONFIGURATION SUPPORTED bit)
If the SET SECTOR CONFIGURATION SUPPORTED bit (see table 239) is set to one, the device supports the SET
SECTOR CONFIGURATION command (see 7.42). If the SET SECTOR CONFIGURATION SUPPORTED bit is cleared
to zero, the device does not support the SET SECTOR CONFIGURATION command.
9.11.5.2.43 DATA SET MANAGEMENT XL SUPPORTED bit
If the DATA SET MANAGEMENT XL SUPPORTED bit (see table 239) is set to one, the DATA SET MANAGEMENT XL
command (see 7.6) is supported. If the DATA SET MANAGEMENT XL SUPPORTED bit is cleared to zero, the DATA
SET MANAGEMENT XL command is not supported.
9.11.5.2.44 DEFINITIVE ENDING PATTERN SUPPORTED bit
If the DEFINITIVE ENDING PATTERN SUPPORTED bit (see table 239) is set to one, the device shall process the
DEFINITIVE ENDING PATTERN bit input to the OVERWRITE EXT command as described in 7.32.4.3.3. If the
DEFINITIVE ENDING PATTERN SUPPORTED bit is cleared to zero, the device shall ignore the DEFINITIVE ENDING
PATTERN bit input to the OVERWRITE EXT command.
If the device processes a DOWNLOAD MICROCODE command (see 7.7) or a DOWNLOAD MICROCODE DMA
command (see 7.8) that specifies a subcommand of:
a) Download with offsets and save microcode for immediate and future use (i.e., 03h); or
b) Download with offsets and save microcode for future use (i.e., 0Eh),
then:
a) if the DM CLEARS NONACTIVATED DEFERRED DATA bit (see table 239) is set to one, any deferred microcode
data that has not been activated shall be discarded; or
b) if the DM CLEARS NONACTIVATED DEFERRED DATA bit is cleared to zero, any deferred microcode data that
has not been activated shall be retained.
9.11.5.3.2 Subcommands 0Eh and 0Fh are supported (DM OFFSETS DEFERRED SUPPORTED bit)
If the DM OFFSETS DEFERRED SUPPORTED bit (see table 239) is set to one, then:
a) if the DOWNLOAD MICROCODE command is supported (i.e., the DOWNLOAD MICROCODE SUPPORTED bit
(see 9.11.5.2.20) is set to one), then the device supports subcommands 0Eh and 0Fh (see 7.7.2.4 and
7.7.2.5) of the DOWNLOAD MICROCODE command; and
b) if the DOWNLOAD MICROCODE DMA command is supported (i.e., the DOWNLOAD MICROCODE DMA
SUPPORTED bit (see 9.11.5.2.6) is set to one), then the device supports subcommands 0Eh and 0Fh
(see 7.7.2.4 and 7.7.2.5) of the DOWNLOAD MICROCODE DMA command.
Otherwise, the DM OFFSETS DEFERRED SUPPORTED bit is cleared to zero.
9.11.5.3.3 Subcommand 07h is supported (DM IMMEDIATE SUPPORTED bit)
If the DM IMMEDIATE SUPPORTED bit (see table 239) is set to one, then:
a) if the DOWNLOAD MICROCODE command is supported (i.e., the DOWNLOAD MICROCODE SUPPORTED bit
(see 9.11.5.2.20) is set to one), then the device supports subcommand 07h (see 7.7.2.3) of the
DOWNLOAD MICROCODE command; and
b) if the DOWNLOAD MICROCODE DMA command is supported (i.e., the DOWNLOAD MICROCODE DMA
SUPPORTED bit (see 9.11.5.2.6) is set to one), then the device supports subcommand 07h (see 7.7.2.3) of
the DOWNLOAD MICROCODE DMA command.
Otherwise, the DM IMMEDIATE SUPPORTED bit is cleared to zero.
9.11.5.3.4 Subcommand 03h is supported (DM OFFSETS IMMEDIATE SUPPORTED bit)
If the DM OFFSETS IMMEDIATE SUPPORTED bit (see table 239) is set to one, then:
a) if the DOWNLOAD MICROCODE command is supported (i.e., the DOWNLOAD MICROCODE SUPPORTED bit
(see 9.11.5.2.20) is set to one), then the device supports subcommand 03h (see 7.7.2.2) of the
DOWNLOAD MICROCODE command; and
b) if the DOWNLOAD MICROCODE DMA command is supported (i.e., the DOWNLOAD MICROCODE DMA
SUPPORTED bit (see 9.11.5.2.6) is set to one), then the device supports subcommand 03h (see 7.7.2.2) of
the DOWNLOAD MICROCODE DMA command.
Otherwise, the DM OFFSETS IMMEDIATE SUPPORTED bit is cleared to zero.
9.11.5.3.5 DM MAXIMUM TRANSFER SIZE field
If:
a) the value of the DM MAXIMUM TRANSFER SIZE field (see table 239) is greater than zero;
b) the value of the DM MAXIMUM TRANSFER SIZE field is less than FFFFh;
c) the DOWNLOAD MICROCODE SUPPORTED bit (see 9.11.5.2.20) is set to one or the DOWNLOAD MICROCODE
DMA SUPPORTED bit (see 9.11.5.2.6) is set to one; and
d) the DM OFFSETS DEFERRED SUPPORTED bit (see 9.11.5.3.2) is set to one, or the DM OFFSETS IMMEDIATE
SUPPORTED bit (see 9.11.5.3.4) is set to one,
then the DM MAXIMUM TRANSFER SIZE field indicates the maximum number of 512-byte data blocks permitted by a
DOWNLOAD MICROCODE command (see 7.7) or a DOWNLOAD MICROCODE DMA command (see 7.8) that
specifies a subcommand of:
a) Download with offsets and save microcode for immediate and future use (i.e., 03h); or
b) Download with offsets and save microcode for future use (i.e., 0Eh).
Otherwise, no maximum is indicated (i.e., there is no maximum number of 512-byte data blocks).
The IDENTIFY DEVICE data contains a copy of the DM MAXIMUM TRANSFER SIZE field (see IDENTIFY DEVICE
data word 235 in table 50).
9.11.5.3.6 DM MINIMUM TRANSFER SIZE field
If:
a) the value of the DM MINIMUM TRANSFER SIZE field (see table 239) is greater than zero;
b) the value of the DM MINIMUM TRANSFER SIZE field is less than FFFFh;
c) the DOWNLOAD MICROCODE SUPPORTED bit (see 9.11.5.2.20) is set to one or the DOWNLOAD MICROCODE
DMA SUPPORTED bit (see 9.11.5.2.6) is set to one; and
d) the DM OFFSETS DEFERRED SUPPORTED bit (see 9.11.5.3.2) is set to one, or the DM OFFSETS IMMEDIATE
SUPPORTED bit (see 9.11.5.3.4) is set to one,
then the DM MINIMUM TRANSFER SIZE field indicates the minimum number of 512-byte data blocks permitted by a
DOWNLOAD MICROCODE command (see 7.7) or a DOWNLOAD MICROCODE DMA command (see 7.8) that
specifies a subcommand of:
a) Download with offsets and save microcode for immediate and future use (i.e., 03h); or
b) Download with offsets and save microcode for future use (i.e., 0Eh).
Otherwise, no minimum is indicated (i.e., there is no minimum number of 512-byte data blocks).
The IDENTIFY DEVICE data contains a copy of the DM MINIMUM TRANSFER SIZE field (see IDENTIFY DEVICE
data word 234 in table 50).
9.11.5.4 NOMINAL MEDIA ROTATION RATE field
The NOMINAL MEDIA ROTATION RATE field (see table 239) indicates the nominal media rotation rate of the device
and is defined in table 240.
Value Description
0000h Rate not reported
0001h Non-rotating media (e.g., solid state device)
0002h-0400h Reserved
0401h-FFFEh Nominal media rotation rate in rotations per minute (rpm) (e.g., 7 200 rpm = 1C20h)
FFFFh Reserved
The IDENTIFY DEVICE data contains a copy of the NOMINAL MEDIA ROTATION RATE field (see IDENTIFY DEVICE
data word 217 in table 50).
Value Description a
0h Form factor not reported
all others Reserved
Dimensional Form Factor
1h 5.25 inch nominal form factor
2h 3.5 inch nominal form factor
3h 2.5 inch nominal form factor
4h 1.8 inch nominal form factor
5h Less than 1.8 inch nominal form factor
Connector Form Factor
6h mSATA (see SATA 3.2)
7h M.2 (see SATA 3.2)
8h MicroSSD (see SATA 3.2)
9h CFast
a If the connector form factor of the device is
shown in this table, then the device should
report the connector form factor.
The IDENTIFY DEVICE data contains a copy of the NOMINAL FORM FACTOR field (see IDENTIFY DEVICE data
word 168 in table 50).
9.11.5.6 Write-Read-Verify Sector Mode 3 Count (WRV MODE 3 COUNT field)
The WRV MODE 3 COUNT field (see table 239) shall indicate the number of logical sectors to be verified after every
spin-up, if Write-Read-Verify feature set mode 3 is selected (i.e., Current mode of the Write-Read-Verify feature
set (see 9.11.6.3.3) is 03h). This field is valid if the WRV ENABLED bit (see 9.11.6.2.15) is set to one and Current
mode of the Write-Read-Verify feature set (see 9.11.6.3.3) is 03h.
The IDENTIFY DEVICE data contains a copy of the WRV MODE 3 COUNT field (see IDENTIFY DEVICE data words
210..211 in table 50).
9.11.5.7 Write-Read-Verify Sector Count Mode 2 (WRV MODE 2 COUNT field)
The WRV MODE 2 COUNT field (see table 239) is valid if the WRV ENABLED bit (see 9.11.6.2.15) is set to one. The
WRV MODE 2 COUNT field shall indicate the number of logical sectors to be verified after every spin-up, with
Write-Read-Verify feature set mode 2 selected (i.e., Current mode of the Write-Read-Verify feature set
(see 9.11.6.3.3) is 02h).
The IDENTIFY DEVICE data contains a copy of the WRV MODE 2 COUNT field (see IDENTIFY DEVICE data words
212..213 in table 50).
9.11.5.8 World Wide Name (WORLD WIDE NAME field)
9.11.5.8.1 Introduction
The World Wide Name (WWN) uses the NAA IEEE Registered designator format defined in SPC-4 with the NAA
field set to 5h.
Note – Specified bit numbers (e.g., "(LSB) bit 0") are in relationship to the field in which they appear.
The NAA field indicates the format of the world wide name (see SPC-4) and shall be set as shown in table 242.
The IEEE OUI field shall contain the 24-bit canonical form company identifier (i.e., OUI) that the IEEE has assigned
to the device manufacturer.
The UNIQUE ID field shall contain a value assigned by the device manufacturer that is unique for the device within
the OUI domain.
9.11.5.8.3 Supported Capabilities WORLD WIDE NAME field
In the Supported Capabilities log page (see table 239), the WORLD WIDE NAME field shall have the format defined
in 9.11.5.8.2.
9.11.5.8.4 IDENTIFY DEVICE data WWN
In the IDENTIFY DEVICE data (see 7.12.6):
a) Word 108 bits 15:12 shall contain the NAA field (see 9.11.5.8.2);
b) Word 108 bits 11:0 and word 109 bits 15:4 shall contain the IEEE OUI field (see 9.11.5.8.2); and
c) Word 109 bits 3:0, word 110, and word 111 shall contain the UNIQUE ID field (see 9.11.5.8.2).
The IDENTIFY DEVICE data WWN is shown by word number in table 243.
Note – Specified bit numbers (e.g., "(LSB) bit 0") are in relationship to the field in which they appear.
The IDENTIFY DEVICE data WWN is shown by byte number in table 244.
Word Offset 7 6 5 4 3 2 1 0
Note – Specified bit numbers (e.g., "(LSB) bit 0") are in relationship to the field in which they appear.
Code Description
00h No logical block markup descriptor values are supported.
01h The SCSI Block Commands logical block markup descriptor format
(see 9.11.5.9.1.2) is supported.
C0h Only the operating system file logical block markup descriptor values
(see 9.11.5.9.1.3) are supported.
All others Reserved
Table 246 — SCSI Block Commands logical block markup descriptor format
Table 247 — Operating system file logical block markup descriptor values
Value Description
01h Combined writes and reads: the UTILIZATION A field contains designed number
of host requested write operations and host requested read operations. The
UTILIZATION B field is reserved.
02h Writes only: the UTILIZATION A field contains designed number of host requested
write operations. The UTILIZATION B field is reserved.
03h Separate writes and reads: the UTILIZATION A field contains designed number of
host requested write operations. The UTILIZATION B field contains designed
number of host requested read operations.
all other values Reserved
Value Description
02h megabytes
03h gigabytes
04h terabytes
05h petabytes
06h exabytes
all other values Reserved
Value Description
0Ah per day
0Eh per year
all other values Reserved
Value Description
00b Not reported
01b Device supports the Host Aware Zones feature set (see ZAC)
10b Device supports device managed zoned device capabilities
11b Reserved
A device managed zoned device supports commands defined by this standard and shall:
a) support the following commands defined by ZAC:
A) REPORT ZONES EXT; and
B) RESET WRITE POINTERS EXT;
or
b) not support any commands defined by ZAC.
9.11.5.13 Supported ZAC Capabilities
9.11.5.13.1 REPORT ZONES EXT SUPPORTED bit
A REPORT ZONES EXT SUPPORTED bit set to one indicates that the device supports the REPORT ZONES EXT
command (see ZAC). A REPORT ZONES EXT SUPPORTED bit cleared to zero indicates that the device does not
support the REPORT ZONES EXT command.
9.11.5.13.2 NON-DATA OPEN ZONE EXT SUPPORTED bit
A NON-DATA OPEN ZONE EXT SUPPORTED bit set to one indicates that the device supports the OPEN ZONE EXT
command (see ZAC). A NON-DATA OPEN ZONE EXT SUPPORTED bit cleared to zero indicates that the device does
not support the OPEN ZONE EXT command.
9.11.5.13.3 NON-DATA CLOSE ZONE EXT SUPPORTED bit
A NON-DATA CLOSE ZONE EXT SUPPORTED bit set to one indicates that the device supports the CLOSE ZONE EXT
command (see ZAC). A NON-DATA CLOSE ZONE EXT SUPPORTED bit cleared to zero indicates that the device does
not support the CLOSE ZONE EXT command.
9.11.5.13.4 NON-DATA FINISH ZONE EXT SUPPORTED bit
A NON-DATA FINISH ZONE EXT SUPPORTED bit set to one indicates that the device supports the FINISH ZONE EXT
command (see ZAC). A NON-DATA FINISH ZONE EXT SUPPORTED bit cleared to zero indicates that the device does
not support the FINISH ZONE EXT command.
9.11.5.13.5 NON-DATA RESET WRITE POINTERS EXT SUPPORTED bit
A NON-DATA RESET WRITE POINTERS EXT SUPPORTED bit set to one indicates that the device supports the RESET
WRITE POINTERS EXT command (see ZAC). A NON-DATA RESET WRITE POINTERS EXT SUPPORTED bit cleared to
zero indicates that the device does not support the RESET WRITE POINTERS EXT command.
The IDENTIFY DEVICE data contains a copy of the EPC ENABLED bit (see IDENTIFY DEVICE data word 120 in
table 50).
9.11.6.2.6 Volatile write cache is enabled (VOLATILE WRITE CACHE ENABLED bit)
If the VOLATILE WRITE CACHE ENABLED bit (see table 252) is set to one, then volatile write cache is enabled
(see 7.41.3). If the VOLATILE WRITE CACHE ENABLED bit is cleared to zero, then volatile write cache is disabled.
The VOLATILE WRITE CACHE ENABLED bit is only valid if the VOLATILE WRITE CACHE SUPPORTED bit (see 9.11.5.2.13)
is set to one (i.e., write cache is supported).
The IDENTIFY DEVICE data contains a copy of the VOLATILE WRITE CACHE ENABLED bit (see IDENTIFY DEVICE
data word 85 in table 50).
9.11.6.2.7 Reverting to defaults is enabled (REVERTING TO DEFAULTS ENABLED bit)
If the REVERTING TO DEFAULTS ENABLED bit (see table 252) is set to one, then Reverting to defaults is enabled
(see 7.41.13). If the REVERTING TO DEFAULTS ENABLED bit is cleared to zero, then Reverting to defaults is
disabled.
9.11.6.2.8 Sense Data Reporting is enabled (SENSE DATA ENABLED bit)
If the SENSE DATA ENABLED bit (see table 252) is set to one, the Sense Data Reporting feature set (see 4.23) is
enabled. If the SENSE DATA ENABLED bit is cleared to zero, the Sense Data Reporting feature set is disabled.
The IDENTIFY DEVICE data contains a copy of the SENSE DATA ENABLED bit (see IDENTIFY DEVICE data word
120 in table 50).
9.11.6.2.9 All write cache is non-volatile (NON-VOLATILE WRITE CACHE bit)
If the NON-VOLATILE WRITE CACHE bit (see table 252) is set to one, then all of the write cache on the device is
non-volatile. If the NON-VOLATILE WRITE CACHE bit is cleared to zero, then the write cache may be volatile.
If the write cache changes from non-volatile to volatile, then the device should disable the volatile write cache.
The IDENTIFY DEVICE data contains a copy of the NON-VOLATILE WRITE CACHE bit (see IDENTIFY DEVICE data
word 69 in table 50).
9.11.6.2.10 Read look-ahead is enabled (READ LOOK-AHEAD ENABLED bit)
If the READ LOOK-AHEAD ENABLED bit (see table 252) is set to one, then read look-ahead is enabled (see 7.41.12).
If the READ LOOK-AHEAD ENABLED bit is cleared to zero, then read look-ahead is disabled. The READ LOOK-AHEAD
ENABLED bit is valid if the READ LOOK-AHEAD SUPPORTED bit (see 9.11.5.2.12) is set to one indicating read
look-ahead is supported.
The IDENTIFY DEVICE data contains a copy of the READ LOOK-AHEAD ENABLED bit (see IDENTIFY DEVICE data
word 85 in table 50).
9.11.6.2.11 The SMART feature set is enabled (SMART ENABLED bit)
If the SMART ENABLED bit (see table 252) is set to one, then the SMART feature set is enabled (see ACS-3). If the
SMART ENABLED bit is cleared to zero, then the SMART feature set is disabled. The SMART ENABLED bit is valid if
SMART bit (see 9.11.5.2.14) is set to one indicating SMART feature set is supported.
The IDENTIFY DEVICE data contains a copy of the SMART ENABLED bit (see IDENTIFY DEVICE data word 85 in
table 50).
9.11.6.2.12 The PUIS feature set is enabled (PUIS ENABLED bit)
If the PUIS ENABLED bit (see table 252) is set to one, then the PUIS feature set is enabled (see 7.41.6). If the PUIS
ENABLED bit is cleared to zero, then the PUIS feature set is disabled.
The PUIS ENABLED bit is only valid if the PUIS SUPPORTED bit (see 9.11.5.2.18) is set to one (i.e., the PUIS feature
set is supported).
The IDENTIFY DEVICE data contains a copy of the PUIS ENABLED bit (see IDENTIFY DEVICE data word 86 in
table 50).
9.11.6.2.13 The APM feature set is enabled (APM ENABLED bit)
If the APM ENABLED bit (see table 252) is set to one, then the APM feature set is enabled (see 7.41.5). If the APM
ENABLED bit is cleared to zero, the APM feature set is disabled.
The IDENTIFY DEVICE data contains a copy of the APM ENABLED bit (see IDENTIFY DEVICE data word 86 in
table 50).
9.11.6.2.14 The Free-fall Control feature set is enabled (FREE-FALL ENABLED bit)
If the FREE-FALL ENABLED bit (see table 252) is set to one, then the Free-fall Control feature set (see 4.10) is
enabled. If the FREE-FALL ENABLED bit is cleared to zero, then the Free-fall Control feature set is disabled.
The IDENTIFY DEVICE data contains a copy of the FREE-FALL ENABLED bit (see IDENTIFY DEVICE data word
120 in table 50).
9.11.6.2.15 The Write-Read-Verify feature set is enabled (WRV ENABLED bit)
If the WRV ENABLED bit (see table 252) is set to one, then the Write-Read-Verify feature set (see 4.27) is enabled.
If the WRV ENABLED bit is cleared to zero, then the Write-Read-Verify feature set is disabled.
The IDENTIFY DEVICE data contains a copy of the WRV ENABLED bit (see IDENTIFY DEVICE data word 120 in
table 50).
9.11.6.3 Feature Settings
9.11.6.3.1 Power Source (POWER SOURCE field)
The POWER SOURCE field (see table 253) indicates the current source of power set by the host.
Value Description
00b Unknown
01b Battery
10b Not Battery
11b Reserved
If the device has not processed a SET FEATURES command with the EPC Subcommand and the Set EPC
Power Source function (see 7.41.19.8), then the device shall indicate a value of 00b (i.e., Unknown).
9.11.6.3.2 APM Level (APM LEVEL field)
The APM LEVEL field (see table 252) contains the current APM level setting (see table 114). Support of the APM
LEVELfield is mandatory if the APM feature set (see 4.6) is supported. The APM LEVEL field is only valid if the APM
SUPPORTED bit (see 9.11.5.2.19) is set to one and the APM ENABLED bit (see 9.11.6.2.13) is set to one.
The IDENTIFY DEVICE data contains a copy of the APM LEVEL field (see IDENTIFY DEVICE data word 91 in
table 50).
9.11.6.3.3 Current mode of the Write-Read-Verify feature set (WRV MODE field)
The WRV MODE field (see table 252) contains the current mode of the Write-Read-Verify feature set, as set by the
SET FEATURES Enable/Disable Write-Read-Verify subcommand. See 7.41.8 for more information on setting
Write-Read-Verify mode.
The IDENTIFY DEVICE data contains a copy of the WRV MODE field (see IDENTIFY DEVICE data word 220 in
table 50).
9.11.6.4 DMA Host Interface Sector Times (DMA SECTOR TIME field)
The DMA SECTOR TIME field (see table 252) defines the Streaming Transfer Time for DMA mode. The worst-case
sustainable transfer time per logical sector for the device is calculated as follows:
x y-
Worst Case Sustainable Transfer Time = -----------------
65 536
where:
x = the contents of the STREAM GRANULARITY field (see 9.11.6.8); and
y = Streaming Transfer Time for DMA mode.
The content of the DMA SECTOR TIME field may be affected by the host issuing a Set Maximum Host Interface
Sector Times command (see 7.41.10). As a result, the host should determine the current contents of the DMA
SECTOR TIME field after issuing a SET FEATURES command that may affect this field.
The DMA SECTOR TIME field is valid if the STREAMING SUPPORTED bit (see 9.11.5.2.24) is set to one. If the
STREAMING SUPPORTED bit is cleared to zero, then the DMA SECTOR TIME field shall be cleared to zero.
The IDENTIFY DEVICE data contains a copy of the DMA SECTOR TIME field (see IDENTIFY DEVICE data word 96
in table 50).
9.11.6.5 PIO Host Interface Sector Times (PIO SECTOR TIME field)
The PIO SECTOR TIME field (see table 252) defines the Streaming Transfer Time for PIO mode. The worst-case
sustainable transfer time per logical sector for the device is calculated as follows:
xy
Worst Case Sustainable Transfer Time = ------------------
65 536
where:
x = the contents of the STREAM GRANULARITY field (see 9.11.6.8); and
y = Streaming Transfer Time for PIO mode.
The content of the PIO SECTOR TIME field may be affected by the host issuing a Set Maximum Host Interface
Sector Times command (see 7.41.10). As a result, the host should determine the current contents of the PIO
SECTOR TIME field after issuing a SET FEATURES command that may affect this field.
The PIO SECTOR TIME field is valid if the STREAMING SUPPORTED bit (see 9.11.5.2.24) is set to one. If the
STREAMING SUPPORTED bit is cleared to zero, then the PIO SECTOR TIME field shall be cleared to zero.
The IDENTIFY DEVICE data contains a copy of the PIO SECTOR TIME field (see IDENTIFY DEVICE data word 104
in table 50).
9.11.6.6 Streaming minimum request size (STREAM MIN REQUEST SIZE field)
The STREAM MIN REQUEST SIZE field (see table 252) contains the number of logical sectors that provides optimum
performance in a streaming environment. This number shall be a power of two, with a minimum of eight logical
sectors. The starting LBA value for each streaming command should be evenly divisible by this request size.
The STREAM MIN REQUEST SIZE field is valid if the STREAMING SUPPORTED bit (see 9.11.5.2.24) is set to one. If the
STREAMING SUPPORTED bit is cleared to zero, then the STREAM MIN REQUEST SIZE field shall be cleared to zero.
The IDENTIFY DEVICE data contains a copy of the STREAM MIN REQUEST SIZE field (see IDENTIFY DEVICE data
word 95 in table 50).
9.11.6.7 Streaming access latency (STREAM ACCESS LATENCY field)
The STREAM ACCESS LATENCY field (see table 252) defines the Streaming Access Latency for DMA and PIO
mode. The worst-case access latency of the device for a streaming command is calculated as follows:
y-
Worst Case Access Latency = x-----------
256
where:
x = the contents of the STREAM GRANULARITY field (see 9.11.6.8); and
y = Streaming Access Latency for DMA and PIO mode.
The content of the STREAM ACCESS LATENCY field may be affected by the host issuing a Set Maximum Host
Interface Sector Times command (see 7.41.10). As a result, the host should determine the current contents
of the STREAM ACCESS LATENCY field after issuing a SET FEATURES command that may affect this field.
The STREAM ACCESS LATENCY field is valid if the STREAMING SUPPORTED bit (see 9.11.5.2.24) is set to one. If the
STREAMING SUPPORTED bit is cleared to zero, then the STREAM ACCESS LATENCY field shall be cleared to zero.
The IDENTIFY DEVICE data contains a copy of the STREAM ACCESS LATENCY field (see IDENTIFY DEVICE data
word 97 in table 50).
9.11.6.8 Streaming Performance Granularity (STREAM GRANULARITY field)
The STREAM GRANULARITY field (see table 252) defines the fixed unit of time that is used:
a) by the SET FEATURES subcommand Set Maximum Host Interface Sector Times (see 7.41.10) to
compute the:
A) DMA SECTOR TIME field (see 9.11.6.4);
B) PIO SECTOR TIME Field (see 9.11.6.5); and
C) STREAM ACCESS LATENCY field (see 9.11.6.7);
and
b) in the Command Completion Time Limit that is passed in streaming commands.
The unit of time for this parameter shall be in microseconds (e.g., a value of 10 000 indicates 10 ms).
If contents of the STREAM GRANULARITY field are represented by the variable yy, then:
a) the Command Completion Time Limit in the FEATURE field for a streaming command shall be yy
microseconds;
b) the Streaming Transfer Time shall be:
A) ((contents of the DMA SECTOR TIME field (see 9.11.6.4)) (yy / 65 536)) microseconds; or
B) ((contents of the PIO SECTOR TIME Field (see 9.11.6.5)) (yy / 65 536)) microseconds;
c) the Streaming Access Latency shall be ((contents of the STREAM ACCESS LATENCY field
(see 9.11.6.7)) (yy / 256)) microseconds; and
d) taking these units into account, the host may calculate the estimated time for a streaming command
of size S logical sectors as:
A) for PIO (((contents of the PIO SECTOR TIME Field) S / 65 536) + ((contents of the STREAM ACCESS
LATENCY field)/ 256)) yy microseconds; or
B) for DMA (((contents of the DMA SECTOR TIME field) S / 65 536) + ((contents of the STREAM ACCESS
LATENCY field) / 256)) yy microseconds.
The contents of the STREAM GRANULARITY field is vendor specific and fixed for a device.
The STREAM GRANULARITY field is valid if the STREAMING SUPPORTED bit (see 9.11.5.2.24) is set to one.
The IDENTIFY DEVICE data contains a copy of the STREAM GRANULARITY field (see IDENTIFY DEVICE data
words 98..99 in table 50).
9.11.6.9 Free-fall Control Sensitivity (FREE-FALL SENSITIVITY field)
The FREE-FALL SENSITIVITY field (see table 252) indicates sensitivity of the free-fall detection in the Free-fall
Control feature set (see 4.10). The sensitivity is selected on a scale from 00h to FFh. A value of zero selects the
device manufacturer's recommended setting. Other values are vendor specific. The higher the sensitivity value,
the more sensitive the device is to changes in acceleration.
The FREE-FALL SENSITIVITY field is valid if the FREE-FALL SUPPORTED bit (see 9.11.5.2.29) is set to one and the
FREE-FALL ENABLED bit (see 9.11.6.2.14) is set to one.
The IDENTIFY DEVICE data contains a copy of the FREE-FALL SENSITIVITY field (see IDENTIFY DEVICE data
word 53 in table 50).
9.11.6.10 Device Maintenance Schedule
9.11.6.10.1 TIME SCHEDULED FOR DEVICE MAINTENANCE field
The device shall set the TIME SCHEDULED FOR DEVICE MAINTENANCE field (see table 252) to the number of
cumulative seconds that the host should avoid sending commands. This field indicates the total number of
seconds that the device is requesting for internal maintenance.
9.11.6.10.2 TIME TO PERFORMANCE DEGRADATION field
The device shall set the TIME TO PERFORMANCE DEGRADATION field (see table 252) to the estimated number of
minutes until performance degradation may occur due to insufficient idle time to perform internal maintenance.
This field indicates the minimum number of minutes before the device may begin performance degrading internal
maintenance.
9.11.6.10.3 MINIMUM INACTIVE TIME field and MINIMUM INACTIVE TIME IN MILLISECONDS field
The MINIMUM INACTIVE TIME field is a value in seconds. The MINIMUM INACTIVE TIME IN MILLISECONDS field is a value
in milliseconds. The device shall set the MINIMUM INACTIVE TIME field (see table 252) and MINIMUM INACTIVE TIME IN
MILLISECONDS field to the minimum time that the host should avoid sending commands. The sum of these fields
indicates the minimum time that the device requires to make progress on internal maintenance.
Code Description
00h No indication provided
01h No advanced background operations are being performed.
02h Advanced background operations are active and were started by the host.
03h Advanced background operations are active and were started by the device.
04h..FFh Reserved
9.11.8.3.3 Enhanced security erase supported (ENHANCED SECURITY ERASE SUPPORTED bit)
If the ENHANCED SECURITY ERASE SUPPORTED bit (see table 256) is set to one, the enhanced mode of the
SECURITY ERASE UNIT command (see 7.35) is supported. If the ENHANCED SECURITY ERASE SUPPORTED bit
is cleared to zero, the enhanced mode of the SECURITY ERASE UNIT command is not supported.
The IDENTIFY DEVICE data contains a copy of the ENHANCED SECURITY ERASE SUPPORTED bit (see IDENTIFY
DEVICE data word 128 in table 50).
9.11.8.3.4 Security count expired (SECURITY COUNT EXPIRED bit)
If the SECURITY COUNT EXPIRED bit (see table 256) is set to one, the password attempt counter (see 4.21.9) has
decremented to zero. If the SECURITY COUNT EXPIRED bit is cleared to zero, the password attempt counter is
greater than zero.
The IDENTIFY DEVICE data contains a copy of the SECURITY COUNT EXPIRED bit (see IDENTIFY DEVICE data
word 128 in table 50).
9.11.8.3.5 Security frozen (SECURITY FROZEN bit)
If the SECURITY FROZEN bit (see table 256) is set to one, security is frozen (see 4.21.5). If the SECURITY FROZEN bit
is cleared to zero, security is not frozen.
The IDENTIFY DEVICE data contains a copy of the SECURITY FROZEN bit (see IDENTIFY DEVICE data word 128
in table 50).
9.11.8.3.6 Security locked (SECURITY LOCKED bit)
If the SECURITY LOCKED bit (see table 256) is set to one, security is locked. If the SECURITY LOCKED bit is cleared
to zero, security is not locked.
The IDENTIFY DEVICE data contains a copy of the SECURITY LOCKED bit (see IDENTIFY DEVICE data word 128
in table 50).
9.11.8.3.7 Security enabled (SECURITY ENABLED bit)
If the SECURITY ENABLED bit (see table 256) is set to one, security has been enabled by setting a User password
(see 4.21.3.2) via the SECURITY SET PASSWORD command (see 7.37). If the SECURITY ENABLED bit is cleared
to zero, there is no valid User password.
If the Security feature set is not supported, the SECURITY ENABLED bit shall be cleared to zero. The SECURITY
ENABLED bit is valid if the SECURITY SUPPORTED bit (see 9.11.8.3.1) is set to one indicating Security feature set is
supported.
The IDENTIFY DEVICE data contains a copy of the SECURITY ENABLED bit (see IDENTIFY DEVICE data word
128 in table 50).
9.11.8.4 Time required for an Enhanced Erase mode SECURITY ERASE UNIT command (ENHANCED
SECURITY ERASE TIME field)
The ENHANCED SECURITY ERASE TIME field (see table 256) specifies the estimated time required for the
SECURITY ERASE UNIT command to complete its enhanced mode erasure.
The ENHANCED SECURITY ERASE TIME FORMAT bit (see table 256) indicates the format used to express the time as
follows:
a) if the ENHANCED SECURITY ERASE TIME FORMAT bit is cleared to zero, then the estimated time is defined in
table 257; and
b) if the ENHANCED SECURITY ERASE TIME FORMAT bit is set to one, then the estimated time is defined in
table 258.
Support of the ENHANCED SECURITY ERASE TIME field is mandatory if support of the Security feature set is
supported (see 4.21). If the Security feature set is not supported, the ENHANCED SECURITY ERASE TIME field
shall be cleared to zero.
Value Time
0 Value not specified
1..254 (Value2) minutes
255 >508 min
Value Time
0 Value not specified
1..32766 (Value2) minutes
32767 >65532 min
The IDENTIFY DEVICE data contains a copy of the ENHANCED SECURITY ERASE TIME field (see IDENTIFY
DEVICE data word 90 in table 50).
9.11.8.5 Time required for a Normal Erase mode SECURITY ERASE UNIT command (NORMAL SECURITY
ERASE TIME field)
The NORMAL SECURITY ERASE TIME field (see table 256) specifies the estimated time required for the SECURITY
ERASE UNIT command to complete its normal mode erasure.
The NORMAL SECURITY ERASE TIME FORMAT bit (see table 256) indicates the format used to express the time as
follows:
a) if the NORMAL SECURITY ERASE TIME FORMAT bit is cleared to zero, then the estimated time is defined in
table 259; and
b) if the NORMAL SECURITY ERASE TIME FORMAT bit is set to one, then the estimated time is defined in
table 260.
Support of the NORMAL SECURITY ERASE TIME field is mandatory if the Security feature set (see 4.21) is supported.
If the Security feature set is not supported, the NORMAL SECURITY ERASE TIME field shall be cleared to zero.
Value Time
0 Value not specified
1..254 (Value2) minutes
255 >508 min
Value Time
0 Value not specified
1..32766 (Value2) minutes
32767 >65532 min
The IDENTIFY DEVICE data contains a copy of the NORMAL SECURITY ERASE TIME field (see IDENTIFY DEVICE
data word 89 in table 50).
9.11.8.6 Trusted Computing feature set supported (TRUSTED COMPUTING SUPPORTED bit)
If the TRUSTED COMPUTING SUPPORTED bit (see table 256) is set to one, the Trusted Computing feature set
(see 4.26) is supported. If the TRUSTED COMPUTING SUPPORTED bit is cleared to zero, the Trusted Computing
feature set is not supported.
The IDENTIFY DEVICE data contains a copy of the TRUSTED COMPUTING SUPPORTED bit (see IDENTIFY DEVICE
data word 48 in table 50).
9.11.8.7 Security Capabilities
9.11.8.7.1 BLOCK ERASE EXT command is supported (BLOCK ERASE SUPPORTED bit)
If the BLOCK ERASE SUPPORTED bit (see table 256) is set to one, the device supports the Sanitize Device feature
set BLOCK ERASE EXT command (see 7.32.2). If the BLOCK ERASE SUPPORTED bit is cleared to zero, the device
does not support the Sanitize Device feature set BLOCK ERASE EXT command.
The IDENTIFY DEVICE data contains a copy of the BLOCK ERASE SUPPORTED bit (see IDENTIFY DEVICE data
word 59 in table 50).
9.11.8.7.2 OVERWRITE EXT command is supported (OVERWRITE SUPPORTED bit)
If the OVERWRITE SUPPORTED bit (see table 256) is set to one, the device supports the Sanitize Device feature set
OVERWRITE EXT command (see 7.32.4). If the OVERWRITE SUPPORTED bit is cleared to zero, the device does
not support the Sanitize Device feature set OVERWRITE EXT command.
The IDENTIFY DEVICE data contains a copy of the OVERWRITE SUPPORTED bit (see IDENTIFY DEVICE data
word 59 in table 50).
9.11.8.7.3 CRYPTO SCRAMBLE EXT command is supported (CRYPTO SCRAMBLE SUPPORTED bit)
If the CRYPTO SCRAMBLE SUPPORTED bit (see table 256) is set to one, the device supports the Sanitize Device
feature set CRYPTO SCRAMBLE EXT command (see 7.32.3). If the CRYPTO SCRAMBLE SUPPORTED bit is cleared
to zero, the device does not support the Sanitize Device feature set CRYPTO SCRAMBLE EXT command.
The IDENTIFY DEVICE data contains a copy of the CRYPTO SCRAMBLE SUPPORTED bit (see IDENTIFY DEVICE
data word 59 in table 50).
9.11.8.7.4 Sanitize Device feature set is supported (SANITIZE SUPPORTED bit)
If SANITIZE SUPPORTED bit (see table 256) is set to one, the device supports the Sanitize Device feature set
(see 4.19). If SANITIZE SUPPORTED bit is cleared to zero, the device does not support the Sanitize Device feature
set.
The IDENTIFY DEVICE data contains a copy of the SANITIZE SUPPORTED bit (see IDENTIFY DEVICE data word
59 in table 50).
9.11.8.7.5 SANITIZE ANTIFREEZE LOCK EXT command is supported (SANITIZE ANTIFREEZE SUPPORTED bit)
If the SANITIZE ANTIFREEZE LOCK SUPPORTED bit (see table 256) is set to one, the device supports the Sanitize
Device feature set SANITIZE ANTIFREEZE LOCK command (see 7.32.5). If the SANITIZE ANTIFREEZE LOCK
SUPPORTED bit is cleared to zero, the device does not support the Sanitize Device feature set SANITIZE
ANTIFREEZE LOCK command.
The IDENTIFY DEVICE data contains a copy of the SANITIZE ANTIFREEZE LOCK SUPPORTED bit (see IDENTIFY
DEVICE data word 59 in table 50).
9.11.8.7.6 Device Encrypts All User Data (ENCRYPT ALL SUPPORTED bit)
If the ENCRYPT ALL SUPPORTED bit (see table 256) is set to one, the device encrypts all user data on the device.
If the ENCRYPT ALL SUPPORTED bit is cleared to zero, the device may not encrypt all user data on the device.
NOTE 14 – This standard does not provide a method to cryptographically authenticate the state of the ENCRYPT
ALL SUPPORTED bit.
The IDENTIFY DEVICE data contains a copy of the ENCRYPT ALL SUPPORTED bit (see IDENTIFY DEVICE data
word 69 in table 50).
9.11.8.7.7 ACS-3 COMMANDS ALLOWED BY SANITIZE bit
If the ACS-3 COMMANDS ALLOWED BY SANITIZE bit (see table 256) is set to one, the device allows processing of the
commands listed in 4.19.6 during a sanitize operation. If the ACS-3 COMMANDS ALLOWED BY SANITIZE bit is cleared
to zero, the device allows processing of the commands listed in ACS-2 during a sanitize operation.
The IDENTIFY DEVICE data contains a copy of the ACS-3 COMMANDS ALLOWED BY SANITIZE bit (see IDENTIFY
DEVICE data word 59 in table 50).
9.11.8.7.8 RESTRICTED SANITIZE OVERRIDES SECURITY bit
The RESTRICTED SANITIZE OVERRIDES SECURITY bit indicates the interactions between the Sanitize Device feature
set and the Security feature set as described in 4.19.5.
9.11.9 Parallel ATA (page 07h)
9.11.9.1 Overview
The Parallel ATA log page (see table 261) provides information about the Parallel ATA Transport.
For SATA devices, the MULTIWORD DMA MODE 2 SUPPORTED bit shall be set to one.
The IDENTIFY DEVICE data contains a copy of the MULTIWORD DMA MODE 2 SUPPORTED bit (see IDENTIFY
DEVICE data word 63 in table 50).
9.11.9.2.4.6 Multiword DMA mode 1 and below are supported (MULTIWORD DMA MODE 1 SUPPORTED bit)
For PATA devices, if the MULTIWORD DMA MODE 1 SUPPORTED bit (see table 261) is:
a) set to one, then Multiword DMA modes 1 and below are supported (i.e., if Multiword DMA mode 1 is
supported, then Multiword DMA mode 0 shall also be supported);
b) cleared to zero, then Multiword DMA mode 1 is not supported; and
c) set to one, then the MULTIWORD DMA MODE 0 SUPPORTED bit (see 9.11.9.2.4.7) shall be set to one.
For SATA devices, the MULTIWORD DMA MODE 1 SUPPORTED bit shall be set to one.
The IDENTIFY DEVICE data contains a copy of the MULTIWORD DMA MODE 1 SUPPORTED bit (see IDENTIFY
DEVICE data word 63 in table 50).
9.11.9.2.4.7 Multiword DMA mode 0 is supported (MULTIWORD DMA MODE 0 SUPPORTED bit)
For PATA devices, if the MULTIWORD DMA MODE 0 SUPPORTED bit (see table 261) is set to one, then Multiword
DMA mode 0 is supported.
For SATA devices, the MULTIWORD DMA MODE 0 SUPPORTED bit shall be set to one.
The IDENTIFY DEVICE data contains a copy of the MULTIWORD DMA MODE 0 SUPPORTED bit (see IDENTIFY
DEVICE data word 63 in table 50).
9.11.9.2.5 Ultra DMA
9.11.9.2.5.1 Overview
Ultra DMA identifies the Ultra DMA transfer modes supported by the device and indicates the mode that is
currently selected. Only one DMA mode shall be selected at any given time. If an Ultra DMA mode is selected,
then no Multiword DMA mode shall be selected. If a Multiword DMA mode is selected, then no Ultra DMA mode
shall be selected. Support of this word is mandatory if any Ultra DMA mode is supported.
9.11.9.2.5.2 Ultra DMA mode 6 is selected (UDMA MODE 6 ENABLED bit)
If the UDMA MODE 6 ENABLED bit (see table 261) is set to one, then Ultra DMA mode 6 is selected. If the UDMA
MODE 6 ENABLED bit is cleared to zero, then Ultra DMA mode 6 is not selected.
The IDENTIFY DEVICE data contains a copy of the UDMA MODE 6 ENABLED bit (see IDENTIFY DEVICE data word
88 in table 50).
9.11.9.2.5.3 Ultra DMA mode 5 is selected (UDMA MODE 5 ENABLED bit)
If the UDMA MODE 5 ENABLED bit (see table 261) is set to one, then Ultra DMA mode 5 is selected. If the UDMA
MODE 5 ENABLED bit is cleared to zero, then Ultra DMA mode 5 is not selected.
The IDENTIFY DEVICE data contains a copy of the UDMA MODE 5 ENABLED bit (see IDENTIFY DEVICE data word
88 in table 50).
The IDENTIFY DEVICE data contains a copy of the UDMA MODE 4 ENABLED bit (see IDENTIFY DEVICE data word
88 in table 50).
9.11.9.2.5.5 Ultra DMA mode 3 is selected (UDMA MODE 3 ENABLED bit)
If the UDMA MODE 3 ENABLED bit (see table 261) is set to one, then Ultra DMA mode 3 is selected. If the UDMA
MODE 3 ENABLED bit is cleared to zero, then Ultra DMA mode 3 is not selected.
The IDENTIFY DEVICE data contains a copy of the UDMA MODE 3 ENABLED bit (see IDENTIFY DEVICE data word
88 in table 50).
9.11.9.2.5.6 Ultra DMA mode 2 is selected (UDMA MODE 2 ENABLED bit)
If the UDMA MODE 2 ENABLED bit (see table 261) is set to one, then Ultra DMA mode 2 is selected. If the UDMA
MODE 2 ENABLED bit is cleared to zero, then Ultra DMA mode 2 is not selected.
The IDENTIFY DEVICE data contains a copy of the UDMA MODE 2 ENABLED bit (see IDENTIFY DEVICE data word
88 in table 50).
9.11.9.2.5.7 Ultra DMA mode 1 is selected (UDMA MODE 1 ENABLED bit)
If the UDMA MODE 1 ENABLED bit (see table 261) is set to one, then Ultra DMA mode 1 is selected. If the UDMA
MODE 1 ENABLED bit is cleared to zero, then Ultra DMA mode 1 is not selected.
The IDENTIFY DEVICE data contains a copy of the UDMA MODE 1 ENABLED bit (see IDENTIFY DEVICE data word
88 in table 50).
9.11.9.2.5.8 Ultra DMA mode 0 is selected (UDMA MODE 0 ENABLED bit)
If the UDMA MODE 0 ENABLED bit (see table 261) is set to one, then Ultra DMA mode 0 is selected. If the UDMA
MODE 0 ENABLED bit is cleared to zero, then Ultra DMA mode 0 is not selected.
The IDENTIFY DEVICE data contains a copy of the UDMA MODE 0 ENABLED bit (see IDENTIFY DEVICE data word
88 in table 50).
9.11.9.2.5.9 Ultra DMA mode 6 and below are supported (UDMA MODE 6 SUPPORTED bit)
For PATA devices, if the UDMA MODE 6 SUPPORTED bit (see table 261) is set to one, then Ultra DMA modes 6
and below are supported. If the UDMA MODE 6 SUPPORTED bit is cleared to zero, then Ultra DMA mode 6 is not
supported. If Ultra DMA mode 6 is supported, then Ultra DMA modes 5, 4, 3, 2, 1, and 0 shall also be supported.
If the UDMA MODE 6 SUPPORTED bit is set to one, then the:
a) UDMA MODE 5 SUPPORTED bit (see 9.11.9.2.5.10) shall be set to one;
b) UDMA MODE 4 SUPPORTED bit (see 9.11.9.2.5.11) shall be set to one;
c) UDMA MODE 3 SUPPORTED bit (see 9.11.9.2.5.12) shall be set to one;
d) UDMA MODE 2 SUPPORTED bit (see 9.11.9.2.5.13) shall be set to one;
e) UDMA MODE 1 SUPPORTED bit (see 9.11.9.2.5.14) shall be set to one; and
f) UDMA MODE 0 SUPPORTED bit (see 9.11.9.2.5.15) shall be set to one.
For SATA devices, the UDMA MODE 6 SUPPORTED bit are supported may be set to one.
The IDENTIFY DEVICE data contains a copy of the UDMA MODE 6 SUPPORTED bit (see IDENTIFY DEVICE data
word 88 in table 50).
9.11.9.2.5.10 Ultra DMA mode 5 and below are supported (UDMA MODE 5 SUPPORTED bit)
For PATA devices, if the UDMA MODE 5 SUPPORTED bit (see table 261) is set to one, then Ultra DMA modes 5
and below are supported. If the UDMA MODE 5 SUPPORTED bit is cleared to zero, then Ultra DMA mode 5 is not
supported. If Ultra DMA mode 5 is supported, then Ultra DMA modes 4, 3, 2, 1, and 0 shall also be supported. If
the UDMA MODE 5 SUPPORTED bit is set to one, then the:
a) UDMA MODE 4 SUPPORTED bit (see 9.11.9.2.5.11) shall be set to one;
b) UDMA MODE 3 SUPPORTED bit (see 9.11.9.2.5.12) shall be set to one;
c) UDMA MODE 2 SUPPORTED bit (see 9.11.9.2.5.13) shall be set to one;
d) UDMA MODE 1 SUPPORTED bit (see 9.11.9.2.5.14) shall be set to one; and
e) UDMA MODE 0 SUPPORTED bit (see 9.11.9.2.5.15) shall be set to one.
For SATA devices, the UDMA MODE 5 SUPPORTED bit shall be set to one.
The IDENTIFY DEVICE data contains a copy of the UDMA MODE 5 SUPPORTED bit (see IDENTIFY DEVICE data
word 88 in table 50).
9.11.9.2.5.11 Ultra DMA mode 4 and below are supported (UDMA MODE 4 SUPPORTED bit)
For PATA devices, if the UDMA MODE 4 SUPPORTED bit (see table 261) is set to one, then Ultra DMA modes 4
and below are supported. If the UDMA MODE 4 SUPPORTED bit is cleared to zero, then Ultra DMA mode 4 is not
supported. If Ultra DMA mode 4 is supported, then Ultra DMA modes 3, 2, 1, and 0 shall also be supported. If
the UDMA MODE 4 SUPPORTED bit is set to one, then the:
a) UDMA MODE 3 SUPPORTED bit (see 9.11.9.2.5.12) shall be set to one;
b) UDMA MODE 2 SUPPORTED bit (see 9.11.9.2.5.13) shall be set to one;
c) UDMA MODE 1 SUPPORTED bit (see 9.11.9.2.5.14) shall be set to one; and
d) UDMA MODE 0 SUPPORTED bit (see 9.11.9.2.5.15) shall be set to one.
For SATA devices, the UDMA MODE 4 SUPPORTED bit shall be set to one.
The IDENTIFY DEVICE data contains a copy of the UDMA MODE 4 SUPPORTED bit (see IDENTIFY DEVICE data
word 88 in table 50).
9.11.9.2.5.12 Ultra DMA mode 3 and below are supported (UDMA MODE 3 SUPPORTED bit)
For PATA devices, if the UDMA MODE 3 SUPPORTED bit (see table 261) is set to one, then Ultra DMA modes 3
and below are supported. If the UDMA MODE 3 SUPPORTED bit is cleared to zero, then Ultra DMA mode 3 is not
supported. If Ultra DMA mode 3 is supported, then Ultra DMA modes 2, 1, and 0 shall also be supported. If the
UDMA MODE 3 SUPPORTED bit is set to one, then the:
a) UDMA MODE 1 SUPPORTED bit (see 9.11.9.2.5.14) shall be set to one; and
b) UDMA MODE 0 SUPPORTED bit (see 9.11.9.2.5.15) shall be set to one.
For SATA devices, the UDMA MODE 2 SUPPORTED bit shall be set to one.
The IDENTIFY DEVICE data contains a copy of the UDMA MODE 2 SUPPORTED bit (see IDENTIFY DEVICE data
word 88 in table 50).
9.11.9.2.5.14 Ultra DMA mode 1 and below are supported (UDMA MODE 1 SUPPORTED bit)
For PATA devices, if the UDMA MODE 1 SUPPORTED bit (see table 261) is set to one, then Ultra DMA modes 1
and below are supported. If the UDMA MODE 1 SUPPORTED bit is cleared to zero, then Ultra DMA mode 1 is not
supported. If Ultra DMA mode 1 is supported, then Ultra DMA mode 0 shall also be supported. If the UDMA MODE
1 SUPPORTED bit is set to one, then the UDMA MODE 0 SUPPORTED bit (see 9.11.9.2.5.15) shall be set to one.
For SATA devices, the UDMA MODE 1 SUPPORTED bit shall be set to one.
The IDENTIFY DEVICE data contains a copy of the UDMA MODE 1 SUPPORTED bit (see IDENTIFY DEVICE data
word 88 in table 50).
9.11.9.2.5.15 Ultra DMA mode 0 is supported (UDMA MODE 0 SUPPORTED bit)
For PATA devices, if the UDMA MODE 0 SUPPORTED bit (see table 261) is set to one, then Ultra DMA mode 0 is
supported. If the UDMA MODE 0 SUPPORTED bit is cleared to zero, then Ultra DMA mode 0 is not supported.
For SATA devices, the UDMA MODE 0 SUPPORTED bit shall be set to one.
The IDENTIFY DEVICE data contains a copy of the UDMA MODE 0 SUPPORTED bit (see IDENTIFY DEVICE data
word 88 in table 50).
9.11.9.2.6 Parallel ATA hardware reset result
9.11.9.2.6.1 CBLID bit
If the device is a PATA device and the CBLID bit (see table 261) is:
a) cleared to zero, then the device detected the CBLID– below ViL (see ATA8-APT); or
b) set to one, then the device detected the CBLID– above ViHB (see ATA8-APT).
The CBLID bit shall be set to one or cleared to zero by the selected device to indicate whether the device detected
the CBLID– signal (see ATA8-APT) above VIH or the CBLID– signal below VIL at any time during the processing
of each IDENTIFY DEVICE command or SMART READ LOG command after receiving the command from the
host but before returning data to the host. This test may be repeated by the device during command processing
(see ATA8-APT).
The contents of the CBLID bit shall changed only during the processing of a PATA hardware reset.
For SATA devices, the CBLID bit shall be cleared to zero.
The IDENTIFY DEVICE data contains a copy of the CBLID bit (see IDENTIFY DEVICE data word 93 in table 50).
9.11.9.2.6.2 D1 PDIAG bit
If the device is a PATA device and the D1 PDIAG bit (see table 261) is:
a) cleared to zero, then Device 1 did not detect the assertion of PDIAG–; or
b) set to one, then Device 1 detected the assertion of PDIAG–.
PATA Device 0 shall clear the D1 PDIAG bit to zero and Device 1 shall set it as described in this subclause as the
result of a hardware reset (see ATA8-APT).
The contents of the D1 PDIAG bit shall changed only during the processing of a PATA hardware reset.
For SATA devices, the D1 PDIAG bit shall be cleared to zero.
The IDENTIFY DEVICE data contains a copy of the D1 PDIAG bit (see IDENTIFY DEVICE data word 93 in
table 50).
9.11.9.2.6.3 D1 DEVICE NUMBER DETECT field
For PATA devices, the contents of the D1 DEVICE NUMBER DETECT field (see table 261) indicate how the device
number of Device 1 were detected using the coded values shown in table 262.
Code Description
00b Reserved
01b a jumper was used
10b the CSEL signal was used
11b some other method was used or the method is unknown
PATA Device 0 shall clear the D1 DEVICE NUMBER DETECT field to zero and Device 1 shall set it as described in this
subclause as the result of a hardware reset (see ATA8-APT).
The contents of the D1 DEVICE NUMBER DETECT field shall changed only during the processing of a PATA hardware
reset.
For SATA devices, the D1 DEVICE NUMBER DETECT field shall be set to 00b.
The IDENTIFY DEVICE data contains a copy of the D1 DEVICE NUMBER DETECT field (see IDENTIFY DEVICE data
word 93 in table 50).
9.11.9.2.6.4 D0 PDIAG bit
If the device is a PATA device and the D0 PDIAG bit (see table 261) is:
a) cleared to zero, then Device 0 did not detect the assertion of PDIAG–; or
b) set to one, then Device 0 detected the assertion of PDIAG–.
PATA Device 1 shall clear the D0 PDIAG bit to zero and Device 0 shall set it as described in this subclause as the
result of a hardware reset (see ATA8-APT).
The contents of the D0 PDIAG bit shall changed only during the processing of a PATA hardware reset.
For SATA devices, the D0 PDIAG bit shall be cleared to zero.
The IDENTIFY DEVICE data contains a copy of the D0 PDIAG bit (see IDENTIFY DEVICE data word 93 in
table 50).
9.11.9.2.6.5 D0 DASP bit
If the device is a PATA device and the D0 DASP bit (see table 261) is:
a) cleared to zero, then Device 0 did not detect the assertion of DASP–; or
b) set to one, then Device 0 detected the assertion of DASP–.
PATA Device 1 shall clear the D0 DASP bit to zero and Device 0 shall set it as described in this subclause as the
result of a hardware reset (see ATA8-APT).
The contents of the D0 DASP bit shall changed only during the processing of a PATA hardware reset.
For SATA devices, the D0 DASP bit shall be cleared to zero.
The IDENTIFY DEVICE data contains a copy of the D0 DASP bit (see IDENTIFY DEVICE data word 93 in
table 50).
9.11.9.2.6.6 D0/D1 SELECTION bit
If the device is a PATA device and the D0/D1 SELECTION bit (see table 261) is:
a) cleared to zero, then Device 0 does not respond when Device 1 is selected; or
b) set to one, then Device 0 responds when Device 1 is selected.
PATA Device 1 shall clear the D0/D1 SELECTION bit to zero and Device 0 shall set it as described in this subclause
as the result of a hardware reset (see ATA8-APT).
The contents of the D0/D1 SELECTION bit shall changed only during the processing of a PATA hardware reset.
For SATA devices, the D0/D1 SELECTION bit shall be cleared to zero.
The IDENTIFY DEVICE data contains a copy of the D0/D1 SELECTION bit (see IDENTIFY DEVICE data word 93 in
table 50).
9.11.9.2.6.7 D0 DIAGNOSTICS bit
If the device is a PATA device and the D0 DIAGNOSTICS bit (see table 261) is:
a) cleared to zero, then Device 0 did not detect the assertion of DASP–; or
b) set to one, then Device 0 detected the assertion of DASP–.
PATA Device 1 shall clear the D0 DIAGNOSTICS bit to zero and Device 0 shall set it as described in this subclause
as the result of a hardware reset (see ATA8-APT).
The contents of the D0 DIAGNOSTICS bit shall changed only during the processing of a PATA hardware reset.
For SATA devices, the D0 DIAGNOSTICS bit shall be cleared to zero.
The IDENTIFY DEVICE data contains a copy of the D0 DIAGNOSTICS bit (see IDENTIFY DEVICE data word 93 in
table 50).
9.11.9.2.6.8 D0 DEVICE NUMBER DETECT field
For PATA devices, the contents of the D1 DEVICE NUMBER DETECT field (see table 261) indicate how the device
number of Device 0 were detected using the coded values shown in table 262 (see 9.11.9.2.6.3).
PATA Device 1 shall clear the D0 DEVICE NUMBER DETECT field to zero and Device 0 shall set it as described in this
subclause as the result of a hardware reset (see ATA8-APT).
The contents of the D0 DEVICE NUMBER DETECT field shall changed only during the processing of a PATA hardware
reset.
For SATA devices, the D0 DEVICE NUMBER DETECT field shall be set to 00b.
The IDENTIFY DEVICE data contains a copy of the D0 DEVICE NUMBER DETECT field (see IDENTIFY DEVICE data
word 93 in table 50).
For SATA devices, the PIO MODE 3 IS SUPPORTED bit shall be set to one.
The IDENTIFY DEVICE data contains a copy of the PIO MODE 3 IS SUPPORTED bit (see IDENTIFY DEVICE data
word 64 in table 50).
9.11.9.4 Multiword DMA transfer cycle time
9.11.9.4.1 Manufacturer’s recommended Multiword DMA transfer cycle time (RECOMMENDED MULTIWORD
CYCLE TIME field)
The IDENTIFY DEVICE data contains a copy of the MIN PIO TRANSFER TIME WITHOUT IORDY field (see IDENTIFY
DEVICE data word 67 in table 50).
9.11.9.6 Set Transfer Mode
9.11.9.6.1 TRANSFER MODE field
The TRANSFER MODE field (see table 261) is set by the set transfer mode subcommand (see 7.41.4) of the SET
FEATURES command. The contents of the TRANSFER MODE field indicate the current transfer mechanism used
by the device (see table 113).
9.11.10 Serial ATA (page 08h)
9.11.10.1 Serial ATA log overview
The Serial ATA log page (see table 261) provides information about the Serial ATA Transport.
Editor’s Note 60: Bits 31:27 are unaligned with SATA 3.3. I
do not have a definition for the DIPM SSP PRESERVATION
SUPPORTED bit. For now, I have inserted a duplicate bit 27.
We probably need an alignment proposal to fix these.
The IDENTIFY DEVICE data contains a copy of the RECEIPT OF HOST INITIATED POWER MANAGEMENT REQUESTS
SUPPORTED bit (see IDENTIFY DEVICE data word 76 in table 50).
The IDENTIFY DEVICE data contains a copy of the NCQ PRIORITY INFORMATION SUPPORTED bit (see IDENTIFY
DEVICE data word 76 in table 50).
9.11.10.2.9 HOST AUTOMATIC PARTIAL TO SLUMBER TRANSITIONS SUPPORTED bit
If the HOST AUTOMATIC PARTIAL TO SLUMBER TRANSITIONS SUPPORTED bit is set to one, then the device supports
host automatic partial to slumber transitions. If the RECEIPT OF HOST INITIATED POWER MANAGEMENT REQUESTS
SUPPORTED bit is cleared to zero, then the HOST AUTOMATIC PARTIAL TO SLUMBER TRANSITIONS SUPPORTED bit shall
be cleared to zero.
The IDENTIFY DEVICE data contains a copy of the HOST AUTOMATIC PARTIAL TO SLUMBER TRANSITIONS
SUPPORTED bit (see IDENTIFY DEVICE data word 76 in table 50).
The IDENTIFY DEVICE data contains a copy of the DEVICE AUTOMATIC PARTIAL TO SLUMBER TRANSITIONS
SUPPORTED bit (see IDENTIFY DEVICE data word 76 in table 50).
9.11.10.2.11 READ LOG DMA EXT AS EQUIVALENT TO READ LOG EXT SUPPORTED bit
If the READ LOG DMA EXT AS EQUIVALENT TO READ LOG EXT SUPPORTED bit is set to one, then the READ LOG DMA
EXT command (see 7.23) and the READ LOG EXT command (see 7.22) may be used in all cases with identical
results. If the GPL DMA SUPPORTED bit (see 9.11.5.2.31) is cleared to zero, then the READ LOG DMA EXT AS
EQUIVALENT TO READ LOG EXT SUPPORTED bit shall be cleared to zero. If the NCQ FEATURE SET SUPPORTED bit
(see 9.11.10.2.4) is cleared to zero, then the READ LOG DMA EXT AS EQUIVALENT TO READ LOG EXT SUPPORTED bit
shall be cleared to zero.
If the READ LOG DMA EXT AS EQUIVALENT TO READ LOG EXT SUPPORTED bit is cleared to zero and the device
indicates command acceptance for a READ LOG DMA EXT command to read the NCQ Command Error log
(see 9.14) or the SATA Phy Event Counters log (see 9.16), then the device shall return command aborted.
The IDENTIFY DEVICE data contains a copy of the READ LOG DMA EXT AS EQUIVALENT TO READ LOG EXT
SUPPORTED bit (see IDENTIFY DEVICE data word 76 in table 50).
The IDENTIFY DEVICE data contains a copy of the NCQ STREAMING SUPPORTED bit (see IDENTIFY DEVICE data
word 77 in table 50).
9.11.10.2.13 NCQ QUEUE MANAGEMENT COMMAND SUPPORTED bit
If the NCQ QUEUE MANAGEMENT COMMAND SUPPORTED bit is set to one, then the device supports the NCQ
NON-DATA command (see 7.15). If if the NCQ FEATURE SET SUPPORTED bit (see 9.11.10.2.4) is cleared to zero,
then the NCQ QUEUE MANAGEMENT COMMAND SUPPORTED bit shall be cleared to zero.
The IDENTIFY DEVICE data contains a copy of the NCQ QUEUE MANAGEMENT COMMAND SUPPORTED bit (see
IDENTIFY DEVICE data word 77 in table 50).
9.11.10.2.14 SEND AND RECEIVE QUEUED COMMANDS SUPPORTED bit
If the SEND AND RECEIVE QUEUED COMMANDS SUPPORTED bit is set to one, then the device supports the RECEIVE
FPDMA QUEUED command (see 7.30) and the SEND FPDMA QUEUED command (see 7.39). If the NCQ
FEATURE SET SUPPORTED bit (see 9.11.10.2.4) is cleared to zero, then the SEND AND RECEIVE QUEUED COMMANDS
SUPPORTED bit shall be cleared to zero.
The IDENTIFY DEVICE data contains a copy of the SEND AND RECEIVE QUEUED COMMANDS SUPPORTED bit (see
IDENTIFY DEVICE data word 77 in table 50).
9.11.10.2.15 NONZERO BUFFER OFFSETS SUPPORTED bit
If the NONZERO BUFFER OFFSETS SUPPORTED bit is set to one, the device supports the use of nonzero buffer offsets
for commands in the NCQ feature set (see 4.15). See SATA 3.2 for more information.
The IDENTIFY DEVICE data contains a copy of the NONZERO BUFFER OFFSETS SUPPORTED bit (see IDENTIFY
DEVICE data word 78 in table 50).
9.11.10.2.16 DMA SETUP AUTO-ACTIVATION SUPPORTED bit
If the DMA SETUP AUTO-ACTIVATION SUPPORTED bit is set to one, the device supports the use of the DMA Setup FIS
Auto-Activate optimization. See SATA 3.2 for more information.
The IDENTIFY DEVICE data contains a copy of the DMA SETUP AUTO-ACTIVATION SUPPORTED bit (see IDENTIFY
DEVICE data word 78 in table 50).
9.11.10.2.17 DEVICE INITIATED POWER MANAGEMENT SUPPORTED bit
If the DEVICE INITIATED POWER MANAGEMENT SUPPORTED bit is set to one, the device supports device initiated
power management (DIPM) requests. If the DEVICE INITIATED POWER MANAGEMENT SUPPORTED bit is cleared to
zero, the device does not support device initiated power management requests.
Devices shall support either host-initiated interface power management or device-initiated interface power
management. If the RECEIPT OF HOST INITIATED POWER MANAGEMENT REQUESTS SUPPORTED bit (see 9.11.10.2.5)
is cleared to zero, then the DEVICE INITIATED POWER MANAGEMENT SUPPORTED bit shall be set to one.
The IDENTIFY DEVICE data contains a copy of the DEVICE INITIATED POWER MANAGEMENT SUPPORTED bit (see
IDENTIFY DEVICE data word 78 in table 50).
9.11.10.2.18 IN-ORDER DATA DELIVERY SUPPORTED bit
If the IN-ORDER DATA DELIVERY SUPPORTED bit is set to one, the device supports guaranteed in-order data delivery
for nonzero buffer offsets in commands in the NCQ feature set (see 4.15). See SATA 3.2 for more information.
The IDENTIFY DEVICE data contains a copy of the IN-ORDER DATA DELIVERY SUPPORTED bit (see IDENTIFY
DEVICE data word 78 in table 50).
9.11.10.2.19 HARDWARE FEATURE CONTROL SUPPORTED bit
If the HARDWARE FEATURE CONTROL SUPPORTED bit is set to one, the device supports an extended use of
Hardware Feature Control (see 4.20). If the HARDWARE FEATURE CONTROL SUPPORTED bit is cleared to zero, the
device does not support an extended use of Hardware Feature Control and the HARDWARE FEATURE CONTROL IS
ENABLED bit (see 9.11.10.3.6) shall be cleared to zero.
The IDENTIFY DEVICE data contains a copy of the HARDWARE FEATURE CONTROL SUPPORTED bit (see IDENTIFY
DEVICE data word 78 in table 50).
9.11.10.2.20 SOFTWARE SETTINGS PRESERVATION SUPPORTED bit
If the SOFTWARE SETTINGS PRESERVATION SUPPORTED bit is set to one, the device supports the SSP feature set
(see 4.24). If the SOFTWARE SETTINGS PRESERVATION SUPPORTED bit is cleared to zero, the device does not
support the SSP feature set.
The IDENTIFY DEVICE data contains a copy of the SOFTWARE SETTINGS PRESERVATION SUPPORTED bit (see
IDENTIFY DEVICE data word 78 in table 50).
9.11.10.2.21 NCQ AUTOSENSE SUPPORTED bit
If the NCQ AUTOSENSE SUPPORTED bit is set to one, the device supports NCQ Autosense (see 9.14). If the NCQ
AUTOSENSE SUPPORTED bit is cleared to zero, the device does not support NCQ Autosense (see 9.14). If the NCQ
FEATURE SET SUPPORTED bit (see 9.11.10.2.4) is cleared to zero, the NCQ AUTOSENSE SUPPORTED bit shall be
cleared to zero.
The IDENTIFY DEVICE data contains a copy of the NCQ AUTOSENSE SUPPORTED bit (see IDENTIFY DEVICE data
word 78 in table 50).
9.11.10.2.22 DEVICE SLEEP SUPPORTED bit
If the DEVICE SLEEP SUPPORTED bit is set to one, then:
a) the device supports the Device Sleep feature;
b) the device shall support the IDENTIFY DEVICE Data log;
c) the DEVSLP TIMING VARIABLES SUPPORTED bit shall be set to one (see 9.11.10.6.1); and
d) the POWER DISABLE FEATURE ALWAYS ENABLED bit shall be cleared to zero (see 9.11.10.2.26).
If the DEVICE SLEEP SUPPORTED bit is cleared to zero, the device does not support the Device Sleep feature. If
the DEVICE SLEEP SUPPORTED bit is cleared to zero, the host should ignore the DEVSLEEP TO REDUCEDPWRSTATE
CAPABILITY SUPPORTED bit and the DEVSLP TIMING VARIABLES SUPPORTED bit.
The IDENTIFY DEVICE data contains a copy of the DEVICE SLEEP SUPPORTED bit (see IDENTIFY DEVICE data
word 78 in table 50).
9.11.10.2.23 HYBRID INFORMATION SUPPORTED bit
If the HYBRID INFORMATION SUPPORTED bit is set to one, then the device supports the hybrid information feature
(see 4.12). If the device does not support the hybrid information feature, then the HYBRID INFORMATION
SUPPORTED bit shall be cleared to zero.
The IDENTIFY DEVICE data contains a copy of the HYBRID INFORMATION SUPPORTED bit (see IDENTIFY DEVICE
data word 78 in table 50).
9.11.10.2.24 DEVSLEEP TO REDUCEDPWRSTATE CAPABILITY SUPPORTED bit
If the DEVSLEEP TO REDUCEDPWRSTATE CAPABILITY SUPPORTED bit is set to one, then:
a) the device supports maintaining whether it was in Partial or Slumber after detection of assertion, and
subsequent detection of negation, of DEVSLP (see SATA 3.2); and
b) the DEVICE SLEEP SUPPORTED bit shall be set to one (see 9.11.10.2.22).
If the DEVSLEEP TO REDUCEDPWRSTATE CAPABILITY SUPPORTED bit is cleared to zero, the device does not support
remembering whether it was in Partial or Slumber after detection of assertion, and subsequent detection of
negation, of DEVSLP.
The IDENTIFY DEVICE data contains a copy of the DEVSLEEP TO REDUCEDPWRSTATE CAPABILITY SUPPORTED bit
(see IDENTIFY DEVICE data word 77 in table 50).
9.11.10.2.25 POWER DISABLE FEATURE SUPPORTED bit
If the POWER DISABLE FEATURE SUPPORTED bit is set to one, the device supports the Power Disable feature.
If the POWER DISABLE FEATURE SUPPORTED bit is cleared to zero, then:
a) the device does not support the Power Disable feature;
b) the POWER DISABLE FEATURE ALWAYS ENABLED bit shall be cleared to zero (see 9.11.10.2.26); and
c) the POWER DISABLE FEATURE ENABLED bit shall be cleared to zero (see 9.11.10.3.10).
The IDENTIFY DEVICE data contains a copy of the POWER DISABLE FEATURE SUPPORTED bit (see IDENTIFY
DEVICE data word 78 in table 50).
9.11.10.2.26 POWER DISABLE FEATURE ALWAYS ENABLED bit
If the POWER DISABLE FEATURE ALWAYS ENABLED bit is set to one, then:
a) the Power Disable feature is always enabled;
b) the DEVICE SLEEP SUPPORTED bit shall be cleared to zero (see 9.11.10.2.22).
c) the POWER DISABLE FEATURE ENABLED bit shall be set to one (see 9.11.10.3.10).
d) the value of the POWER DISABLE FEATURE ALWAYS ENABLED bit and the value of the POWER DISABLE
FEATURE ENABLED bit shall persist across all resets.
If the POWER DISABLE FEATURE ALWAYS ENABLED bit is cleared to zero and the POWER DISABLE FEATURE SUPPORTED
bit is set to one (see 9.11.10.2.25), then the Power Disable feature may be enabled using the SET FEATURES
Enable/Disable Power Disable Feature subcommand (see 7.41.15.11).
The IDENTIFY DEVICE data contains a copy of the POWER DISABLE FEATURE ALWAYS ENABLED bit (see IDENTIFY
DEVICE data word 77 in table 50).
9.11.10.2.27 REBUILD ASSIST SUPPORTED bit
If the REBUILD ASSIST SUPPORTED bit is set to one, the device supports the Rebuild Assist feature set (see 4.18).
If the REBUILD ASSIST SUPPORTED bit is cleared to zero, the device does not support the Rebuild Assist feature set.
If the NCQ FEATURE SET SUPPORTED bit (see 9.11.10.2.4) is cleared to zero, the REBUILD ASSIST SUPPORTED bit
shall be cleared to zero.
The IDENTIFY DEVICE data contains a copy of the REBUILD ASSIST SUPPORTED bit (see IDENTIFY DEVICE data
word 78 in table 50).
Code Description
000b Reporting of current signalling speed is not supported
001b Current signalling speed is Gen1
010b Current signalling speed is Gen2
011b Current signalling speed is Gen3
100b..111b Reserved
NOTE 15 – In the case of system configurations that have more than one Phy link in the data path (e.g., port
multiplier), the indicated speed is only relevant for the link between the device Phy and its immediate host Phy. It
is possible for each link in the data path to negotiate a different Serial ATA signaling speed.
The IDENTIFY DEVICE data contains a copy of the CURRENT NEGOTIATED SERIAL ATA SIGNAL SPEED bit (see
IDENTIFY DEVICE data word 77 in table 50).
9.11.10.3.2 NONZERO BUFFER OFFSETS ENABLED bit
If the NONZERO BUFFER OFFSETS ENABLED bit is set to one, then device support for the use of nonzero buffer
offsets for commands in the NCQ feature set (see 4.15) is enabled. See SATA 3.2 for more information.
The IDENTIFY DEVICE data contains a copy of the NONZERO BUFFER OFFSETS ENABLED bit (see IDENTIFY
DEVICE data word 79 in table 50).
9.11.10.3.3 DMA SETUP AUTO-ACTIVATION ENABLED bit
If the DMA SETUP AUTO-ACTIVATION ENABLED bit is set to one, then the device support for use of the DMA Setup
FIS Auto-Activate optimization is enabled. See SATA 3.2 for more information.
The IDENTIFY DEVICE data contains a copy of the DMA SETUP AUTO-ACTIVATION ENABLED bit (see IDENTIFY
DEVICE data word 79 in table 50).
9.11.10.3.4 DEVICE INITIATED POWER MANAGEMENT ENABLED bit
If the DEVICE INITIATED POWER MANAGEMENT ENABLED bit is set to one, then device support for initiating power
management requests to the host is enabled. If the DEVICE INITIATED POWER MANAGEMENT ENABLED bit is set to
one, then the device may initiate power management transition requests. If the DEVICE INITIATED POWER
MANAGEMENT ENABLED bit is cleared to zero, then the device shall not initiate interface power management
requests to the host. The DEVICE INITIATED POWER MANAGEMENT ENABLED bit shall be cleared to zero by default.
The IDENTIFY DEVICE data contains a copy of the DEVICE INITIATED POWER MANAGEMENT ENABLED bit (see
IDENTIFY DEVICE data word 79 in table 50).
9.11.10.3.5 IN-ORDER DATA DELIVERY ENABLED bit
If the IN-ORDER DATA DELIVERY ENABLED bit is set to one, then device support for guaranteed in-order data delivery
when nonzero buffer offsets are used for commands in the NCQ feature set (see 4.15) is enabled. See SATA 3.2
for more information.
The IDENTIFY DEVICE data contains a copy of the IN-ORDER DATA DELIVERY ENABLED bit (see IDENTIFY
DEVICE data word 79 in table 50).
9.11.10.3.6 HARDWARE FEATURE CONTROL IS ENABLED bit
If the HARDWARE FEATURE CONTROL IS ENABLED bit is set to one, then device support for the supported extended
use of Hardware Feature Control (see 4.20) is enabled. If the HARDWARE FEATURE CONTROL IS ENABLED bit is
cleared to zero, then the supported extended use, if any, of Hardware Feature Control is disabled. See SATA 3.2
for more information.
The IDENTIFY DEVICE data contains a copy of the HARDWARE FEATURE CONTROL IS ENABLED bit (see IDENTIFY
DEVICE data word 79 in table 50).
9.11.10.3.7 SOFTWARE SETTINGS PRESERVATION ENABLED bit
If the SOFTWARE SETTINGS PRESERVATION ENABLED bit is set to one, then the SSP feature set (see 4.24) is
enabled. If the device supports the SSP feature set, then the SOFTWARE SETTINGS PRESERVATION ENABLED bit
shall be set to one after a power on reset has been processed. If the device does not support the SSP feature
set (i.e., if the SOFTWARE SETTINGS PRESERVATION SUPPORTED bit (see 9.11.10.2.20) is cleared to zero), then the
SOFTWARE SETTINGS PRESERVATION ENABLED bit shall be cleared to zero.
The IDENTIFY DEVICE data contains a copy of the SOFTWARE SETTINGS PRESERVATION ENABLED bit (see
IDENTIFY DEVICE data word 79 in table 50).
9.11.10.3.8 AUTOMATIC PARTIAL TO SLUMBER TRANSITIONS ENABLED bit
If the AUTOMATIC PARTIAL TO SLUMBER TRANSITIONS ENABLED bit is set to one, then the device may asynchronously
transition from Partial to Slumber.
The IDENTIFY DEVICE data contains a copy of the AUTOMATIC PARTIAL TO SLUMBER TRANSITIONS ENABLED bit
(see IDENTIFY DEVICE data word 79 in table 50).
9.11.10.3.9 DEVICE SLEEP ENABLED bit
If the DEVICE SLEEP ENABLED bit is set to one, the Device Sleep feature is enabled. If the DEVICE SLEEP ENABLED
bit is cleared to zero, the Device Sleep feature is disabled.
The IDENTIFY DEVICE data contains a copy of the DEVICE SLEEP ENABLED bit (see IDENTIFY DEVICE data word
79 in table 50).
9.11.10.3.10 POWER DISABLE FEATURE ENABLED bit
If the POWER DISABLE FEATURE ENABLED bit is set to one, the Power Disable feature is enabled. If the POWER
DISABLE FEATURE ENABLED bit is cleared to zero, the Power Disable feature is disabled.
If the POWER DISABLE FEATURE ALWAYS ENABLED bit is cleared to zero (see 9.11.10.2.26), after processing:
a) a power-on reset, the value of the POWER DISABLE FEATURE ENABLED bit shall be cleared to zero;
b) a hardware reset, the value of the POWER DISABLE FEATURE ENABLED bit shall not be changed; and
c) a software reset, the value of the POWER DISABLE FEATURE ENABLED bit shall not be changed.
The IDENTIFY DEVICE data contains a copy of the POWER DISABLE FEATURE ENABLED bit (see IDENTIFY
DEVICE data word 79 in table 50).
9.11.10.3.11 REBUILD ASSIST ENABLED bit
If the REBUILD ASSIST ENABLED bit is set to one, the Rebuild Assist feature set (see 4.18) is enabled (see 9.20).
If the REBUILD ASSIST ENABLED bit is cleared to zero, the Rebuild Assist feature set is disabled.
The REBUILD ASSIST ENABLED bit may be set to one only if the REBUILD ASSIST SUPPORTED is set to one
(see 9.11.10.2.27).
The IDENTIFY DEVICE data contains a copy of the REBUILD ASSIST ENABLED bit (see IDENTIFY DEVICE data
word 79 in table 50).
9.11.10.3.12 HYBRID INFORMATION ENABLED bit
Editor’s Note 62: This is both circular and messed up. The log contains a multi-value enable field.
This field is a copy of the HYBRID ENABLED bit (see 9.new.3.2xxx) in the Hybrid Information log.
The IDENTIFY DEVICE data contains a copy of the HYBRID ENABLED bit (see IDENTIFY DEVICE data word 79 in
table 50)
9.11.10.4 CURRENT HARDWARE FEATURE CONTROL IDENTIFIER field
If the CURRENT HARDWARE FEATURE CONTROL IDENTIFIER field is nonzero, then table 118 describes the current
Hardware Feature Control behavior. If the CURRENT HARDWARE FEATURE CONTROL IDENTIFIER field is cleared to
zero, then the current Hardware Feature Control behavior shall be DSS, DAS, or none.
9.11.10.5 SUPPORTED HARDWARE FEATURE CONTROL IDENTIFIER field
The SUPPORTED HARDWARE FEATURE CONTROL IDENTIFIER field (see table 118) indicates the value that is permitted
for the CURRENT HARDWARE FEATURE CONTROL IDENTIFIER field (see 9.11.10.4).
9.11.10.6 Device Sleep Timing Variables
9.11.10.6.1 DEVSLP TIMING VARIABLES SUPPORTED bit
If the DEVSLP TIMING VARIABLES SUPPORTED bit is set to one, the device supports the Device Sleep Timing
Variables. If the DEVSLP TIMING VARIABLES SUPPORTED bit is cleared to zero, the device may not support the
Device Sleep Timing Variables.
9.11.10.6.2 DEVSLEEP EXIT TIMEOUT field
The DEVSLEEP EXIT TIMEOUT field (i.e., DETO in SATA 3.2) contains the maximum time, in ms, from when
DEVSLP (see SATA 3.2) is negated, to when the device shall be ready to detect OOB signals (see SATA 3.2).
If the DEVSLEEP EXIT TIMEOUT field is cleared to zero, the host should use 20 ms as the DevSleep Exit Timeout
value.
See SATA 3.2 for more information.
9.11.10.6.3 MINIMUM DEVSLP ASSERTION TIME field
The MINIMUM DEVSLP ASSERTION TIME field (i.e., MDAT in SATA 3.2) contains the minimum time, in ms, that the
host shall assert DEVSLP, after it has been asserted. If the MINIMUM DEVSLP ASSERTION TIME field is cleared to
zero, the host should use 10 ms as the Minimum DevSleep Assertion Time value.
See SATA 3.2 for more information.
If the last LBA Status log page contains less than 15 valid LBA status descriptors (i.e., nonzero value in the
NUMBER OF LOGICAL BLOCKS field), then the remaining LBA status descriptors in that LBA Status log page shall be
padded with zero filled LBA status descriptors.
The maximum size of the LBA Status Log shall be reported in the General Purpose Log Directory (see 9.2). If
the LBA Status log defines fewer pages than those reported in the General Purpose Log Directory, then the
device shall return zeroes for the data in additional pages.
If this log is not able to return LBA status for all LBAs, then the last LBA Status Descriptor (see table 268) shall
indicate that the remaining LBA statuses are unknown (i.e., the TRIM STATUS bit is cleared to zero).
9.12.2 Number of LBA Valid Ranges log page (Page 0000h)
The Number of LBA Valid Ranges log page (see table 266) contains the number of LBA status descriptors that
contain valid LBA status.
b) the NUMBER OF LOGICAL BLOCKS field in the last LBA Status Descriptor of the previous LBA Status Log
page.
The STARTING LOGICAL BLOCK ADDRESS field shall contain the starting LBA of the range of LBAs for which this
descriptor reports LBA status.
The NUMBER OF LOGICAL BLOCKS field shall contain the number of logical blocks in the range of LBAs for which
this descriptor reports LBA status.
The TRIM STATUS bit set to one indicates the range of LBAs specified by this descriptor is trimmed (see 7.5.3.3).
The TRIM STATUS bit cleared to zero indicates the range of LBAs specified by this descriptor is not trimmed or the
status is unknown.
The STARTING LOGICAL BLOCK ADDRESS field in the first LBA Status Descriptor returned in this LBA Status log page
shall contain the value specified in the FIRST LOGICAL BLOCK ADDRESS field of this LBA Status log page. For
subsequent LBA Status Descriptors, the contents of the STARTING LOGICAL BLOCK ADDRESS field shall contain
the sum of the values in:
a) the STARTING LOGICAL BLOCK ADDRESS field in the previous LBA Status Descriptor; and
b) the NUMBER OF LOGICAL BLOCKS field in the previous LBA Status Descriptor.
Adjacent LBA Status Descriptors may or may not have different values for the TRIM STATUS bit.
Offset Description
0 Bit Name
7 NQ bit (see 9.14.3)
6 UNL bit (see 9.14.4)
5 DEFERRED ERROR bit (see 9.14.6)
0 = Current information (see 4.23.2)
1 = Deferred error (see 4.23.2)
4:0 NCQ TAG field (see 9.14.2)
1 Reserved
2 STATUS field (see 9.14.5)
3 ERROR field (see 9.14.5)
4 LBA field (7:0) (see 9.14.5)
5 LBA field (15:8) (see 9.14.5)
6 LBA field (23:16) (see 9.14.5)
7 DEVICE field (see 9.14.5)
8 LBA field (31:24) (see 9.14.5)
9 LBA field (39:32) (see 9.14.5)
10 LBA field (47:40) (see 9.14.5)
11 Reserved
12 COUNT field (7:0) (see 9.14.5)
13 COUNT field (15:8) (see 9.14.5)
14 SENSE KEY field (see 9.14.6)
15 ADDITIONAL SENSE CODE field (see 9.14.6)
16 ADDITIONAL SENSE CODE QUALIFIER field (see 9.14.6)
17 FINAL LBA IN ERROR field (7:0) (see 9.14.7)
18 FINAL LBA IN ERROR field (15:8) (see 9.14.7)
19 FINAL LBA IN ERROR field (23:16) (see 9.14.7)
20 FINAL LBA IN ERROR field (31:24) (see 9.14.7)
21 FINAL LBA IN ERROR field (39:32) (see 9.14.7)
22 FINAL LBA IN ERROR field (47:40) (see 9.14.7)
23..255 Reserved
256..510 Vendor Specific
511 Checksum (see 9.14.8)
Offset Description
512 WRITE POINTER VALID field (7:0) (see 9.14.9)
513 WRITE POINTER VALID field (15:8) (see 9.14.9)
514 WRITE POINTER VALID field (23:16) (see 9.14.9)
515 WRITE POINTER VALID field (31:24) (see 9.14.9)
516 WRITE POINTER[0] field (7:0) (see 9.14.10)
517 WRITE POINTER[0] field (15:8) (see 9.14.10)
518 WRITE POINTER[0] field (23:16) (see 9.14.10)
519 WRITE POINTER[0] field (31:24) (see 9.14.10)
520 WRITE POINTER[0] field (39:32) (see 9.14.10)
521 WRITE POINTER[0] field (47:40) (see 9.14.10)
… …
702 WRITE POINTER[31] field (7:0) (see 9.14.10)
703 WRITE POINTER[31] field (15:8) (see 9.14.10)
704 WRITE POINTER[31] field (23:16) (see 9.14.10)
705 WRITE POINTER[31] field (31:24) (see 9.14.10)
706 WRITE POINTER[31] field (39:32) (see 9.14.10)
707 WRITE POINTER[31] field (47:40) (see 9.14.10)
708..1 022 Reserved
1 023 Write pointer checksum (see 9.14.11)
LBA (7:0): Shall be set to C4h if the unload is being executed or has returned command completion without an
error.
Shall be set to 4Ch if the unload was not accepted or has failed.
9.14.5 Return Fields
The STATUS field, ERROR field, LBA field and COUNT field indicate the error that caused the device to stop
processing NCQ commands.
The value returned in the ERROR field of the NCQ Command Error log may be different than the value returned in
the ERROR field of the command Error Output structure when the initial error condition is indicated. The ERROR
field in command Error Output structure is used for the purpose of signaling an error for an NCQ command, while
the value in the ERROR field of the NCQ Command Error log provides specific information about the error
condition.
9.14.6 NCQ Autosense
If the device supports NCQ Autosense (i.e., the NCQ AUTOSENSE SUPPORTED bit (see 9.11.10.2.21) is set to one),
then:
a) the DEFERRED ERROR bit shall be set as defined in 4.23.2;
b) the SENSE KEY field shall be set as defined in SPC-4;
c) the ADDITIONAL SENSE CODE field shall be set as defined in SPC-4; and
d) the ADDITIONAL SENSE CODE QUALIFIER field shall be set as defined in SPC-4.
If the device does not support NCQ Autosense (i.e., the NCQ AUTOSENSE SUPPORTED bit (see 9.11.10.2.21) is
cleared to zero), then:
a) the DEFERRED ERROR bit shall be cleared to zero;
b) the SENSE KEY field shall be cleared to zero;
c) the ADDITIONAL SENSE CODE field shall be cleared to zero; and
d) the ADDITIONAL SENSE CODE QUALIFIER field shall be cleared to zero.
9.14.7 FINAL LBA IN ERROR field
If:
a) the REBUILD ASSIST ENABLED bit is set to one (see 9.11.10.3.11);
b) the command that is completes with an error is a READ FPDMA QUEUED command (see 7.21) or a
WRITE FPDMA QUEUED command (see 7.57);
c) the sense key is ABORTED COMMAND (see SPC-4); and
d) the additional sense code is MULTIPLE READ ERRORS or MULTIPLE WRITE ERRORS (see SPC-4),
then the FINAL LBA IN ERROR field shall contain the LBA of the last logical block (i.e., the highest numbered LBA) in
a sequence of contiguous unrecovered logical blocks (see 4.18).
Otherwise, the FINAL LBA IN ERROR field shall be cleared to zero.
9.14.8 Checksum
The data structure checksum is the two’s complement of the sum of the first 511 bytes in the data structure.
Each byte shall be added with eight-bit unsigned arithmetic and overflow shall be ignored. The sum of the first
512 bytes of the data structure shall be zero.
9.14.9 WRITE POINTER VALID field
For each write command to a zone with a valid write pointer (see ZAC) that is terminated as the result of an NCQ
command failure, based on the tag associated with that command (e.g, tag n):
a) the corresponding bit in the WRITE POINTER VALID field (e.g. bit n) shall be set to one; and
b) the corresponding WRITE POINTER[0..31] field (e.g., the WRITE POINTER[n] field) shall be set to the value of
the write pointer at the time the write command was terminated.
EXAMPLE - If a write command with tag 3 is terminated, bit 3 of the WRITE POINTER VALID field is set to one, and WRITE
POINTER[3] field contains the value of the write pointer at the time the write command was terminated.
The WRITE POINTER VALID field bits associated with all other tags shall be cleared to zero, and the contents of the
corresponding WRITE POINTER[0..31] fields are invalid.
9.14.10 WRITE POINTER[0..31] fields
Each WRITE POINTER[0..31] field shall contain a valid or invalid write pointer as described in 9.14.9.
9.14.11 Write pointer checksum
The write pointer checksum field contains the two’s complement sum of bytes 512..1 022 in the data structure.
Each byte shall be added using eight-bit unsigned arithmetic and overflow shall be ignored. The sum of bytes
512..1 023 in the data structure is zero.
The DATA STRUCTURE VERSION field shall contain a value of 02h indicating the second revision of the structure
format.
The READ STREAM ERROR COUNT field shall contain the number of uncorrected logical sector entries reportable to
the host. This value may exceed 31.
The ERROR LOG INDEX field indicates the error log data structure representing the most recent error. Only values
one through 31 are valid.
Table 273 defines the format of each entry in the Read Stream Error log.
Offset Description
0 FEATURE field (7:0)
1 FEATURE field (15:8)
2 STATUS field
3 ERROR field
4 LBA field (7:0)
5 LBA field (15:8)
6 LBA field (23:16)
7 LBA field (31:24)
8 LBA field (39:32)
9 LBA field (47:40)
10..11 Reserved
12 COUNT field (7:0)
13 COUNT field (15:8)
14 Reserved
15 Reserved
Byte 0..1 contains the contents of the FEATURE field when the error occurred. In the Write Stream Error log
(see 9.24), this value shall be set to FFFFh for a deferred write error.
Byte 2 contains the contents of the STATUS field when the error occurred.
Byte 3 contains the contents of the ERROR field when the error occurred.
Bytes 4..9 indicate the starting LBA of the error.
Bytes 12..13 contain the contents of the COUNT field indicating the length of the error. Each entry may describe a
range of logical sectors starting at the given LBA and spanning the specified number of logical sectors.
If the device receives a BIST Activate FIS, then the device shall reset all SATA Phy event counters to their reset
value (see SATA 3.2).
If the SATA Phy Event Counters log is read and the FEATURE field set to 0001h, the device shall return the current
counter values for the command and then reset all Phy event counter values.
9.16.2 Counter x Identifier
SATA Phy event counter identifier that corresponds to Counter n Value. Specifies the particular event counter
that is being reported. Valid identifiers are listed in SATA 3.2.
9.16.3 Counter x Value
Value of the SATA Phy event counter that corresponds to Counter x Identifier. The number of significant bits is
determined by Counter x Identifier bits 14:12, see SATA 3.2 for more information. The length of Counter x Value
shall always be a multiple of 16 bits. All counters are one-extended (e.g., if a counter is only physically
implemented as eight bits after it reaches the maximum value of FFh, it shall be one-extended to FFFFh). The
counter shall stop (i.e., not wrap to zero) after reaching its maximum value.
9.16.4 Counter x Length
Size of the SATA Phy event counter as defined by bits 14:12 of Counter n Identifier. The size of the SATA Phy
event counter shall be a multiple of 16 bits.
9.16.5 Checksum
The data structure checksum is the two’s complement of the sum of the first 511 bytes in the data structure.
Each byte shall be added with unsigned arithmetic and overflow shall be ignored. The sum of all 512 bytes of the
data structure is zero when the checksum is correct.
Editor’s Note 63: Not sure we should reserved all these subcommand entries. This seems really
different from the send/receive data log
9.18 SATA NCQ Send and Receive log (Log Address 13h)
9.18.1 Overview
To determine the supported SEND FPDMA QUEUED subcommands, RECEIVE FPDMA QUEUED
subcommands, and their respective features, the host reads log address 13h. This log shall be supported if the
SEND AND RECEIVE QUEUED COMMANDS SUPPORTED bit (see 9.11.10.2.14) is set to one. Table 276 defines the 512
bytes that make up the SATA NCQ Send and Receive log.
Table 276 — SATA NCQ Send and Receive log (log page 00h)
Data transfer lengths shall be non-zero multiples of 512 bytes. Pad bytes shall be appended to meet this
requirement. Pad bytes shall have a value of 00h.
N is the the number of hybrid information descriptors (see 9.19.2.2) reported in the Hybrid Information Header.
Table 279 indicates the value that the device shall indicate in IDENTIFY DEVICE in each case.
Bit Description
7:2 Reserved
1 SUPPORTS AVOID HYBRID SPINUP bit (see 9.19.2.11.2)
0 MAX PRIORITY BEHAVIOR bit (see 9.19.2.11.3)
Editor’s Note 65: Changed SUPPORTS CACHE BEHAVIOR bit to SUPPORTS AVOID HYBRID SPINUP bit below.
If the SUPPORTS AVOID HYBRID SPINUP bit is set to one, then the device supports per-command tagging of the
HYBRID CHANGE BY LBA RANGE command to control the movement of logical sectors into the non-volatile
cache if a command specifies a hybrid caching priority level other than the MAXIMUM CACHING PRIORITY LEVEL field
(see 9.19.2.8).
Editor’s Note 66: Interestingly, the max priority field shown above does not seem to appear
anywhere. I substituted maximum caching priority level field, I hope this was right.
255-
Consumed Capacity Fraction = A
-------------------
B
where:
A is the current number of logicl sectors associated with this priority; and
B is NVM Size (see 9.19.2.13)
255-
Consumed NVM Size for Dirty Data Fraction = A
-------------------
B
where:
A is the current NVM Size consumed by dirty data associated with this hybrid priority; and
B is NVM Size (see 9.19.2.13)
If:
a) the device processes a command to write to the Rebuild Assist log;
b) the REBUILD ASSIST SUPPORTED bit is set to one (see 9.11.10.2.27); and
c) the MANAGE REBUILD ASSIST bit is cleared to zero (see 9.20.2),
then the device shall:
1) disable the Rebuild Assist feature set as follows:
A) clear the rebuild assist enabled bit to zero (see 9.11.10.3.11);
B) set the PHYSICAL ELEMENT LENGTH field to a non-zero value (see 9.20.3);
C) set the DISABLED PHYSICAL ELEMENT MASK field to a vendor specific value (see 9.20.4); and
D) clear the DISABLED PHYSICAL ELEMENTS field to zero (see 9.20.5);
2) ignore all other data written to the Rebuild Assist log by that command; and
3) return command completion with no error.
If:
a) the device processes a command to write to the Rebuild Assist log;
b) the REBUILD ASSIST SUPPORTED bit is set to one; and
c) the MANAGE REBUILD ASSIST bit is set to one,
then:
1) if:
A) the device is unable to enable the Rebuild Assist feature set;
B) the host attempts to set any bits to one in the DISABLED PHYSICAL ELEMENTS field that are cleared to
zero in the DISABLED PHYSICAL ELEMENT MASK field; or
C) the host attempts to set all bits to one in the DISABLED PHYSICAL ELEMENTS field that are set to one in
the DISABLED PHYSICAL ELEMENT MASK field (i.e., attempt to disable all physical elements),
MANAGE
REBUILD
Log ASSIST
operation bit Description
read 0 or 1 copy of the REBUILD ASSIST ENABLED bit (see 9.11.10.3.11)
write 0 host request to disable the Rebuild Assist feature set
write 1 host request to enable the Rebuild Assist feature set a
a
If the REBUILD ASSIST SUPPORTED bit is cleared to zero (see 9.11.10.2.27), the Rebuild Assist feature
set shall not be enabled.
Offset Description
0..1 Self-test log data structure revision number (word)
2..25 First descriptor entry
26..49 Second descriptor entry
… …
482..505 Twenty-first descriptor entry
506..507 Vendor specific
508 Self-test index
509..510 Reserved
511 Data structure checksum
The SMART Self-Test log is a circular buffer. If fewer than 21 self-tests have been performed by the device, the
unused descriptor entries shall be filled with zeroes.
9.22.2 Self-test log data structure revision number
The value of the self-test log data structure revision number shall be 0001h.
9.22.3 Self-test log descriptor entry
The content of the self-test descriptor entry is shown in table 288.
Offset Description
n Content of the LBA field (7:0)
n+1 Content of the self-test execution status byte
n+2..n+3 Life timestamp (word)
n+4 Content of the self-test failure checkpoint byte
n+5 Failing LBA (7:0)
n+6 Failing LBA (15:8)
n+7 Failing LBA (23:16)
n+8 Failing LBA (27:24)
n+9..n+23 Vendor specific
Content of the LBA field (7:0) shall be the content of the LBA field (7:0) when the nth self-test subcommand was
issued (see ACS-3).
Content of the self-test execution status byte shall be the content of the self-test execution status byte when the
nth self-test was completed (see ACS-3).
Life timestamp shall contain the power-on lifetime of the device in hours when the nth self-test subcommand was
completed.
Content of the self-test failure checkpoint byte may contain additional information about the self-test that failed.
The failing LBA shall be the LBA of the uncorrectable logical sector that caused the test to fail. If the device
encountered more than one uncorrectable logical sector during the test, this field shall indicate the LBA of the
first unrecoverable error (see 6.8.2). If the test passed or the test failed for some reason other than an
uncorrectable logical sector, the value of this field is undefined.
9.22.4 Self-test index
The self-test index shall point to the most recent entry. If the log is empty, then the index shall be cleared to zero.
It shall be set to one when the first entry is made, two for the second entry, etc., until the 22nd entry, when the
index shall be reset to one.
9.22.5 Data structure checksum
The data structure checksum is the two's complement of the sum of the first 511 bytes in the data structure.
Each byte shall be added with unsigned arithmetic, and overflow shall be ignored. The sum of all 512 bytes is
zero when the checksum is correct. The checksum is placed in byte 511.
Offset Description
0 SMART error log version
1 Error log index
2..91 First error log data structure
92..181 Second error log data structure
182..271 Third error log data structure
272..361 Fourth error log data structure
362..451 Fifth error log data structure
452..453 Device error count (word)
454..510 Reserved
511 Data structure checksum
Offset Description
n – n+11 First command data structure
n+12 – n+23 Second command data structure
n+24 – n+35 Third command data structure
n+36 – n+47 Fourth command data structure
n+48 – n+59 Fifth command data structure
n+60 – n+89 Error data structure
Offset Description
n Transport specific value when the Command was initiated. See the
appropriate transport standard, reference Device Control field.
n+1 Content of the FEATURE field (7:0) when the Command was initiated
n+2 Content of the COUNT field (7:0) when the Command was initiated
n+3 Content of the LBA field (7:0) when the Command was initiated
n+4 Content of the LBA field (15:8) when the Command was initiated
n+5 Content of the LBA field (23:16) when the Command was initiated
n+6 Content of the DEVICE field when the Command was initiated
n+7 Content written when the Command was initiated
n+8..n+11 Timestamp (DWord)
Timestamp shall be the time since power-on in milliseconds when command acceptance occurred. This
timestamp may wrap around.
9.23.4.3 Error data structure
The error data structure shall contain the error description of the command for which an error was reported as
described in table 291. If the error was logged for a hardware reset, the content of bytes n+1 through n+7 shall
be vendor specific and the remaining bytes shall be as defined in table 292.
Offset Description
n Reserved
n+1 Content of the ERROR field (7:0) after command completion occurred
n+2 Content of the COUNT field (7:0) after command completion occurred
n+3 Content of the LBA field (7:0) after command completion occurred
n+4 Content of the LBA field (15:8) after command completion occurred
n+5 Content of the LBA field (23:16) after command completion occurred
n+6 Content of the DEVICE field after command completion occurred
n+7 Content written to the STATUS field after command completion occurred
n+8..n+26 Extended error information
n+27 State
n+28..n+29 Life timestamp (word)
The State byte shall contain a value indicating the state of the device when the command was initiated or the
reset occurred as described in table 293.
Value a State
x0h Unknown
x1h Sleep
x2h Standby
x3h Active/Idle
x4h Executing SMART off-line or self-test
x5h..xAh Reserved
xBh..xFh Vendor specific
a The value of x is vendor specific and may be different for each state.
Sleep indicates the reset for which the error being reported was received while the device was in the Sleep mode
(see 4.16.4).
Standby indicates the command or reset for which the error being reported was received while the device was in
the Standby mode (see 4.16.4).
Active/Idle indicates the command or reset for which the error being reported was received while the device was
in the Active mode or Idle mode (see 4.16.4).
Processing SMART off-line or SMART self-test indicates the command or reset for which the error being reported
was received when the device was processing a SMART off-line or SMART self-test (see ACS-3).
The Life timestamp word shall contain the power-on lifetime of the device in hours when command completion
occurred.
9.23.5 Device error count
The Device error count word shall contain the total number of errors attributable to the device that have been
reported by the device during the life of the device including: uncorrectable errors, ID not found errors for which
the LBA requested was valid, servo errors, and write fault errors. The device error count shall not include errors
attributed to the receipt of faulty commands (e.g., command codes not implemented by the device or requests
with invalid parameters or invalid LBAs). If the maximum value for this word is reached, the count shall remain at
the maximum value if additional errors are encountered and logged.
9.23.6 Data structure checksum
The data structure checksum is the two's complement of the sum of the first 511 bytes in the data structure.
Each byte shall be added with unsigned arithmetic, and overflow shall be ignored. The sum of all 512 bytes shall
be zero when the checksum is correct. The checksum is placed in byte 511.
The DATA STRUCTURE VERSION field shall contain a value of 02h indicating the second revision of the structure
format.
The WRITE STREAM ERROR COUNT field shall contain the number of WRITE STREAM EXT command (see 7.63)
entries since the last power-on reset, hardware reset, or since this log was last read.
The ERROR LOG INDEX field indicates the error log data structure representing the most recent error. Only values
one through 31 are valid.
Table 273 defines the format of each Write Stream Error log Entry.
9.25 Current Device Internal Status Data log (Log Address 24h)
9.25.1 Overview
The Current Device Internal Status Data log consists of:
a) the Current Device Internal Status Data header page (i.e., log page 0) (see 9.25.2); and
b) zero or more Current Device Internal Status Data pages (i.e., log pages 1..n) (see 9.25.3).
The number of log pages indicated in the General Purpose Log Directory (i.e., log 00h):
a) may change as a result of processing:
A) a power on reset; or
B) a download microcode activation;
b) shall not change from the completion of processing a power on reset until:
A) a subsequent power on reset; or
B) a download microcode activation;
and
c) shall be the largest number of pages of Internal Status Data that the device is capable of returning.
The device shall return data for all pages with page numbers less than the log size reported in the General
Purpose Log Directory for this log (i.e., 24h).The data beyond the last page in data area 3 is not specified by
this standard.
The current device internal status data is the data representing the internal state of the device at the time the
Current Device Internal Status Data log was read with the FEATURE field set to 0001h and shall not change until
the device processes:
a) a subsequent read of the Current Device Internal Status Data log with bit 0 in the FEATURE field set to
one;
b) a download microcode activation;
c) a power on reset; or
d) a software reset.
The current device internal status data may be retrieved by one or more reads of log pages within the range of
0..n.
The Current Device Internal Status Data log consists of three areas.
9.25.2 Current Device Internal Status Data header page
9.25.2.1 Current Device Internal Status Data header page overview
The Current Device Internal Status Data header is described in table 295.
9.25.2.5 DEVICE INTERNAL STATUS DATA AREA 2 LAST LOG PAGE field
The DEVICE INTERNAL STATUS DATA AREA 2 LAST LOG PAGE field contains the value of the last page of Device
Internal Status data area 2 within the Device Internal Status data pages.
The value in the DEVICE INTERNAL STATUS DATA AREA 2 LAST LOG PAGE field shall be greater than or equal to the
value in the DEVICE INTERNAL STATUS DATA AREA 1 LAST LOG PAGE field. If the DEVICE INTERNAL STATUS DATA AREA 2
LAST LOG PAGE field is not cleared to zero, then the Device Internal Status data area 2:
log page n
Figure 12 — Example of a Device Internal Status log with data in all three data areas
Device Internal Status data pages (1..n),
where n is the number of pages indicated
log page n
in the General Purpose Log Directory for
this log.
Figure 13 is an example of a Device Internal Status log with no data in Device Internal Status Data Area 1, data
in Device Internal Status Data Area 2, and no additional data in Device Internal Status Data Area 3.
Figure 14 — Example of a Device Internal Status log with mixed data areas
9.26 Saved Device Internal Status Data log (Log Address 25h)
9.26.1 Overview
The Saved Device Internal Status Data Log consists of:
a) the Saved Device Internal Status Data header page (i.e., log page 0) (see 9.26.2); and
b) zero or more Saved Device Internal Status Data pages (i.e., log pages 1..n) (see 9.26.3).
The saved device internal status data in the Saved Device Internal Status Data log is a device initiated capture of
the device internal state. The contents of the Saved Device Internal Status Data log shall persist across all
resets.
The saved device internal status data log consists of three areas.
9.26.2 Saved Device Internal Status Data header page
9.26.2.1 Saved Device Internal Status Data header page overview
The Saved Device Internal Status Data header is described in table 297.
If the device saves Saved Device Internal Status Data in the Saved Device Internal Status Data log, the SAVED
DATA AVAILABLE field shall be set to one.
9.26.2.4 SAVED DATA GENERATION NUMBER field
The SAVED DATA GENERATION NUMBER field shall contain a value that is incremented each time the device initiates
a capture of its internal device state into the Saved Device Internal Status Data.
Page Description
00h Summary page (see table 300)
01h Definition page 1 (see table 302)
… …
n Definition page n (see table 302)
n+1..FFh Reserved
Table 300 defines the Summary page of the Device Statistics Notifications log that consists of a list of the device
statistics whose Device Statistic Conditions have been matched.
The CORRESPONDING PAGE field indicates the page number of the Device Statistics log (see 9.5) referred to by
this DSN Match Entry.
The CORRESPONDING OFFSET field indicates the byte offset to the first byte of device statistic within the
corresponding page referred to by this DSN Match Entry.
Table 302 defines the format for Definition pages of the Device Statistics Notifications log (e.g., pages 01h..07h).
Each Threshold value is specified in the units of the Device Statistic at the equivalent offset.
Table 303 defines the format for the DSN CONDITION FLAGS field.
A sanitize operation (see 4.19.4) removes all descriptors from the Pending Defects log.
A logical sector may be removed from the log if it is in the same physical sector as another logical sector that is
removed from the log.
9.28.5 Contents of the Pending Defects log
The size of the log may change as a result of a power on reset or activating new firmware (e.g. DOWNLOAD
MICROCODE command).
Table 304 defines the format of the Pending Defects log for page 0. Table 305 defines the format of all
subsequent pages of the log. The size (i.e., number of pages) of the Pending Defects log is indicated in the
General Purpose Directory log (see 9.2).
At the time that a Pending Defects descriptor is created, the device shall set the POWER ON HOURS field to:
a) the current value of the Power On Hours device statistic (see 9.5.4.4), if the Power On Hours device
statistic is supported and is valid; and
b) FFFF_FFFFh if the Power On Hours device statistic is not supported or is not valid.
The LBA field indicates the LBA that is associated with an uncorrectable media error (see 9.28.2).
9.29 Sense Data for Successful NCQ Commands log (Log address 0Fh)
9.29.1 Overview
The Sense Data for Successful NCQ Commands log returns sense data, if any, provided by one or more NCQ
commands before their command completion without error. This log is 1 024 bytes in length (i.e., two pages),
shall be supported if the SUCCESSFUL NCQ COMMAND SENSE DATA SUPPORTED bit is set to one (see 9.11.5.2.40),
and is defined in table 307.
Table 307 — Sense Data for Successful NCQ Commands log pages 0 and 1
10.1 Overview
The commands listed in clause 7 each have subclauses labeled Normal Outputs and Error Outputs. Subclauses
10.2 and 10.3 document the return data format for all the commands described in clause 7. Each command in
clause 7 may provide additional information about a normal or error output, however, all the information specified
in clause 10 shall also apply to the command.
The references preceding each table indicate each command that generates the output in the table.
Table 311 — Generic Normal Output (No LBA Return Value) for Normal Output
Field Description
ERROR N/A
COUNT N/A
LBA N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A or ALIGNMENT ERROR bit – See 6.2.2
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 312 specifies the normal outputs for the commands defined in 7.7 and 7.8.
Field Description
ERROR N/A
COUNT If Download with offsets and save microcode for immediate and future use was specified (see 7.7),
then this field contains a value as specified in table 43. Otherwise, this field is N/A.
LBA N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A or ALIGNMENT ERROR bit – See 6.2.2
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 313 specifies the normal outputs for the commands defined in 7.3.
Field Description
ERROR N/A
COUNT
Value Description
00h Device is in the:
a) PM2:Standby state (see 4.16.4) and the EPC feature set (see 4.9) is not
enabled; or
b) PM2:Standby state, the EPC feature set is enabled, and the device is in the
Standby_z power condition (see 4.9.2).
01h Device is in the PM2:Standby state, the EPC feature set is enabled, and the device is
in the Standby_y power condition (see 4.9.2).
02h..3Fh Reserved
40h..41h Obsolete
42h..7Fh Reserved
80h Device is in the
a) PM1:Idle state (see 4.16.4) and EPC feature set is not supported; or
b) PM1:Idle state and EPC feature set is supported and the EPC feature set is
disabled.
81h Device is in the PM1:Idle state, the EPC feature set is enable, and the device is in the
Idle_a power condition (see 4.9.2).
82h Device is in the PM1:Idle state, the EPC feature set is enabled, and the device is in
the Idle_b power condition (see 4.9.2).
83h Device is in the PM1:Idle state, the EPC feature set is enabled, and the device is in
the Idle_c power condition (see 4.9.2).
84h..FEh Reserved
FFh Device is in the PM0:Active state or PM1:Idle state.
Field Description
LBA If the LOW POWER STANDBY SUPPORTED bit is set to one (see 9.11.5.2.36), then this field is as
described in this table. Otherwise this field is N/A.
Bit Description
27:20 Device is waiting to enter a lower power condition:
Value Description
00h Standby_z
01h Standby_y
02h..80h Reserved
81h Idle_a
82h Idle_b
83h Idle_c
84h..FEh Reserved
FFh Device is not waiting to enter a lower power condition
19 Device is held in the current power condition
18:0 Reserved
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 314 specifies the normal outputs for the commands defined in 7.4, 7.26, and 7.62.
Field Description
ERROR N/A
COUNT Reserved
LBA Reserved
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 STREAM ERROR bit – See 6.2.10
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A or ALIGNMENT ERROR bit – See 6.2.2
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 315 specifies the normal outputs for the command defined in 7.9.
Field Description
ERROR Diagnostic Results – The diagnostic code as described in table 46 is returned.
COUNT
Host
Managed
ATA Zoned
Bits device a device a Reserved for SATA a Obsolete a
COUNT field (7:0) 01h 01h 01h 01h 01h N/A
LBA LBA field (27:24) Reserved Reserved Reserved Reserved Reserved Reserved
LBA field (23:16) 00h ABh C3h 96h EBh AAh
LBA field (15:8) 00h CDh 3Ch 69h 14h CEh
LBA field (7:0) 01h 01h 01h 01h 01h N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 Shall be cleared to zero.
a
Values not specified in one of these columns are reserved.
Table 316 specifies the normal outputs for the commands defined in 7.14.
Field Description
ERROR N/A
COUNT N/A
LBA
Bit Description
27:8 N/A
7:0 C4h
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 317 specifies the normal outputs for the commands defined in 7.44.3.
Field Description
ERROR N/A
COUNT N/A
LBA
Bit Description
27:24 N/A
23:8
Value Description
C24Fh The subcommand specified a captive self-test that has completed
without error.
2CF4h The device has detected a threshold exceeded condition
All Other Undefined
Values
7:0 N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 318 specifies the normal outputs for the commands defined in 7.2.2, 7.2.3, 7.2.4, 7.5, 7.11, 7.20, 7.22,
7.25, 7.29, 7.39, 7.48, 7.50, 7.55, 7.56, 7.58, and 7.61.
Field Description
ERROR Reserved
COUNT Reserved
LBA Reserved
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A or ALIGNMENT ERROR bit – See 6.2.2
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 319 specifies the normal outputs for the commands defined in 7.15.11, 7.15.12, 7.21, 7.30, 7.39, and 7.57.
Field Description
ERROR Shall be cleared to zero
COUNT N/A
LBA N/A
DEVICE
Bit Description
7:4 N/A
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 320 specifies the normal outputs for the commands defined in 7.15.11, 7.15.12, 7.21, 7.30, 7.39, and 7.57.
Field Description
SATA Transport Dependent
STATUS
ERROR Shall be cleared to zero
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A or ALIGNMENT ERROR bit – See 6.2.2
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
SACTIVE
Bit Description
31:0 Transport dependent completion indicator
Table 321 specifies the normal outputs for the commands defined in 7.31.
Field Description
ERROR Reserved
COUNT Reserved
LBA
Bit Description
47:24 Vendor Specific
23:21 Reserved
20 DEFERRED ERROR bit – See 7.31.4
0 = Current information (see 4.23.2)
1 = Deferred error (see 4.23.2)
19:16 SENSE KEY field – See 7.31.4
15:8 ADDITIONAL SENSE CODE field – See 7.31.4
7:0 ADDITIONAL SENSE CODE QUALIFIER field – See 7.31.4
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5:2 Reserved
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 322 specifies the normal outputs for the GET NATIVE MAX ADDRESS command defined in 7.2.2.
Field Description
ERROR Reserved
COUNT Reserved
LBA Maximum LBA
DEVICE
Bit Description
7:4 N/A
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 323 specifies the normal outputs for the commands defined in 7.32.
Field Description
ERROR Reserved
COUNT
Bit Description
15 SANITIZE OPERATION COMPLETED WITHOUT ERROR bit – the contents of the Sanitize
Operation Completed Without Error value (see 4.19.7)
14 1 = the device is in the SD2: Sanitize Operation In Progress state (see 4.19.10.4)
0 = the device is not in the SD2: Sanitize Operation In Progress state
13 1 = the device is in the SD1: Sanitize Frozen state (see 4.19.10.3)
0 = the device is not in the SD1: Sanitize Frozen state
12 SANITIZE ANTIFREEZE bit – the contents of the Sanitize Antifreeze value (see 4.19.9)
11:0 Reserved
LBA
Bit Description
47:16 Reserved
15:0 SANITIZE PROGRESS INDICATION field – This value indicates the fraction complete of
the sanitize operation while the device is in the SD2: Sanitize Operation In Progress
state (see 4.19.10.4). The value is a numerator that has 65 536 (1_0000h) as its
denominator. This value shall be set to FFFFh if the device is not in the SD2:
Sanitize Operation In Progress state (i.e., a sanitize operation is not in process).
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 324 specifies the error outputs for the commands defined in 7.1.9.
Field Description
ERROR
Bit Description
7:3 N/A
2 ABORT bit – See 6.3.2
1:0 N/A
COUNT N/A
LBA N/A
DEVICE
Bit Description
7:4 N/A
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5:2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 325 specifies the error outputs for the command defined in 7.3.
Field Description
ERROR
Bit Description
7:3 N/A
2 ABORT bit – See 6.3.2
1:0 N/A
COUNT N/A
LBA N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4:2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 326 specifies the error outputs for the commands defined in 7.2.2, 7.2.4, 7.13, 7.14, 7.31, 7.34, 7.36,
7.41.1.5, 7.41.19.2.4, 7.41.19.3.4, 7.41.19.4.5, 7.41.19.5.4, 7.42, 7.43, 7.44.3, 7.45, 7.46, and 7.64.
Field Description
ERROR
Bit Description
7:3 N/A
2 ABORT bit – See 6.3.2
1:0 N/A
COUNT N/A
LBA N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 327 specifies the error outputs for the commands defined in 7.7, 7.12.5, 7.17, 7.33, 7.35, 7.37, 7.38, and
7.52.
Field Description
ERROR
Bit Description
7 INTERFACE CRC bit – See 6.3.5
6:3 N/A
2 ABORT bit – See 6.3.2
1:0 N/A
COUNT N/A
LBA N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 328 specifies the error outputs for the commands defined in 7.48 and 7.50.
Field Description
ERROR
Bit Description
7 INTERFACE CRC bit – See 6.3.5
6:3 N/A
2 ABORT bit – See 6.3.2
1:0 N/A
COUNT Reserved
LBA Reserved
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 329 specifies the error outputs for the commands defined in 7.4.
Field Description
ERROR
Bit Description
7:3 N/A
2 ABORT bit – See 6.3.2
1:0 N/A
COUNT Reserved
LBA Reserved
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 STREAM ERROR bit – See 6.2.10
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 330 specifies the error outputs for the commands defined in 7.10.
Field Description
ERROR
Bit Description
7:3 N/A
2 ABORT bit – See 6.3.2
1:0 N/A
COUNT N/A
LBA LBA of First Unrecoverable Error – See 6.8.2
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 331 specifies the error outputs for the commands defined in 7.11.
Field Description
ERROR
Bit Description
7:3 N/A
2 ABORT bit – See 6.3.2
1:0 N/A
COUNT Reserved
LBA LBA of First Unrecoverable Error – See 6.8.2
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 332 specifies the error outputs for the commands defined in 7.20.
Field Description
ERROR
Bit Description
7 INTERFACE CRC bit – See 6.3.5
6 UNCORRECTABLE ERROR bit – See 6.3.6
5 Obsolete
4 ID NOT FOUND bit – See 6.3.4
3 Obsolete
2 ABORT bit – See 6.3.2
1:0 Obsolete
COUNT Reserved
LBA LBA of First Unrecoverable Error – See 6.8.2
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 333 specifies the error outputs for the commands defined in 7.22.
Field Description
ERROR
Bit Description
7 INTERFACE CRC bit – See 6.3.5
6 UNCORRECTABLE ERROR bit – See 6.3.6
5 N/A
4 ID NOT FOUND bit – See 6.3.4
3 N/A
2 ABORT bit – See 6.3.2
1 N/A
0 Obsolete
COUNT Reserved
LBA Reserved
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 334 specifies the error outputs for the commands defined in 7.19, 7.24, and 7.28.
Field Description
ERROR
Bit Description
7 INTERFACE CRC bit – See 6.3.5
6 UNCORRECTABLE ERROR bit – See 6.3.6
5 Obsolete
4 ID NOT FOUND bit – See 6.3.4
3 Obsolete
2 ABORT bit – See 6.3.2
1:0 Obsolete
COUNT N/A
LBA LBA of First Unrecoverable Error – See 6.8.2
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 335 specifies the error outputs for the commands defined in 7.26.
Field Description
ERROR
Bit Description
7 INTERFACE CRC bit – See 6.3.5
6 UNCORRECTABLE ERROR bit – See 6.3.6
5 Obsolete
4 ID NOT FOUND bit – See 6.3.4
3 Obsolete
2 ABORT bit – See 6.3.2
1 Obsolete
0 COMMAND COMPLETION TIME OUT bit – See 6.3.3
COUNT Length of stream error – number of contiguous logical sectors containing potentially bad data,
beginning with the LBA indicated in the LBA field.
LBA LBA of the lowest numbered unrecoverable error
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 STREAM ERROR bit – See 6.2.10
4 DEFERRED WRITE ERROR bit – See 6.2.5
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 336 specifies the error outputs for the commands defined in 7.44.4.
Field Description
ERROR
Bit Description
7 INTERFACE CRC bit – See 6.3.5
6:5 N/A
4 ID NOT FOUND bit – See 6.3.4
3 N/A
2 ABORT bit – See 6.3.2
1 N/A
0 Obsolete
COUNT N/A
LBA N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 337 specifies the error outputs for the commands defined in 7.5 and 7.58.
Table 337 — Write Log Ext Error or Data Set Management Error
Field Description
ERROR
Bit Description
7 INTERFACE CRC bit – See 6.3.5
6:5 N/A
4 ID NOT FOUND bit – See 6.3.4
3 N/A
2 ABORT bit – See 6.3.2
1 N/A
0 Obsolete
COUNT Reserved
LBA Reserved
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 338 specifies the error outputs for the commands defined in 7.55, 7.56, and 7.61.
Field Description
ERROR
Bit Description
7 INTERFACE CRC bit – See 6.3.5
6:5 Obsolete.
4 ID NOT FOUND bit – See 6.3.4
3 Obsolete
2 ABORT bit – See 6.3.2
1 Obsolete
0 N/A
COUNT Reserved
LBA LBA of First Unrecoverable Error – See 6.8.2
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 339 specifies the error outputs for the commands defined in 7.62.
Field Description
ERROR
Bit Description
7 INTERFACE CRC bit – See 6.3.5
6:5 Obsolete
4 ID NOT FOUND bit – See 6.3.4
3 Obsolete
2 ABORT bit – See 6.3.2
1 Obsolete
0 COMMAND COMPLETION TIME OUT bit – See 6.3.3
COUNT Length of stream error – number of contiguous logical sectors containing potentially bad data,
beginning with the LBA indicated in the LBA field.
LBA LBA of the lowest numbered unrecoverable error
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 STREAM ERROR bit – See 6.2.10
4 DEFERRED WRITE ERROR bit – See 6.2.5
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8.
Table 340 specifies the error outputs for the command defined in 7.65.
Field Description
ERROR
Bit Description
7 Reserved
6:5 Obsolete.
4 ID NOT FOUND bit – See 6.3.4
3 Obsolete
2 ABORT bit – See 6.3.2
1 Obsolete
0 N/A
COUNT Reserved
LBA LBA of First Unrecoverable Error – See 6.8.2
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 341 specifies the error outputs for the commands defined in 7.16.
Field Description
ERROR
Bit Description
7:3 N/A
2 ABORT bit – See 6.3.2
1:0 N/A
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 342 specifies the error outputs for the command defined in 7.44.2.
Field Description
ERROR
Bit Description
7 INTERFACE CRC bit – See 6.3.5
6 UNCORRECTABLE ERROR bit – See 6.3.6
5 N/A
4 ID NOT FOUND bit – See 6.3.4
3 N/A
2 ABORT bit – See 6.3.2
1 N/A
0 Obsolete
COUNT N/A
LBA N/A
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 343 specifies the error outputs for the commands defined in 7.25 and 7.29.
Field Description
ERROR
Bit Description
7 INTERFACE CRC bit – See 6.3.5
6 UNCORRECTABLE ERROR bit – See 6.3.6.
5 N/A
4 ID NOT FOUND bit – See 6.3.4
3 N/A
2 ABORT bit – See 6.3.2
1 N/A
0 Obsolete
COUNT Reserved
LBA LBA of First Unrecoverable Error – See 6.8.2
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 344 specifies the error outputs for the command defined in 7.2.3.
Field Description
ERROR
Bit Description
7:5 N/A
4 ID NOT FOUND bit – See 6.3.4
3 N/A
2 ABORT bit – See 6.3.2
1 N/A
0 Obsolete
COUNT Reserved
LBA Reserved
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 345 specifies the error outputs for the command defined in 7.60.
Field Description
ERROR
Bit Description
7 INTERFACE CRC bit – See 6.3.5
6:5 Obsolete
4 ID NOT FOUND bit – See 6.3.4
3 Obsolete
2 ABORT bit – See 6.3.2
1 Obsolete
0 N/A
COUNT N/A
LBA LBA of First Unrecoverable Error – See 6.8.2
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 346 specifies the error outputs for the commands defined in 7.54.
Field Description
ERROR
Bit Description
7 INTERFACE CRC bit – See 6.3.5
6:5 Obsolete
4 ID NOT FOUND bit – See 6.3.4
3 Obsolete
2 ABORT bit – See 6.3.2
1:0 Obsolete
COUNT N/A
LBA LBA of First Unrecoverable Error – See 6.8.2
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 347 specifies the error outputs for the commands defined in 7.21.6 and 7.57.6.
Field Description
ERROR
Bit Description
7 INTERFACE CRC bit – See 6.3.5
6:3 N/A
2 ABORT bit – See 6.3.2
1:0 N/A
COUNT N/A
LBA N/A
DEVICE
Bit Description
7:4 N/A
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Table 348 specifies the error outputs for the commands defined in 7.57.6.
Field Description
SATA Transport Dependent
STATUS
ERROR
Bit Description
7 INTERFACE CRC bit – See 6.3.5
6:5 Obsolete
4 ID NOT FOUND bit – See 6.3.4
3 Obsolete
2 ABORT bit – See 6.3.2
1:0 Obsolete
STATUS
Bit Description
7 Shall be cleared to zero
6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Shall be cleared to zero.
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
SACTIVE
Bit Description
31:0 Transport dependent completion indicator
Table 349 specifies the error outputs for the commands defined in 7.21.6.
Field Description
SATA Transport Dependent
STATUS
ERROR
Bit Description
7 INTERFACE CRC bit – See 6.3.5
6 UNCORRECTABLE ERROR bit – See 6.3.6
5 Obsolete
4 ID NOT FOUND bit – See 6.3.4
3 Obsolete
2 ABORT bit – See 6.3.2
1:0 Obsolete
STATUS
Bit Description
7 Shall be cleared to zero
6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Shall be cleared to zero.
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
SACTIVE
Bit Description
31:0 Transport dependent completion indicator
Table 350 specifies the error outputs for the commands defined in 7.32.
Field Description
ERROR
Bit Description
7:3 Reserved
2 ABORT bit – See 6.3.2
1:0 Reserved
COUNT Reserved
LBA
Bit Description
47:8 Reserved
7:0 SANITIZE DEVICE ERROR REASON field
Value Description
00h Reason not reported or sanitize device command failed
01h Sanitize Command Unsuccessful – The sanitize operation completed with
physical sectors that are available to be allocated for user data that were
not successfully sanitized.
02h Invalid or unsupported value in the Sanitize Device FEATURE field
03h Device is in the SD1: Sanitize Frozen state (see 4.19.10.3)
04h SANITIZE FREEZE LOCK command failed as a result of the Sanitize
Antifreeze Lock value (see 4.19.9) being set to one
05h..FFh Reserved
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
STATUS
Bit Description
7:6 Transport Dependent – See 6.2.11
5 DEVICE FAULT bit – See 6.2.6
4 N/A
3 Transport Dependent – See 6.2.11
2 N/A
1 SENSE DATA AVAILABLE bit – See 6.2.9
0 ERROR bit – See 6.2.8
Annex A
(informative)
Table A.1 provides a list of all of the commands in order of command code with the required use for each.
Table A.2 provides a summary of all commands in alphabetical order with the required use for each. Table A.3
provides the assignment history of each opcode by ATA standard. Table A.4 provides the assignment history of
each SET FEATURES code by ATA standard.
Command ATA
Command Code device Protocol Argument
NOP 00h O ND 28-bit
Reserved 01h..02h
Reserved for CFA 03h
Reserved 04h..05h
DATA SET MANAGEMENT 06h O DM 48-bit
DATA SET MANAGEMENT XL 07h O DM 48-bit
Obsolete 08h
Reserved 09h..0Ah
REQUEST SENSE DATA EXT 0Bh O ND 48-bit
Reserved 0Ch..0Fh
Obsolete 10h
Retired 11h..1Fh
READ SECTOR(S) 20h O PI 28-bit
Obsolete 21h..23h
READ SECTOR(S) EXT 24h O PI 48-bit
READ DMA EXT 25h O DM 48-bit
Obsolete 26h
Obsolete 27h
Reserved 28h
Obsolete 29h
READ STREAM DMA EXT 2Ah O DM 48-bit
READ STREAM EXT 2Bh O PI 48-bit
Key:
ND – Non-Data command M– Mandatory
PI – PIO Data-In command O– Optional
PO – PIO Data-Out command N– Use prohibited
DM – DMA command V – Vendor specific implementation
DMQ – DMA QUEUED command E – Retired
DD – EXECUTE DEVICE DIAGNOSTIC B – Obsolete
command R– Reserved
VS – Vendor specific
Command ATA
Command Code device Protocol Argument
Reserved 2Ch..2Fh
READ LOG EXT 2Fh O PI 48-bit
WRITE SECTOR(S) 30h O PO 28-bit
Obsolete 31h..33h
WRITE SECTOR(S) EXT 34h O PO 48-bit
WRITE DMA EXT 35h O DM 48-bit
Obsolete 36h
Obsolete 37h
Reserved for CFA 38h
Obsolete 39h
WRITE STREAM DMA EXT 3Ah O DM 48-bit
WRITE STREAM EXT 3Bh O PO 48-bit
Obsolete 3Ch
WRITE DMA FUA EXT 3Dh O DM 48-bit
Obsolete 3Eh
WRITE LOG EXT 3Fh O PO 48-bit
READ VERIFY SECTOR(S) 40h O ND 28-bit
Obsolete 41h
READ VERIFY SECTOR(S) EXT 42h O ND 48-bit
Reserved 43h
ZERO EXT 44h O ND 48-bit
WRITE UNCORRECTABLE EXT 45h O ND 48-bit
Reserved 46h
READ LOG DMA EXT 47h O DM 48-bit
Reserved 48h..49h
ZAC Management In (see ZAC) 4Ah O DM 48-bit
Reserved 4Bh..4Fh
Obsolete 50h
CONFIGURE STREAM 51h O ND 48-bit
Reserved 52h..56h
WRITE LOG DMA EXT 57h O DM 48-bit
Reserved 58h..5Ah
Key:
ND – Non-Data command M– Mandatory
PI – PIO Data-In command O– Optional
PO – PIO Data-Out command N– Use prohibited
DM – DMA command V – Vendor specific implementation
DMQ – DMA QUEUED command E – Retired
DD – EXECUTE DEVICE DIAGNOSTIC B – Obsolete
command R– Reserved
VS – Vendor specific
Command ATA
Command Code device Protocol Argument
TRUSTED NON-DATA 5Bh O ND 28-bit
TRUSTED RECEIVE 5Ch O PI 28-bit
TRUSTED RECEIVE DMA 5Dh O DM 28-bit
TRUSTED SEND 5Eh O PO 28-bit
TRUSTED SEND DMA 5Fh O DM 28-bit
READ FPDMA QUEUED 60h O DMQ 48-bit
WRITE FPDMA QUEUED 61h O DMQ 48-bit
Reserved 62h
NCQ NON-DATA 63h O ND 48-bit
SEND FPDMA QUEUED 64h O DMQ 48-bit
RECEIVE FPDMA QUEUED 65h O DMQ 48-bit
Reserved 66h..6Fh
Obsolete 70h
Retired 71h..76h
SET DATE & TIME EXT 77h O ND 48-bit
ACCESSIBLE MAX ADDRESS CONFIGURATION 78h O ND 48-bit
Retired 79h..7Fh
Vendor Specific 80h..86h VS
Reserved for CFA 87h
Vendor Specific 88h..8Fh VS
EXECUTE DEVICE DIAGNOSTIC 90h M DD 28-bit
Obsolete 91h
DOWNLOAD MICROCODE 92h O PO/ND 28-bit
DOWNLOAD MICROCODE DMA 93h O DM/ND 28-bit
Retired 94h..99h
Vendor Specific 9Ah
Reserved 9Bh..9Eh
ZAC Management Out (see ZAC) 9Fh O DM/ND 48-bit
Obsolete A0h..A2h
Reserved A3h..AFh
SMART B0h O ND
Obsolete B1h
Key:
ND – Non-Data command M– Mandatory
PI – PIO Data-In command O– Optional
PO – PIO Data-Out command N– Use prohibited
DM – DMA command V – Vendor specific implementation
DMQ – DMA QUEUED command E – Retired
DD – EXECUTE DEVICE DIAGNOSTIC B – Obsolete
command R– Reserved
VS – Vendor specific
Command ATA
Command Code device Protocol Argument
SET SECTOR CONFIGURATON EXT B2h O ND 48-bit
Reserved B3h
Sanitize Device B4h O ND 48-bit
Reserved B5h
Obsolete B6h
Reserved for CFA B7h..BBh
Reserved BCh..BFh
Reserved for CFA C0h
Vendor Specific C1h..C3h VS
Obsolete C4h..C7h
READ DMA C8h O DM 28-bit
Obsolete C9h
WRITE DMA CAh O DM 28-bit
Obsolete CBh
Obsolete CCh
Reserved for CFA CDh
Obsolete CEh
Reserved CFh
Reserved D0h
Obsolete D1h
Reserved D2h..D9h
Obsolete DAh
Retired DBh..DDh
Obsolete DEh
Obsolete DFh
STANDBY IMMEDIATE E0h M ND 28-bit
IDLE IMMEDIATE E1h M ND 28-bit
STANDBY E2h M ND 28-bit
IDLE E3h M ND 28-bit
READ BUFFER E4h O PI 28-bit
CHECK POWER MODE E5h M ND 28-bit
SLEEP E6h M ND 28-bit
Key:
ND – Non-Data command M– Mandatory
PI – PIO Data-In command O– Optional
PO – PIO Data-Out command N– Use prohibited
DM – DMA command V – Vendor specific implementation
DMQ – DMA QUEUED command E – Retired
DD – EXECUTE DEVICE DIAGNOSTIC B – Obsolete
command R– Reserved
VS – Vendor specific
Command ATA
Command Code device Protocol Argument
FLUSH CACHE E7h O ND 28-bit
WRITE BUFFER E8h O PO 28-bit
READ BUFFER DMA E9h O DM 28-bit
FLUSH CACHE EXT EAh O ND 28-bit
WRITE BUFFER DMA EBh O DM 28-bit
IDENTIFY DEVICE ECh M PI 28-bit
Obsolete EDh
Obsolete EEh
SET FEATURES EFh M ND 28-bit
Vendor Specific F0h VS
SECURITY SET PASSWORD F1h O PO 28-bit
SECURITY UNLOCK F2h O PO 28-bit
SECURITY ERASE PREPARE F3h O ND 28-bit
SECURITY ERASE UNIT F4h O PO 28-bit
SECURITY FREEZE LOCK F5h O ND 28-bit
SECURITY DISABLE PASSWORD F6h O PO 28-bit
Vendor Specific F7h
Obsolete F8h
Obsolete F9h
Vendor Specific FAh..FFh VS
Key:
ND – Non-Data command M– Mandatory
PI – PIO Data-In command O– Optional
PO – PIO Data-Out command N– Use prohibited
DM – DMA command V – Vendor specific implementation
DMQ – DMA QUEUED command E – Retired
DD – EXECUTE DEVICE DIAGNOSTIC B – Obsolete
command R– Reserved
VS – Vendor specific
Comman ATA
Command d Code device Protocol Argument
ACCESSIBLE MAX ADDRESS CONFIGURATION 78h O ND 48-bit
CHECK POWER MODE E5h M ND 28-bit
CONFIGURE STREAM 51h O ND 48-bit
DATA SET MANAGEMENT 06h O DM 48-Bit
DATA SET MANAGEMENT XL 07h O DM 48-Bit
DOWNLOAD MICROCODE 92h O PO/ND 28-bit
DOWNLOAD MICROCODE DMA 93h O DM/ND 28-bit
EXECUTE DEVICE DIAGNOSTIC 90h M DD 28-bit
FLUSH CACHE E7h O ND 28-bit
FLUSH CACHE EXT EAh O ND 28-bit
IDENTIFY DEVICE ECh M PI 28-bit
IDLE E3h M ND 28-bit
IDLE IMMEDIATE E1h M ND 28-bit
NCQ NON-DATA 63h O ND 48-bit
NOP 00h O ND 28-bit
Obsolete 08h, 10h, 21h..23h, 26h, 27h, 29h, 31h..33h, 36h,
37h, 39h, 3Ch, 3Eh, 41h, 50h, 70h, 91h, A0h,
A1h, A2h, B1h, B6h, C4h..C7h, C9h, CBh..CCh,
CEh, D1h, DAh, DEh, DFh, EDh..EEh, F8h, F9h
READ BUFFER E4h O PI 28-bit
READ BUFFER DMA E9h O DM 28-bit
READ DMA C8h O DM 28-bit
READ DMA EXT 25h O DM 48-bit
READ FPDMA QUEUED 60h O DMQ 48-bit
READ LOG DMA EXT 47h O DM 48-bit
READ LOG EXT 2Fh O PI 48-bit
READ SECTOR(S) 20h O PI 28-bit
READ SECTOR(S) EXT 24h O PI 48-bit
READ STREAM DMA EXT 2Ah O DM 48-bit
READ STREAM EXT 2Bh O PI 48-bit
READ VERIFY SECTOR(S) 40h O ND 28-bit
READ VERIFY SECTOR(S) EXT 42h O ND 48-bit
RECEIVE FPDMA QUEUED 65h O DMQ 48-bit
Key:
ND – Non-Data command M– Mandatory
PI – PIO Data-In command O– Optional
PO – PIO Data-Out command N– Use prohibited
DM – DMA command E – Retired
DMQ – DMA QUEUED command R– Reserved
DD – EXECUTE DEVICE DIAGNOSTIC
command
Comman ATA
Command d Code device Protocol Argument
REQUEST SENSE DATA EXT 0Bh O ND 48-bit
Reserved 01h..02h, 04h..05h, 09h..0Ah, 0Ch..0Fh, 28h,
2Ch..2Fh, 43h, 46h, 48h..4Ah, 4Bh..4Fh,
52h..56h, 58h..5Ah, 62h, 66h..6Fh, 9Bh..9Eh,
A3h..AFh, B3h, B5h, BCh..BFh, CFh, D0h,
D2h..D9h
Reserved for CFA 03h, 38h, 87h, B7h..BBh, C0h, and CDh
Retired 11h..1Fh, 71h..76h, 79h..7Fh, 94h..99h,
DBh..DDh
Sanitize Device B4h O ND 48-bit
SECURITY DISABLE PASSWORD F6h O PO 28-bit
SECURITY ERASE PREPARE F3h O ND 28-bit
SECURITY ERASE UNIT F4h O PO 28-bit
SECURITY FREEZE LOCK F5h O ND 28-bit
SECURITY SET PASSWORD F1h O PO 28-bit
SECURITY UNLOCK F2h O PO 28-bit
SEND FPDMA QUEUED 64h O DMQ 48-bit
SET DATE & TIME EXT 77h O ND 48-bit
SET FEATURES EFh M ND 28-bit
SET SECTOR CONFIGURATON EXT B2h O ND 48-bit
SLEEP E6h M ND 28-bit
SMART B0h O ND
STANDBY E2h M ND 28-bit
STANDBY IMMEDIATE E0h M ND 28-bit
TRUSTED NON-DATA 5Bh O ND 28-bit
TRUSTED RECEIVE 5Ch O PI 28-bit
Key:
ND – Non-Data command M– Mandatory
PI – PIO Data-In command O– Optional
PO – PIO Data-Out command N– Use prohibited
DM – DMA command E – Retired
DMQ – DMA QUEUED command R– Reserved
DD – EXECUTE DEVICE DIAGNOSTIC
command
Comman ATA
Command d Code device Protocol Argument
TRUSTED RECEIVE DMA 5Dh O DM 28-bit
TRUSTED SEND 5Eh O PO 28-bit
TRUSTED SEND DMA 5Fh O DM 28-bit
Vendor Specific 80h..86h, 88h..8Fh, 9Ah, C1h..C3h, F0h, F7h,
FAh..FFh
WRITE BUFFER E8h O PO 28-bit
WRITE BUFFER DMA EBh O DM 28-bit
WRITE DMA CAh O DM 28-bit
WRITE DMA EXT 35h O DM 48-bit
WRITE DMA FUA EXT 3Dh O DM 48-bit
WRITE FPDMA QUEUED 61h O DMQ 48-bit
WRITE LOG DMA EXT 57h O DM 48-bit
WRITE LOG EXT 3Fh O PO 48-bit
WRITE SECTOR(S) 30h O PO 28-bit
WRITE SECTOR(S) EXT 34h O PO 48-bit
WRITE STREAM DMA EXT 3Ah O DM 48-bit
WRITE STREAM EXT 3Bh O PO 48-bit
WRITE UNCORRECTABLE EXT 45h O ND 48-bit
ZAC Management In (see ZAC) 4Ah O DM 48-bit
ZAC Management Out (see ZAC) 9Fh O DM/ND 48-bit
ZERO EXT 44h O ND 48-bit
Key:
ND – Non-Data command M– Mandatory
PI – PIO Data-In command O– Optional
PO – PIO Data-Out command N– Use prohibited
DM – DMA command E – Retired
DMQ – DMA QUEUED command R– Reserved
DD – EXECUTE DEVICE DIAGNOSTIC
command
ATA ACS
Opcode Command Name 2 3 4 5 6 7 8 2 3 4
00h NOP C C C C C C C C C C C
01h R R R R R R R R R R R
02h R R R R R R R R R R R
03h Reserved for CFA R R R C C C C C C A A
04h R R R R R R R R R R R
05h R R R R R R R R R R R
06h DATA SET MANAGEMENT R R R R R R R R C C C
07h DATA SET MANAGEMENT XL R R R R R R R R R R Ca
08h ATAPI Soft Reset
R R C C C C C C C C Oa
/ DEVICE RESET
09h R R R R R R R R R R R
0Ah R R R R R R R R R R R
0Bh REQUEST SENSE DATA EXT R R R R R R R R C C C
0Ch R R R R R R R R R R R
0Dh R R R R R R R R R R R
0Eh R R R R R R R R R R R
0Fh R R R R R R R R R R R
10h RECALIBRATE C C C O O O O O O O O
11h RECALIBRATE C C O E E E E E E E E
12h RECALIBRATE C C O E E E E E E E E
13h RECALIBRATE C C O E E E E E E E E
14h RECALIBRATE C C O E E E E E E E E
15h RECALIBRATE C C O E E E E E E E E
16h RECALIBRATE C C O E E E E E E E E
17h RECALIBRATE C C O E E E E E E E E
18h RECALIBRATE C C O E E E E E E E E
19h RECALIBRATE C C O E E E E E E E E
1Ah RECALIBRATE C C O E E E E E E E E
1Bh RECALIBRATE C C O E E E E E E E E
1Ch RECALIBRATE C C O E E E E E E E E
1Dh RECALIBRATE C C O E E E E E E E E
Key: C – a defined command A – Reserved for CFA
E – a retired command F – If the device does not support the CFA
O – Obsolete feature set (see ACS-2), this command
R – Reserved, undefined in current code is vendor specific
specifications M – Reserved for the Media Card Pass
V – Vendor specific commands Through Command feature set
S – Reserved for Serial ATA
Z – Defined by ZAC
a
This command definition is new to ACS-4.
ATA ACS
Opcode Command Name 2 3 4 5 6 7 8 2 3 4
1Eh RECALIBRATE C C O E E E E E E E E
1Fh RECALIBRATE C C O E E E E E E E E
20h READ SECTORS C C C C C C C C C C C
21h READ SECTORS WITHOUT
C C C C O O O O O O O
RETRY
22h READ LONG C C C O O O O O O O O
23h READ LONG WITHOUT RETRY C C C O O O O O O O O
24h READ SECTORS EXT R R R R R C C C C C C
25h READ DMA EXT R R R R R C C C C C C
26h READ DMA QUEUED EXT R R R R R C C C O O O
27h READ NATIVE MAX ADDRESS
R R R R R C C C C O O
EXT
28h R R R R R R R R R R R
29h READ MULTIPLE EXT R R R R R C C C C C Oa
2Ah READ STREAM DMA R R R R R R C C C C C
2Bh READ STREAM EXT R R R R R R C C C C C
2Ch R R R R R R R R R R R
2Dh R R R R R R R R R R R
2Eh R R R R R R R R R R R
2Fh READ LOG EXT R R R R R C C C C C C
30h WRITE SECTORS C C C C C C C C C C C
31h WRITE SECTORS WITHOUT
C C C C O O O O O O O
RETRY
32h WRITE LONG C C C O O O O O O O O
33h WRITE LONG WITHOUT RETRY C C C O O O O O O O O
34h WRITE SECTORS EXT R R R R O C C C C C C
35h WRITE DMA EXT R R R R R C C C C C C
36h WRITE DMA QUEUED EXT R R R R R C C C O O O
37h SET NATIVE MAX ADDRESS
R R R R R C C C C O O
EXT
38h Reserved for CFA R R R C C C C C C A A
39h WRITE MULTIPLE EXT R R R R R C C C C C Oa
3Ah WRITE STREAM DMA R R R R R R C C C C C
Key: C – a defined command A – Reserved for CFA
E – a retired command F – If the device does not support the CFA
O – Obsolete feature set (see ACS-2), this command
R – Reserved, undefined in current code is vendor specific
specifications M – Reserved for the Media Card Pass
V – Vendor specific commands Through Command feature set
S – Reserved for Serial ATA
Z – Defined by ZAC
a
This command definition is new to ACS-4.
ATA ACS
Opcode Command Name 2 3 4 5 6 7 8 2 3 4
3Bh WRITE STREAM EXT R R R R R R C C C C C
3Ch WRITE VERIFY C C C O O O O O O O O
3Dh WRITE DMA FUA EXT R R R R R R C C C C C
3Eh WRITE DMA QUEUED FUA EXT R R R R R R C C O O O
3Fh WRITE LOG EXT R R R R R C C C C C C
40h READ VERIFY SECTORS C C C C C C C C C C C
41h READ VERIFY SECTORS
C C C C O O O O O O O
WITHOUT RETRY
42h READ VERIFY SECTORS EXT R R R R R C C C C C C
43h R R R R R R R R R R R
44h ZERO EXT R R R R R R R R R R Ca
45h WRITE UNCORRECTABLE EXT R R R R R R R C C C C
46h R R R R R R R R R R R
47h READ LOG DMA EXT R R R R R R R C C C C
48h R R R R R R R R R R R
49h R R R R R R R R R R R
4Ah ZAC Management In R R R R R R R R R R Za
4Bh R R R R R R R R R R R
4Ch R R R R R R R R R R R
4Dh R R R R R R R R R R R
4Eh R R R R R R R R R R R
4Fh R R R R R R R R R R R
50h FORMAT TRACK C C C O O O O O O O O
51h CONFIGURE STREAM R R R R R R C C C C C
52h R R R R R R R R R R R
53h R R R R R R R R R R R
54h R R R R R R R R R R R
55h R R R R R R R R R R R
56h R R R R R R R R R R R
57h WRITE LOG DMA EXT R R R R R R R C C C C
58h R R R R R R R R R R R
59h R R R R R R R R R R R
Key: C – a defined command A – Reserved for CFA
E – a retired command F – If the device does not support the CFA
O – Obsolete feature set (see ACS-2), this command
R – Reserved, undefined in current code is vendor specific
specifications M – Reserved for the Media Card Pass
V – Vendor specific commands Through Command feature set
S – Reserved for Serial ATA
Z – Defined by ZAC
a This command definition is new to ACS-4.
ATA ACS
Opcode Command Name 2 3 4 5 6 7 8 2 3 4
5Ah R R R R R R R R R R R
5Bh TRUSTED NON-DATA R R R R R R R C C C C
5Ch TRUSTED RECEIVE R R R R R R R C C C C
5Dh TRUSTED RECEIVE DMA R R R R R R R C C C C
5Eh TRUSTED SEND R R R R R R R C C C C
5Fh TRUSTED SEND DMA R R R R R R R C C C C
60h READ FPDMA QUEUED R R R R R R S C C C C
61h WRITE FPDMA QUEUED R R R R R R S C C C C
62h SATA (reserved) R R R R R R S S S S S
63h NCQ NON-DATA R R R R R R S S S C C
64h SEND FPDMA QUEUED R R R R R R S S S C C
65h RECEIVE FPDMA QUEUED R R R R R R S S S C C
66h SATA (reserved) R R R R R R S S S S S
67h SATA (reserved) R R R R R R S S S S S
68h SATA (reserved) R R R R R R S S S S S
69h SATA (reserved) R R R R R R S S S S S
6Ah SATA (reserved) R R R R R R S S S S S
6Bh SATA (reserved) R R R R R R S S S S S
6Ch SATA (reserved) R R R R R R S S S S S
6Dh SATA (reserved) R R R R R R S S S S S
6Eh SATA (reserved) R R R R R R S S S S S
6Fh SATA (reserved) R R R R R R S S S S S
70h SEEK C C C C C C O O O O O
71h SEEK C C O E E E E E E E E
72h SEEK C C O E E E E E E E E
73h SEEK C C O E E E E E E E E
74h SEEK C C O E E E E E E E E
75h SEEK C C O E E E E E E E E
76h SEEK C C O E E E E E E E E
77h SET DATE & TIME EXT C C O E E E E E E C C
78h ACCESSIBLE MAX ADDRESS
C C O E E E E E E C C
CONFIGURATION
Key: C – a defined command A – Reserved for CFA
E – a retired command F – If the device does not support the CFA
O – Obsolete feature set (see ACS-2), this command
R – Reserved, undefined in current code is vendor specific
specifications M – Reserved for the Media Card Pass
V – Vendor specific commands Through Command feature set
S – Reserved for Serial ATA
Z – Defined by ZAC
a This command definition is new to ACS-4.
ATA ACS
Opcode Command Name 2 3 4 5 6 7 8 2 3 4
79h SEEK C C O E E E E E E E E
7Ah SEEK C C O E E E E E E E E
7Bh SEEK C C O E E E E E E E E
7Ch SEEK C C O E E E E E E E E
7Dh SEEK C C O E E E E E E E E
7Eh SEEK C C O E E E E E E E E
7Fh SEEK C C O E E E E E E E E
80h (vendor specific) V V V V V V V V V V V
81h (vendor specific) V V V V V V V V V V V
82h (vendor specific) V V V V V V V V V V V
83h (vendor specific) V V V V V V V V V V V
84h (vendor specific) V V V V V V V V V V V
85h (vendor specific) V V V V V V V V V V V
86h (vendor specific) V V V V V V V V V V V
87h (vendor specific) / Reserved
V V V F F F F F F A A
for CFA
88h (vendor specific) V V V V V V V V V V V
89h (vendor specific) V V V V V V V V V V V
8Ah (vendor specific) V V V V V V V V V V V
8Bh (vendor specific) V V V V V V V V V V V
8Ch (vendor specific) V V V V V V V V V V V
8Dh (vendor specific) V V V V V V V V V V V
8Eh (vendor specific) V V V V V V V V V V V
8Fh (vendor specific) V V V V V V V V V V V
90h EXECUTE DEVICE
C C C C C C C C C C C
DIAGNOSTICS
91h INITIALIZE DEVICE
C C C C C O O O O O O
PARAMETERS
92h DOWNLOAD MICROCODE R C C C C C C C C C C
93h DOWNLOAD MICROCODE DMA R R R R R R R R C C C
94h STANDBY IMMEDIATE C C C E E E E E E E E
95h IDLE IMMEDIATE C C C E E E E E E E E
96h STANDBY C C C E E E E E E E E
Key: C – a defined command A – Reserved for CFA
E – a retired command F – If the device does not support the CFA
O – Obsolete feature set (see ACS-2), this command
R – Reserved, undefined in current code is vendor specific
specifications M – Reserved for the Media Card Pass
V – Vendor specific commands Through Command feature set
S – Reserved for Serial ATA
Z – Defined by ZAC
a
This command definition is new to ACS-4.
ATA ACS
Opcode Command Name 2 3 4 5 6 7 8 2 3 4
97h IDLE C C C E E E E E E E E
98h CHECK POWER MODE C C C E E E E E E E E
99h SLEEP C C C E E E E E E E E
9Ah (vendor specific) V V V V V V V V V V V
9Bh R R R R R R R R R R R
9Ch R R R R R R R R R R R
9Dh R R R R R R R R R R R
9Eh R R R R R R R R R R R
9Fh ZAC Management Out R R R R R R R R R R Za
A0h PACKET R R C C C C C C C C Oa
A1h IDENTIFY PACKET DEVICE R R C C C C C C C C Oa
A2h SERVICE R R C C C C C C O O O
A3h R R R R R R R R R R R
A4h R R R R R R R R R R R
A5h R R R R R R R R R R R
A6h R R R R R R R R R R R
A7h R R R R R R R R R R R
A8h R R R R R R R R R R R
A9h R R R R R R R R R R R
AAh R R R R R R R R R R R
ABh R R R R R R R R R R R
ACh R R R R R R R R R R R
ADh R R R R R R R R R R R
AEh R R R R R R R R R R R
AFh R R R R R R R R R R R
B0h SMART R R C C C C C C C C C
B1h DEVICE CONFIGURATION R R R R R C C C C O O
B2h SET SECTOR CONFIGURATON
R R R R R R R R R R Ca
EXT
B3h R R R R R R R R R R R
B4h Sanitize Device R R R R R R R R C C C
B5h R R R R R R R R R R R
Key: C – a defined command A – Reserved for CFA
E – a retired command F – If the device does not support the CFA
O – Obsolete feature set (see ACS-2), this command
R – Reserved, undefined in current code is vendor specific
specifications M – Reserved for the Media Card Pass
V – Vendor specific commands Through Command feature set
S – Reserved for Serial ATA
Z – Defined by ZAC
a This command definition is new to ACS-4.
ATA ACS
Opcode Command Name 2 3 4 5 6 7 8 2 3 4
B6h NV CACHE R R R R R R R C C O O
B7h Reserved for CFA R R R R A A A A A A A
B8h Reserved for CFA R R R R A A A A A A A
B9h Reserved for CFA R R R R A A A A A A A
BAh Reserved for CFA R R R R A A A A A A A
BBh Reserved for CFA R R R R A A A A A A A
BCh Reserved R R R R A A A R R R R
BDh Reserved R R R R A A A R R R R
BEh Reserved R R R R A A A R R R R
BFh Reserved R R R R A A A R R R R
C0h (vendor specific) / CFA ERASE
V V V F F F F F F F F
SECTORS
C1h (vendor specific) V V V V V V V V V V V
C2h (vendor specific) V V V V V V V V V V V
C3h (vendor specific) V V V V V V V V V V V
C4h READ MULTIPLE C C C C C C C C C C Oa
C5h WRITE MULTIPLE C C C C C C C C C C Oa
C6h SET MULTIPLE MODE C C C C C C C C C C Oa
C7h READ DMA QUEUED R R R C C C C C O O O
C8h READ DMA C C C C C C C C C C C
C9h READ DMA WITHOUT RETRIES C C C C O O O O O O O
CAh WRITE DMA C C C C C C C C C C C
CBh WRITE DMA WITHOUT RETRIES C C C C O O O O O O O
CCh WRITE DMA QUEUED R R R C C C C C O O O
CDh Reserved for CFA R R R C C C C C C A A
CEh WRITE MULTIPLE FUA EXT R R R R R R C C C C Oa
CFh R R R R R R R R R R R
D0h R R R R R R R R R R R
D1h CHECK MEDIA CARD TYPE R R R R R C C C O O O
D2h Reserved for the Media Card Pass
R R R R R M M M R R R
Through Command feature set
D3h Reserved for the Media Card Pass
R R R R R M M M R R R
Through Command feature set
Key: C – a defined command A – Reserved for CFA
E – a retired command F – If the device does not support the CFA
O – Obsolete feature set (see ACS-2), this command
R – Reserved, undefined in current code is vendor specific
specifications M – Reserved for the Media Card Pass
V – Vendor specific commands Through Command feature set
S – Reserved for Serial ATA
Z – Defined by ZAC
a
This command definition is new to ACS-4.
ATA ACS
Opcode Command Name 2 3 4 5 6 7 8 2 3 4
D4h Reserved for the Media Card Pass
R R R R R M M M R R R
Through Command feature set
D5h R R R R R R R R R R R
D6h R R R R R R R R R R R
D7h R R R R R R R R R R R
D8h R R R R R R R R R R R
D9h R R R R R R R R R R R
DAh GET MEDIA STATUS R R R C C C C O O O O
DBh ACKNOWLEDGE MEDIA
C C O E E E E E E E E
CHANGE
DCh BOOT POST BOOT C C O E E E E E E E E
DDh BOOT PRE BOOT C C O E E E E E E E E
DEh MEDIA LOCK C C C C C C C O O O O
DFh MEDIA UNLOCK C C C C C C C O O O O
E0h STANDBY IMMEDIATE C C C C C C C C C C C
E1h IDLE IMMEDIATE C C C C C C C C C C C
E2h STANDBY C C C C C C C C C C C
E3h IDLE C C C C C C C C C C C
E4h READ BUFFER C C C C C C C C C C C
E5h CHECK POWER MODE C C C C C C C C C C C
E6h SLEEP C C C C C C C C C C C
E7h FLUSH CACHE R R R C C C C C C C C
E8h WRITE BUFFER C C C C C C C C C C C
E9h (WRITE SAME)
C C O E E E E E C C C
READ BUFFER DMA
EAh FLUSH CACHE EXT R R R R R C C C C C C
EBh WRITE BUFFER DMA R R R R R R R R C C C
Key: C – a defined command A – Reserved for CFA
E – a retired command F – If the device does not support the CFA
O – Obsolete feature set (see ACS-2), this command
R – Reserved, undefined in current code is vendor specific
specifications M – Reserved for the Media Card Pass
V – Vendor specific commands Through Command feature set
S – Reserved for Serial ATA
Z – Defined by ZAC
a
This command definition is new to ACS-4.
ATA ACS
Opcode Command Name 2 3 4 5 6 7 8 2 3 4
ECh IDENTIFY DEVICE C C C C C C C C C C C
EDh MEDIA EJECT R C C C C C C O O O O
EEh IDENTIFY DEVICE DMA R R C O O O O O O O O
EFh SET FEATURES C C C C C C C C C C C
F0h (vendor specific) V V V V V V V V V V V
F1h SECURITY SET PASSWORD V V C C C C C C C C C
F2h SECURITY UNLOCK V V C C C C C C C C C
F3h SECURITY ERASE PREPARE V V C C C C C C C C C
F4h SECURITY ERASE UNIT V V C C C C C C C C C
F5h SECURITY FREEZE LOCK V V C C C C C C C C C
F6h SECURITY DISABLE
V V C C C C C C C C C
PASSWORD
F7h (vendor specific) V V V V V V V V V V V
F8h READ NATIVE MAX ADDRESS V V V C C C C C C O O
F9h SET MAX ADDRESS V V V C C C C C C O O
FAh (vendor specific) V V V V V V V V V V V
FBh (vendor specific) V V V V V V V V V V V
FCh (vendor specific) V V V V V V V V V V V
FDh (vendor specific) V V V V V V V V V V V
FEh (vendor specific) V V V V V V V V V V V
FFh (vendor specific) V V V V V V V V V V V
Key: C – a defined command A – Reserved for CFA
E – a retired command F – If the device does not support the CFA
O – Obsolete feature set (see ACS-2), this command
R – Reserved, undefined in current code is vendor specific
specifications M – Reserved for the Media Card Pass
V – Vendor specific commands Through Command feature set
S – Reserved for Serial ATA
Z – Defined by ZAC
a
This command definition is new to ACS-4.
Annex B
(informative)
Figure B.1 is an example flowchart that shows how to process SCT commands using SMART READ LOG
commands and SMART WRITE LOG commands.
Command to
Device
Not B0 Process
Command
command other
Register
than SMART
B0
D6 D5
Feature
Register
Not D5 or D6
Yes Process
SMART
Standard SMART
Enabled
command
No
Error
E0 E1 E1 E0
Log Address Log Address
Not E0 or E1 Not E0 or E1
No No Return SCT
SMART SMART
Enabled Enabled Status
Yes
Device Locked Yes
Yes No No
Transfer to Transfer to
device pending host pending
No
Yes Yes
In these examples, Command Completion is the status returned by a read log command or write log command to
the requested log address. Foreground command examples that do not require data transfer to begin
processing the command, return command completion as a part of the write log command response. The host
may request SCT Status for additional information.
Figure B.2 shows an example of a foreground write same with a repeating write pattern.
Host Device
Figure B.2 — Example sequence for foreground write same with a repeating write pattern
Figure B.3 shows an example of a foreground write same with a repeating pattern.
Host Device
Figure B.3 — Example sequence for foreground write same with a repeating pattern
Figure B.4 shows an example command sequence for writing data to a device using an SCT command with no
background activity.
Host Device
Figure B.4 — Example sequence for writing data using an SCT command with no background activity
Figure B.5 shows an example command sequence for reading data from a device using an SCT command with
no background activity.
Host Device
Figure B.5 — Example sequence for reading data using an SCT command with no background activity
Figure B.6 shows an example command sequence for issuing a Log page command that does not transfer data
and has no background activity.
Host Device
Figure B.6 — Example sequence for a Non-Data SCT command with no background activity
Figure B.7 shows an example command sequence for issuing an SCT command that writes data in the
background.
Host Device
Figure B.7 — Example sequence for writing data using an SCT command with background activity
Figure B.8 shows an example command sequence for issuing an SCT command that writes data in the
background. In the example, the key page is first written. The host then checks the SCT Status. After checking
the SCT Status, the host then transfers the data necessary for the device to process the SCT Command. The
SCT Data is transferred in two separate write log commands. The first write log command returns a nonzero
value for number of pages remaining. The second write log command returns zero for number of pages
remaining. After the data is transferred, the SCT Command is processed in the background. During background
processing, the host polls the device for progress by requesting SCT Status. After the SCT Command is
complete, the device returns an SCT Status indicating the success or failure of the SCT Command.
Host Device
Figure B.8 — Example sequence for writing data using multiple write data transfers
Figure B.9 shows an example command sequence for issuing an SCT command that is processed in the
background but does not require the transfer of data to or from the host.
Host Device
Figure B.9 — Example sequence for a Non-Data SCT command with background activity
The host builds the key page in a host buffer for the appropriate action and parameters.
The host issues the SCT command (see table B.1 or table B.2), and sends the key page to the device.
Field Description
FEATURE D6h (e.g., SMART WRITE LOG)
COUNT 01h
LBA
Bit Description
27:24 N/A
23:8 C24Fh
7:0 E0h (e.g., SCT Command/Status log address)
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
Field Description
FEATURE Reserved
COUNT 0001h (e.g., one page for SCT commands)
LBA
Bit Description
47:40 Reserved
39:32 00h
31:16 Reserved
15:8 00h
7:0 E0h (e.g., SCT Command/Status log address)
DEVICE
Bit Description
7 Obsolete
6 N/A
5 Obsolete
4 Transport Dependent – See 6.2.11
3:0 Reserved
If the SCT command returns command completion without an error, then the device responds as shown in
table 173. If the command is aborted, then either the key page format is invalid, the command structure contains
an invalid value or the command encountered a processing error. The host checks the Extended Status Code
field (see table 174) for the error code (see table 175). If the command is a write command, the command is
terminated, there is no data transfer, and the host skips Step 3. However, if the command was a read command,
there may be partial output available (e.g., on a page read command, the data up to and including the page in
error is available) and the host may proceed to Step 3 to get the partial data. In some cases, the error is not fatal
and serves only as a warning.
If the status is 50h, then the host checks the LBA field (23:8). If the LBA field (23:8) is cleared to 0000h, then the
command is complete, terminated without error, and the host proceeds to Step 4. If the values are greater than
0, then the host proceeds to Step 3.
To transfer data from the device to the host, the host issues a SMART READ LOG command, READ LOG DMA
EXT command, or READ LOG EXT command to the SCT Data Transfer log (see table 176 and table 177). To
transfer data from the host to the device, the host issues a SMART WRITE LOG command, WRITE LOG DMA
EXT command, or WRITE LOG EXT command to the SCT Data Transfer log (see table 176 and table 177). The
transfer request is in the range of one data block up to the total number of data blocks not yet transferred. The
number of data blocks remaining was reported in the NUMBER OF PAGES REMAINING field (see table 178) in the
previous step. If the requested number of data blocks is larger than the value in the most recently reported
NUMBER OF PAGES REMAINING field, the device reports an error. If the value is less than the value in the most
recently reported NUMBER OF PAGES REMAINING field, the host may repeat Step 3 until all data blocks have been
transferred.
For SCT commands that access the media, the device advances the data block pointer by the number of data
blocks transferred, and returns the number of data blocks remaining to be transferred in the NUMBER OF PAGES
REMAINING field. If the NUMBER OF PAGES REMAINING field is cleared to zero, then the command is complete, and
the host proceeds to Step 4. The host has complete control over the number of data blocks to transfer at a time.
If the number of data block to be transferred is greater than or equal to FFFFh, the device sets the NUMBER OF
PAGES REMAINING field to FFFFh. The value remains FFFFh until the number of data blocks remaining drops
below FFFFh. The exact number to be transferred is reported by the SCT Status command. Upon receiving the
last data block, the device performs the specified operation. In the case of very large amounts of data (e.g., SCT
Write Same command) some data may be processed (e.g., written to the disk) prior to receiving all of the data
from the host.
The host reads the SCT status response (see table 182, table 183, and table 186) to determine how the
command completed. If the command has not completed (i.e., by reporting FFFFh in table 186 byte 14), then the
host waits a vendor specific period of time and repeats Step 4 until the command is complete. For SCT
commands that require transfer of data to the device (e.g., a write command), the command is not complete until
the last block of data has been transferred to the device.
Annex C
(informative)
C.1 Scope
This annex provides guidelines for implementing a media format that incorporates logical sector sizes greater
than 512 bytes.
The information provided in this annex enables logical sector sizes that are a binary multiple greater than 512
bytes. This standard also specifies methods to report logical sector sizes that are not a binary multiple.
Common logical sector sizes that are not binary multiples include 520-, 524-, 528-, and 532-byte logical sectors.
Non-binary multiples are beyond the scope of this annex.
C.2 Overview
Figure C.1 shows major system components that are affected by a change in logical sector size.
The following methods may be used to expand the logical sector size:
a) Native Physical Sector Size method (i.e., the physical sector size is seen at the drive interface); or
b) 512-byte Emulation method (i.e., keeps the 512-byte logical sector size at the drive interface). Figure
C.2 illustrates these methods.
a
Logical Block
b
See figure C.1. The system dependency chain is evolving and may change to support logical sector
sizes larger than 512 bytes.
Using the 512-byte Logical Block method, the Drive Interface, Host Interface, BIOS, Operating System, and
Applications still function. Optimal performance is achieved if the OS were modified to properly align the disk
accesses. The 512-byte Logical Block method also allows a drive manufacturer to ship a utility with the unit that
optimizes performance. If the Physical Sector Size Logical Block method is employed, the existing Drive
Interface, Host Interface, BIOS, OS, and Applications may not function. The reason they may not function is that
many components in the System Dependency Chain (see figure C.1) only support 512-byte logical blocks. If the
host interface is able to transfer the data, it is likely that the BIOS is only implemented to handle 512-byte logical
blocks. If the BIOS does support the larger logical block size, it is likely the operating system is written to only
handle 512-byte logical sectors. In the case where the BIOS or host interface only supports 512-byte logical
blocks, no code may reasonably be used to fix the problem.
This standard specifies a method of aligning 512-byte logical sectors with larger physical sectors by specifying
LBA alignment requirements using the IDENTIFY DEVICE command (see 7.12), the Long Logical feature set
(see 4.13), and Long Physical Sector feature set (see 4.14). Figure C.3 is an example of the capability specified
in this standard.
Logical Sector
(512 bytes)
In this example, the interface sector size (i.e., logical sector size) is 512 bytes, and the physical sector size is
2 048 bytes. This allows an ATA device to both implement a larger physical sector and maintain compatibility
with existing systems, interfaces, and software. One of the drawbacks of this method is that drive performance
may suffer if the host writes data starting or ending on an LBA that is misaligned with respect to the physical
sector boundaries. If mis-alignment occurs, the drive is forced to perform a RMW operation (i.e.,
Read-Modify-Write) (see C.3.3) in order to satisfy the host request.
This standard also allows the ATA device to report that a Logical Sector size is the same as a physical sector
size. This allows an ATA device to implement a native 4 096-byte sector on the media and requires that transfers
be 4 096 bytes of data for each logical block requested. This method avoids RMWs. The main drawback of this
implementation is that existing systems, interfaces, BIOS and system software, OS and otherwise, have to
change in order to accommodate the device.
C.3 Implementation
Although the 4 096-byte physical sector size allows for greater format efficiencies, 4 096-byte physical sectors
cause alignment issues.
The device indicates a 4 096-byte physical sector size to the host by:
a) returning:
A) the LOGICAL TO PHYSICAL SECTOR RELATIONSHIP SUPPORTED bit (see 9.11.4.3.1) set to one; and
B) the LOGICAL TO PHYSICAL SECTOR RELATIONSHIP field (see 9.11.4.3.4) set to 3h;
This indicates that the device has eight 512-byte logical sectors to compose a 4 096-byte physical
sector. The host may use this information to know that transfers should start with an LBA where the low
order 3 bits are zero and the transfer ends on an LBA where the low order 3 bits are one;
or
b) returning:
A) the LOGICAL SECTOR SIZE SUPPORTED bit (see 9.11.4.3.2) set to one; and
B) the LOGICAL SECTOR SIZE field (see 9.11.4.4) set to 0800h;
This indicates that the device has one 4 096-byte logical sector per 4 096-byte physical sector. The host
may use this information to know that transfers require 4 096 bytes per logical block requested.
This standard defines the ability to report alignment using the LOGICAL SECTOR OFFSET field (see 9.11.4.3.5).
If the drive reports a 4 096-byte physical sector and a 512-byte logical sector, the LOGICAL SECTOR OFFSET field
reports the alignment as follows. If the LOGICAL SECTOR OFFSET field is set to:
a) 0000h, then LBA 0 is aligned to the beginning for the first physical sector;
b) 0001h, then LBA 0 is offset from the start of the first physical sector by 512 bytes (i.e., 1 sector);
c) 0002h, then LBA 0 is offset from the start of the first physical sector by 1 024 bytes (i.e., 2 sectors);
d) 0003h, then LBA 0 is offset from the start of the first physical sector by 1 536 bytes (i.e., 3 sectors);
e) 0004h, then LBA 0 is offset from the start of the first physical sector by 2 048 bytes (i.e., 4 sectors);
f) 0005h, then LBA 0 is offset from the start of the first physical sector by 2 560 bytes (i.e., 5 sectors);
g) 0006h, then LBA 0 is offset from the start of the first physical sector by 3 072 bytes (i.e., 6 sectors); and
h) 0007h, then LBA 0 is offset from the start of the first physical sector by 3 584 bytes (i.e., 7 sectors).
For systems that use Windows® XP and earlier, and have devices formatted with a single partition, the optimal
value for the LOGICAL SECTOR OFFSET field is 0001h.
Windows® 7 reads this value and aligns partitions accordingly.
For devices with a logical sector size of 512 bytes, the drive may be forced to perform a RMW operation when
it receives an unaligned transfer. Write commands do not provide a way to return an error other than an Abort
(see 6.3.2) or a Device Fault (see 6.2.6). If there is an uncorrectable error encountered during the initial read
operation, the Write command has no way to report the issue. This error may affect logical sectors not accessed
by the Write command. There are several possible solutions to choose from in providing the information to the
host. Figure C.4 shows the issue.
C.4.1 Overview
Although the implementation described here allows a drive to function in a legacy system without modification,
there are some issues that are critical in allowing the drive to perform at peak efficiency. Figure C.5 describes a
typical device media layout showing the positions of the Master Boot Record (i.e., MBR), BIOS Parameter Block,
and the remainder of a File Allocation Table based file system. This layout varies based on the type of File
Allocation Table file system used, but all the elements described here are generally present. The logical sector
numbers on the left hand side of Figure C.5 show typical and/or legacy locations for the various data structures
on the media.
Reserved Sectors
LBA 65
LBA 63+X
Root Directory
LBA 63+Y
Next Partition
Prior to the year 1994, typical disk partitioning software placed the Master Boot Record at Cylinder 0, Head 0,
and sector 1 (i.e., LBA 0). The Master Boot Record contains a pointer to the first partition. The common practice
was to place first partition at Cylinder 0 Head 1, sector 1 (i.e., the LBA value of the first logical sector in the first
partition varied). Once the logical sectors per track standardized on 63, the LBA value of the first logical sector in
the first partition standardized on LBA 63. In the year 2010, there are some applications that check to make sure
that partitions start on a track boundary, even though there is no meaning for cylinders heads and logical sectors.
As larger sectors occur, partition alignment becomes an important issue that affects applications that check if the
first partition starts on logical sector 63 (e.g., on a 512-byte logical sector device, all the partitions should start on
an LBA that is aligned with the start of a physical sector on the media, on a 1 024-byte logical sector device, the
partitions should start on an even numbered logical sector and end on an odd numbered logical sector, and on a
4 096-byte logical sector device, the partitions should start on an LBA where the low order three bits are zero).
For drives that use 512-byte LBA, all partitions should start on an LBA that is aligned with the start of a physical
sector on the media. This affects some applications that check to make sure the first partition starts on logical
sector 63, but a change is required to implement larger sectors on the media.
There are many file systems that cluster sectors together to create an allocation unit larger than a single
512-byte logical sector. These file systems generally implement a table to associate clusters with files,
commonly called a File Allocation Table. A typical cluster size is 4 096 bytes (i.e., eight 512-byte logical sectors).
Even if the Partition is properly aligned, there is an issue where the size of the File Allocation Table may cause
the individual clusters in the File Data Area to be unaligned relative to the physical sectors on the media resulting
in performance degradation.
If the clusters in the file system are properly aligned, file accesses are naturally aligned resulting in optimum
performance.
Once the clusters in the file system are aligned, the OS memory manager needs to be modified to prevent
unaligned accesses. If a device has alignment requirements, device performance tests may show acceptable
performance, but if the virtual memory activity is not aligned, CPU performance tests may provide unacceptable
results.
C.4.5 Booting
The devices with alignment requirements should not show significant performance degradation on unaligned
reads. Since booting is mainly a reading process, an impact on system boot times in an unaligned environment
is not expected.
Annex D
(informative)
D.1 Overview
The purpose of a trim command is to allow the host to provide LBA/data usage information that allows the
storage device to become more performant and to increase data integrity. The effect of any single trim may not
be detectable by the host. The reason is that the device evaluates the sectors that are being trimmed to
determine if trimming them is useful to the device. If the storage device chooses to leave the state of an LBA that
has been trimmed by the host unchanged, then this is not an error. A good example is a trim that starts in the
middle of one physical sector, spans a physical sector, and then completes in the middle of the adjacent physical
sector. Trimming the fully spanned sector has value. The partial sectors maybe an overhead to the device and
therefore may be ignored by the device. A trim that does this returns good status even though all the LBAs were
not trimmed.
Trim enables the reporting of LBA’s that are not in use by a filesystem to the storage device. The LBAs are
specified as a list of ranges. The device evaluates the ranges and decides if there is value in trimming them.
When an LBA is trimmed, it may no longer have storage resources associated with that LBA. The value
proposition is that the media that has been made available by trimming may be used to support other LBAs. The
two main uses are:
a) a second write to the same LBA; or
b) an initial write to an LBA that has never been written, or that has been previously trimmed.
The device does not need to write into the same location on the physical media each time an LBA is written.
The follow behaviors are specified by this standard for sectors that the device trims (see 7.5.3.3):
a) non-deterministic - the data in response to a read from a trimmed sector may change for each read until
the sector is written by the host;
b) Deterministic Read After Trim (DRAT) - the data returned in response to a read of a trimmed sector does
not change, but may be different than the data that was previously returned; and
c) Read Zeroes After Trim (RZAT) - the data returned in response to a read of the trimmed sector is zero.
If an LBA is trimmed, it does not return data from storage that has been associated with any other LBA. For both
DRAT and non-deterministic storage devices, the data returned in response to a read command to an LBA that
has been successfully trimmed:
a) may be the previously returned data for the specified LBA;
b) may be a pattern generated by the storage device; and
c) is not data previously written to a different LBA by the host.
Preventing the return of data that was previously written to any other LBA closes a security issue associated with
read data that was written to a different LBA.
The DATA SET MANAGEMENT command uses the LBAs it receives as hints. This means that the command
may or may not cause a trimmed LBA. If the host needs to force a range of LBAs to return a pattern of all zeros,
the ZERO EXT command does this and has an option for forcing trimmed LBAs in the process.
Since trimming is performed based on the devices evaluation of each LBA specified in a Trim function, the host is
unable to detect if a sector was trimmed (i.e., the non-deterministic, DRAT and RZAT behaviors, described
earlier) based on command completion of a Trim function. This standard provides the LBA status log as a way to
find LBAs that are in the trimmed state.
This standard does not provide guidance regarding the interaction of DATA SET MANAGEMENT with a volatile
caches. As a result, the following example scenarios characterize some of the interaction with volatile caches
and surprise power removal.
Example 1, if the device receives:
1) a write of data pattern X to LBA 5;
2) a FLUSH EXT command;
3) a write of data pattern Y to LBA 5 where data is retained in the volatile cache;
4) a trim command for LBA 5;
5) a read of LBA 5 and the device returns pattern A (i.e., the device trimmed the logical block and returned
an internal data pattern);
6) a power cycle; and
7) a read command requesting LBA 5,
then the device may return pattern X, pattern Y, pattern A, or a new pattern B.
The reason that example 1 has four possible returns is that there was no flush before the power was removed. If
pattern Y was only contained in the cache, then it may be lost and the pattern X on the media is returned. If the
trim property of the LBA was lost when power was removed, then pattern X is the only data available to return. If
the trim property of the media was preserved prior to power removal, then pattern A is returned when power is
reapplied. If pattern Y was written to the media by the device prior to power removal, then pattern Y may be
returned. Finally, if the device supports non-deterministic trim, then a fourth unrelated pattern may be returned.
A device that supports non-deterministic behavior (see D.1) may return any data pattern that is not derived from
data currently or previously associated with a different LBA. In example 1, a read command requesting LBA may
also return a totally unrelated pattern B.
A device that supports DRAT behavior (see D.1) may only return pattern X, pattern Y, or pattern A. The lack of a
flush command prior to power being cycled allows the trim status of the drive to be lost. If this is the case, and
pattern Y was still in the cache when power was cycled, then the only remaining data to return is pattern X, even
if a previous read of LBA 5 returned pattern A. If pattern Y had been written to the media by the device, then a
read of LBA 5 returns pattern Y.
A device that supports RZAT behavior (see D.1) may only return pattern X, pattern Y, or pattern A where pattern
A is all zeroes. The lack of a flush command prior to power being cycled allows the trim status of LBA 5 to be
lost. If pattern Y was committed to the non-volatile media, then the device may return pattern Y or zeroes (i.e.,
pattern A) in response to the first read of LBA 5 after power is reapplied. If pattern Y was still in the cache when
power was removed, then after power is reapplied, the first read of LBA 5 may return pattern X or zeroes (i.e.,
pattern A).
Example 2, if the device receives:
1) a write of data pattern X to LBA 5;
2) a FLUSH EXT command;
3) a write of data pattern Y to LBA 5 where data is retained in the volatile cache;
4) a trim of LBA 5;
5) a read of LBA 5 returns pattern Y or pattern A (i.e., the device trimmed the logical block and returned an
internal data pattern);
6) a FLUSH EXT command that reports good status;
7) a power cycle; and
8) a read command requesting LBA 5,
then the device returns pattern Y, pattern A, or a new pattern B.
The difference between example 1 and example 2 is that in example 2, a flush command was completed before
power was removed. This forced the most recent write of LBA 5 to become non-volatile.
A device that supports non-deterministic behavior (see D.1) may return any data pattern that is not derived from
data currently or previously associated with a different LBA. In example 2, a read command requesting LBA 5
may also return a totally unrelated pattern B.
A device that supports DRAT behavior (see D.1) may only return pattern Y or pattern A. The flush command
prior to power being cycled preserves the trim status of the drive and the pattern that was returned in step 5.
A device that supports RZAT behavior (see D.1) may only return pattern Y or pattern A. For an RZAT device, if
pattern A is returned, it is all zeroes. The flush command prior to power being cycled preserves the trim status of
the drive and the pattern that was returned in step 5.
Example 3, if the device receives:
1) a write of data pattern X to LBA 5;
2) a FLUSH EXT command;
3) a write of data pattern Y to LBA 5, data is retained in the volatile cache;
4) a trim of LBA 5;
5) a read of LBA 5 and returns pattern A (i.e., the device trimmed the logical block and returned an internal
data pattern);
6) a FLUSH EXT command and is able to report good status;
7) a read of LBA 5 and returns pattern A;
8) a power cycle; and
9) a read command requesting LBA 5,
then the device returns pattern A.
Example 3 describes a command sequence that always yields the same result for a device that supports DRAT
or RZAT behavior device. If the device supports RZAT, behavior then pattern A is all zeros. If the device
supports DRAT behavior, then pattern A may be anything as long as it remains the same pattern for subsequent
reads, until a write to LBA 5 is processed. If the device supports DRAT behavior, then the data returned in
pattern A is not derived from any data currently or previously associated with a different LBA (see 7.5.3.3).
If the device supports non-deterministic behavior (see D.1), then the device may always return a different pattern
in response to a read of LBA 5, as long as the pattern was not derived from data that was previously written to an
LBA other than LBA 5.
Bibliography
Serial ATA revision 1.0a (SATA 1.0a) (see http://www.sata-io.org)
Serial ATA II: Extensions (SATA II: Extensions) (see http://www.sata-io.org)
Serial ATA revision 2.5 (SATA 2.5) (see http://www.sata-io.org)
Serial ATA revision 2.6 (SATA 2.6) (see http://www.sata-io.org)
Serial ATA revision 3.0 (SATA 3.0) (see http://www.sata-io.org)
Serial ATA revision 3.1 (SATA 3.1) (see http://www.sata-io.org)
ANSI INCITS 522-201x, ATA/ATAPI Command Set - 3 (ACS-3) (under national consideration)
ANSI INCITS 340-2000, AT Attachment with Packet Interface Extension - 5 (ATA/ATAPI-5)
ANSI INCITS 361-2002, AT Attachment with Packet Interface Extension - 6 (ATA/ATAPI-6)
ANSI INCITS 397-2005 and ISO/IEC 14776-971, AT Attachment with Packet Interface Extension - 7
(ATA/ATAPI-7)
ANSI INCITS 397-2005/AM 1-2006, ATA/ATAPI-7 Amendment 1
ANSI INCITS 452-2008 and ISO/IEC 17760-101, AT Attachment – 8 ATA/ATAPI Command Set (ATA8-ACS)
INCITS 370-2004, Information technology – ATA/ATAPI Host Adapters Standard (ATA - Adapter)
IEEE 1667-2009, Standard Protocol for Authentication in Host Attachments of Transient Storage Devices 1
JEDEC® JESD220A – Universal Flash Storage (UFS 1.1) standard 2
SDCard TrustedFlash Security Systems Specification 1.1.3 3
NVM Express version 1.2 4
PCI Express® Base Specification Revision 3.0 (PCIe), 10 November 2010 5