4 * Home page of code is: http://www.smartmontools.org
6 * Copyright (C) 2003-8 Philip Williams
7 * Copyright (C) 2012 Christian Franke
9 * SPDX-License-Identifier: GPL-2.0-or-later
12 #include "atacmdnames.h"
16 const char * atacmdnames_cpp_cvsid
= "$Id: atacmdnames.cpp 4760 2018-08-19 18:45:53Z chrfranke $"
19 const char cmd_reserved
[] = "[RESERVED]";
20 const char cmd_vendor_specific
[] = "[VENDOR SPECIFIC]";
21 const char cmd_reserved_sa
[] = "[RESERVED FOR SERIAL ATA]";
22 const char cmd_reserved_cf
[] = "[RESERVED FOR COMPACTFLASH ASSOCIATION]";
23 const char cmd_reserved_mcpt
[] = "[RESERVED FOR MEDIA CARD PASS THROUGH]"; // ACS-3: Reserved
24 const char cmd_recalibrate_ret4
[]= "RECALIBRATE [RET-4]";
25 const char cmd_seek_ret4
[] = "SEEK [RET-4]";
27 // Tables B.3 and B.4 of T13/2161-D (ACS-3) Revision 4, September 4, 2012
29 const char * const command_table
[] = {
30 /*-------------------------------------------------- 00h-0Fh -----*/
34 "CFA REQUEST EXTENDED ERROR",
37 "DATA SET MANAGEMENT", // ACS-2
42 "REQUEST SENSE DATA EXT", // ACS-2
47 /*-------------------------------------------------- 10h-1Fh -----*/
48 "RECALIBRATE [OBS-4]",
64 /*-------------------------------------------------- 20h-2Fh -----*/
66 "READ SECTOR(S) [OBS-5]",
68 "READ LONG (w/o retry) [OBS-4]",
71 "READ DMA QUEUED EXT [OBS-ACS-2]",
72 "READ NATIVE MAX ADDRESS EXT [OBS-ACS-3]",
81 /*-------------------------------------------------- 30h-3Fh -----*/
83 "WRITE SECTOR(S) (w/o retry) [OBS-5]",
85 "WRITE LONG (w/o retry) [OBS-4]",
86 "WRITE SECTORS(S) EXT",
88 "WRITE DMA QUEUED EXT [OBS-ACS-2]",
89 "SET NATIVE MAX ADDRESS EXT [OBS-ACS-3]",
90 "CFA WRITE SECTORS WITHOUT ERASE",
94 "WRITE VERIFY [OBS-4]",
96 "WRITE DMA QUEUED FUA EXT [OBS-ACS-2]",
98 /*-------------------------------------------------- 40h-4Fh -----*/
99 "READ VERIFY SECTOR(S)",
100 "READ VERIFY SECTOR(S) (w/o retry) [OBS-5]",
101 "READ VERIFY SECTOR(S) EXT",
104 "WRITE UNCORRECTABLE EXT", // ATA-8
106 "READ LOG DMA EXT", // ATA-8
115 /*-------------------------------------------------- 50h-5Fh -----*/
116 "FORMAT TRACK [OBS-4]",
123 "WRITE LOG DMA EXT", // ATA-8
127 "TRUSTED NON-DATA", // ATA-8
128 "TRUSTED RECEIVE", // ATA-8
129 "TRUSTED RECEIVE DMA", // ATA-8
130 "TRUSTED SEND", // ATA-8
131 "TRUSTED SEND DMA", // ATA-8
132 /*-------------------------------------------------- 60h-6Fh -----*/
133 "READ FPDMA QUEUED", // ATA-8
134 "WRITE FPDMA QUEUED", // ATA-8
136 "NCQ QUEUE MANAGEMENT", // ACS-3
137 "SEND FPDMA QUEUED", // ACS-3
138 "RECEIVE FPDMA QUEUED", // ACS-3
149 /*-------------------------------------------------- 70h-7Fh -----*/
157 "SET DATE & TIME EXT", // ACS-3
158 "ACCESSIBLE MAX ADDRESS CONFIGURATION", // ACS-3
166 /*-------------------------------------------------- 80h-8Fh -----*/
174 "CFA TRANSLATE SECTOR [VS IF NO CFA]",
183 /*-------------------------------------------------- 90h-9Fh -----*/
184 "EXECUTE DEVICE DIAGNOSTIC",
185 "INITIALIZE DEVICE PARAMETERS [OBS-6]",
186 "DOWNLOAD MICROCODE",
187 "DOWNLOAD MICROCODE DMA", // ACS-2
188 "STANDBY IMMEDIATE [RET-4]",
189 "IDLE IMMEDIATE [RET-4]",
192 "CHECK POWER MODE [RET-4]",
200 /*-------------------------------------------------- A0h-AFh -----*/
202 "IDENTIFY PACKET DEVICE",
203 "SERVICE [OBS-ACS-2]",
217 /*-------------------------------------------------- B0h-BFh -----*/
219 "DEVICE CONFIGURATION [OBS-ACS-3]",
222 "SANITIZE DEVICE", // ACS-2
224 "NV CACHE [OBS-ACS-3]", // ATA-8
234 /*-------------------------------------------------- C0h-CFh -----*/
235 "CFA ERASE SECTORS [VS IF NO CFA]",
242 "READ DMA QUEUED [OBS-ACS-2]",
244 "READ DMA (w/o retry) [OBS-5]",
246 "WRITE DMA (w/o retry) [OBS-5]",
247 "WRITE DMA QUEUED [OBS-ACS-2]",
248 "CFA WRITE MULTIPLE WITHOUT ERASE",
249 "WRITE MULTIPLE FUA EXT",
251 /*-------------------------------------------------- D0h-DFh -----*/
253 "CHECK MEDIA CARD TYPE [OBS-ACS-2]",
262 "GET MEDIA STATUS [OBS-8]",
263 "ACKNOWLEDGE MEDIA CHANGE [RET-4]",
264 "BOOT POST-BOOT [RET-4]",
265 "BOOT PRE-BOOT [RET-4]",
266 "MEDIA LOCK [OBS-8]",
267 "MEDIA UNLOCK [OBS-8]",
268 /*-------------------------------------------------- E0h-EFh -----*/
278 "READ BUFFER DMA", // ACS-2 (was: WRITE SAME [RET-4])
280 "WRITE BUFFER DMA", // ACS-2
282 "MEDIA EJECT [OBS-8]",
283 "IDENTIFY DEVICE DMA [OBS-4]",
285 /*-------------------------------------------------- F0h-FFh -----*/
287 "SECURITY SET PASSWORD",
289 "SECURITY ERASE PREPARE",
290 "SECURITY ERASE UNIT",
291 "SECURITY FREEZE LOCK",
292 "SECURITY DISABLE PASSWORD",
294 "READ NATIVE MAX ADDRESS [OBS-ACS-3]",
295 "SET MAX ADDRESS [OBS-ACS-3]",
304 typedef char ASSERT_command_table_size
[
305 sizeof(command_table
)/sizeof(command_table
[0]) == 256 ? 1 : -1];
307 /* Returns the name of the command (and possibly sub-command) with the given
308 command code and feature register values. For most command codes this
309 simply returns the corresponding entry in the command_table array, but for
310 others the value of the feature register specifies a subcommand or
311 distinguishes commands. */
312 const char *look_up_ata_command(unsigned char c_code
, unsigned char f_reg
) {
318 return "NOP [Abort queued commands]";
320 return "NOP [Don't abort queued commands] [OBS-ACS-2]";
322 return "NOP [Reserved subcommand] [OBS-ACS-2]";
324 case 0x92: /* DOWNLOAD MICROCODE */
327 return "DOWNLOAD MICROCODE [Temporary] [OBS-8]";
329 return "DOWNLOAD MICROCODE [Save with offsets]"; // ATA-8
331 return "DOWNLOAD MICROCODE [Save]";
333 return "DOWNLOAD MICROCODE [Save for future use]"; // ACS-3
335 return "DOWNLOAD MICROCODE [Activate]"; // ACS-3
337 return "DOWNLOAD MICROCODE [Reserved subcommand]";
339 case 0xB0: /* SMART */
342 return "SMART READ DATA";
344 return "SMART READ ATTRIBUTE THRESHOLDS [OBS-4]";
346 return "SMART ENABLE/DISABLE ATTRIBUTE AUTOSAVE";
348 return "SMART SAVE ATTRIBUTE VALUES [OBS-6]";
350 return "SMART EXECUTE OFF-LINE IMMEDIATE";
352 return "SMART READ LOG";
354 return "SMART WRITE LOG";
356 return "SMART WRITE ATTRIBUTE THRESHOLDS [NS, OBS-4]";
358 return "SMART ENABLE OPERATIONS";
360 return "SMART DISABLE OPERATIONS";
362 return "SMART RETURN STATUS";
364 return "SMART EN/DISABLE AUTO OFFLINE [NS (SFF-8035i)]";
367 return "SMART [Vendor specific subcommand]";
369 return "SMART [Reserved subcommand]";
371 case 0xB1: /* DEVICE CONFIGURATION */
374 return "DEVICE CONFIGURATION RESTORE [OBS-ACS-3]";
376 return "DEVICE CONFIGURATION FREEZE LOCK [OBS-ACS-3]";
378 return "DEVICE CONFIGURATION IDENTIFY [OBS-ACS-3]";
380 return "DEVICE CONFIGURATION SET [OBS-ACS-3]";
382 return "DEVICE CONFIGURATION [Reserved subcommand] [OBS-ACS-3]";
384 case 0xEF: /* SET FEATURES */
387 return "SET FEATURES [Enable 8-bit PIO] [OBS-3]"; // Now CFA
389 return "SET FEATURES [Enable write cache]";
391 return "SET FEATURES [Set transfer mode]";
393 return "SET FEATURES [Enable auto DR] [OBS-4]";
395 return "SET FEATURES [Enable APM]";
397 return "SET FEATURES [Enable Pwr-Up In Standby]";
399 return "SET FEATURES [Set device spin-up]";
401 return "SET FEATURES [Reserved (address offset)] [OPS-ACS-3]";
403 return "SET FEATURES [Enable CFA power mode 1]";
405 return "SET FEATURES [Enable SATA feature]"; // ACS-3
407 return "SET FEATURES [Set Time-ltd R/W WCT]";
409 return "SET FEATURES [Set Time-ltd R/W EH]";
411 return "SET FEATURES [Disable Media Status Notf] [OBS-8]";
413 return "SET FEATURES [Disable retry] [OBS-4]";
415 return "SET FEATURES [Enable Free-fall Control]"; // ATA-8
417 return "SET FEATURES [Enable AAM] [OBS-ACS-2]";
419 return "SET FEATURES [Set Max Host I/F S Times]";
421 return "SET FEATURES [Length of VS data] [OBS-4]";
423 return "SET FEATURES [Ext. Power Conditions]"; // ACS-2
425 return "SET FEATURES [Set cache segs] [OBS-4]";
427 return "SET FEATURES [Disable read look-ahead]";
429 return "SET FEATURES [Enable release interrupt] [OBS-ACS-2]";
431 return "SET FEATURES [Enable SERVICE interrupt] [OBS-ACS-2]";
433 return "SET FEATURES [Disable revert defaults]";
435 return "SET FEATURES [LPS Error Reporting Control]"; // ACS-2
437 return "SET FEATURES [Disable ECC] [OBS-4]";
439 return "SET FEATURES [Disable 8-bit PIO] [OBS-3]"; // Now CFA
441 return "SET FEATURES [Disable write cache]";
443 return "SET FEATURES [Disable auto DR] [OBS-4]";
445 return "SET FEATURES [Disable APM]";
447 return "SET FEATURES [Disable Pwr-Up In Standby]";
449 return "SET FEATURES [Disable ECC] [OBS-4]";
451 return "SET FEATURES [Reserved (address offset)]";
453 return "SET FEATURES [Disable CFA power mode 1]";
455 return "SET FEATURES [Disable SATA feature]"; // ACS-3
457 return "SET FEATURES [Enable Media Status Notf] [OBS-8]";
459 return "SET FEATURES [Enable retries] [OBS-4]";
461 return "SET FEATURES [Set max avg curr] [OBS-4]";
463 return "SET FEATURES [Enable read look-ahead]";
465 return "SET FEATURES [Set max prefetch] [OBS-4]";
467 return "SET FEATURES [4 bytes VS data] [OBS-4]";
469 return "SET FEATURES [Disable Free-fall Control]"; // ATA-8
471 return "SET FEATURES [Disable AAM] [OBS-ACS-2]";
473 return "SET FEATURES [Sense Data Reporting]"; // ACS-2
475 return "SET FEATURES [Enable revert to defaults]";
477 return "SET FEATURES [Disable release interrupt] [OBS-ACS-2]";
479 return "SET FEATURES [Disable SERVICE interrupt] [OBS-ACS-2]";
481 return "SET FEATURES [Vendor specific] [OBS-7]";
484 return "SET FEATURES [Reserved for CFA]";
486 return "SET FEATURES [Reserved subcommand]";
488 case 0xF9: /* SET MAX */
491 return "SET MAX ADDRESS [OBS-6]";
493 return "SET MAX SET PASSWORD [OBS-ACS-3]";
495 return "SET MAX LOCK [OBS-ACS-3]";
497 return "SET MAX UNLOCK [OBS-ACS-3]";
499 return "SET MAX FREEZE LOCK [OBS-ACS-3]";
501 return "SET MAX [Reserved subcommand] [OBS-ACS-3]";
504 return command_table
[c_code
];