ATA Command Matrix
This information is current up to ACS-5, and includes obsolete commands from prior versions of the standard.
Opcode | Name | Transfer | Parameters | Standard |
---|---|---|---|---|
00 | NOP | none | 8-bit | ATA-1 to present |
01 | ||||
02 | ||||
03 | CFA REQUEST EXTENDED ERROR CODE | none | 8-bit | ATA-4 to present |
04 | ||||
05 | ||||
06 | DATA SET MANAGEMENT | DMA | 16-bit | ACS-2 to present |
07 | DATA SET MANAGEMENT XL | DMA | 16-bit | ACS-4 to present |
08 | DEVICE RESET | none | 8-bit | ATA-3 to ACS-3 |
09 | ||||
0A | ||||
0B | REQUEST SENSE DATA EXT | none | 16-bit | ACS-2 to present |
0C | ||||
0D | ||||
0E | ||||
0F | ||||
10 | RECALIBRATE | none | 8-bit | IBM PC/AT to ATA-3 |
11 | RECALIBRATE | none | 8-bit | IBM PC/AT to ATA-2 |
12 | GET PHYSICAL ELEMENT STATUS | DMA | 16-bit | ACS-4 to present |
12 | RECALIBRATE | none | 8-bit | IBM PC/AT to ATA-2 |
13 | RECALIBRATE | none | 8-bit | IBM PC/AT to ATA-2 |
14 | RECALIBRATE | none | 8-bit | IBM PC/AT to ATA-2 |
15 | RECALIBRATE | none | 8-bit | IBM PC/AT to ATA-2 |
16 | RECALIBRATE | none | 8-bit | IBM PC/AT to ATA-2 |
17 | RECALIBRATE | none | 8-bit | IBM PC/AT to ATA-2 |
18 | RECALIBRATE | none | 8-bit | IBM PC/AT to ATA-2 |
19 | RECALIBRATE | none | 8-bit | IBM PC/AT to ATA-2 |
1A | RECALIBRATE | none | 8-bit | IBM PC/AT to ATA-2 |
1B | RECALIBRATE | none | 8-bit | IBM PC/AT to ATA-2 |
1C | RECALIBRATE | none | 8-bit | IBM PC/AT to ATA-2 |
1D | RECALIBRATE | none | 8-bit | IBM PC/AT to ATA-2 |
1E | RECALIBRATE | none | 8-bit | IBM PC/AT to ATA-2 |
1F | RECALIBRATE | none | 8-bit | IBM PC/AT to ATA-2 |
20 | READ SECTOR(S) | PIO | 8-bit | IBM PC/AT to present |
21 | READ SECTOR(S) (without retry) | PIO | 8-bit | IBM PC/AT to ATA-4 |
22 | READ LONG | PIO | 8-bit | IBM PC/AT to ATA-3 |
23 | READ LONG (without retry) | PIO | 8-bit | IBM PC/AT to ATA-3 |
24 | READ SECTOR(S) EXT | PIO | 16-bit | ATA-6 to present |
25 | READ DMA EXT | DMA | 16-bit | ATA-6 to present |
26 | READ DMA QUEUED EXT | queued DMA | 16-bit | ATA-6 to ATA8-ACS |
27 | READ NATIVE MAX ADDRESS EXT | none | 16-bit | ATA-6 to ACS-2 |
28 | ||||
29 | READ MULTIPLE EXT | PIO | 16-bit | ATA-6 to ACS-3 |
2A | READ STREAM DMA EXT | DMA | 16-bit | ATA-7 to present |
2B | READ STREAM EXT | PIO | 16-bit | ATA-7 to present |
2C | ||||
2D | ||||
2E | ||||
2F | READ LOG EXT | PIO | 16-bit | ATA-6 to present |
30 | WRITE SECTOR(S) | PIO | 8-bit | IBM PC/AT to present |
31 | WRITE SECTOR(S) (without retry) | PIO | 8-bit | IBM PC/AT to ATA-4 |
32 | WRITE LONG | PIO | 8-bit | IBM PC/AT to ATA-3 |
33 | WRITE LONG (without retry) | PIO | 8-bit | IBM PC/AT to ATA-3 |
34 | WRITE SECTOR(S) EXT | PIO | 16-bit | ATA-6 to present |
35 | WRITE DMA EXT | DMA | 16-bit | ATA-6 to present |
36 | WRITE DMA QUEUED EXT | queued DMA | 16-bit | ATA-6 to ATA8-ACS |
37 | SET MAX ADDRESS EXT | none | 16-bit | ATA-6 to ACS-2 |
38 | CFA WRITE SECTORS WITHOUT ERASE | PIO | 8-bit | ATA-4 to present |
39 | WRITE MULTIPLE EXT | PIO | 16-bit | ATA-6 to ACS-3 |
3A | WRITE STREAM DMA EXT | DMA | 16-bit | ATA-7 to present |
3B | WRITE STREAM EXT | PIO | 16-bit | ATA-7 to present |
3C | WRITE VERIFY | PIO | 8-bit | ATA-1 to ATA-3 |
3D | WRITE DMA FUA EXT | DMA | 16-bit | ATA-7 to present |
3E | WRITE DMA QUEUED FUA EXT | queued DMA | 16-bit | ATA-7 to ATA8-ACS |
3F | WRITE LOG EXT | PIO | 16-bit | ATA-6 to present |
40 | READ VERIFY SECTOR(S) | none | 8-bit | IBM PC/AT to present |
41 | READ VERIFY SECTOR(S) (without retry) | none | 8-bit | IBM PC/AT to ATA-4 |
42 | READ VERIFY SECTOR(S) EXT | none | 16-bit | ATA-6 to present |
43 | ||||
44 | ZERO EXT | none | 16-bit | ACS-4 to present |
45 | WRITE UNCORRECTABLE EXT | none | 16-bit | ATA8-ACS to present |
46 | ||||
47 | READ LOG DMA EXT | DMA | 16-bit | ATA8-ACS to present |
48 | ||||
49 | ||||
4A | ZAC Management In | DMA | 16-bit | ACS-4 to present |
4B | ||||
4C | ||||
4D | ||||
4E | ||||
4F | ||||
50 | FORMAT TRACK | PIO | 8-bit | IBM PC/AT to ATA-3 |
51 | CONFIGURE STREAM | none | 16-bit | ATA-7 to present |
52 | ||||
53 | ||||
54 | ||||
55 | ||||
56 | ||||
57 | WRITE LOG DMA EXT | DMA | 16-bit | ATA8-ACS to present |
58 | ||||
59 | ||||
5A | ||||
5B | TRUSTED NON-DATA | none | 8-bit | ACS-2 to present |
5C | TRUSTED RECEIVE | PIO | 8-bit | ATA8-ACS to present |
5D | TRUSTED RECEIVE DMA | DMA | 8-bit | ATA8-ACS to present |
5E | TRUSTED SEND | PIO | 8-bit | ATA8-ACS to present |
5F | TRUSTED SEND DMA | DMA | 8-bit | ATA8-ACS to present |
60 | READ FPDMA QUEUED | queued DMA | 16-bit | ATA8-ACS to present |
61 | WRITE FPDMA QUEUED | queued DMA | 16-bit | ATA8-ACS to present |
62 | ||||
63 | NCQ NON-DATA | none | 16-bit | ACS-3 to present |
64 | SEND FPDMA QUEUED | queued DMA | 16-bit | ACS-3 to present |
65 | RECEIVE FPDMA QUEUED | queued DMA | 16-bit | ACS-3 to present |
66 | ||||
67 | ||||
68 | ||||
69 | ||||
6A | ||||
6B | ||||
6C | ||||
6D | ||||
6E | ||||
6F | ||||
70 | SEEK | none | 8-bit | IBM PC/AT to ATA-6 |
71 | SEEK | none | 8-bit | IBM PC/AT to ATA-2 |
72 | SEEK | none | 8-bit | IBM PC/AT to ATA-2 |
73 | SEEK | none | 8-bit | IBM PC/AT to ATA-2 |
74 | SEEK | none | 8-bit | IBM PC/AT to ATA-2 |
75 | SEEK | none | 8-bit | IBM PC/AT to ATA-2 |
76 | SEEK | none | 8-bit | IBM PC/AT to ATA-2 |
77 | SET DATE & TIME EXT | none | 16-bit | ACS-3 to present |
77 | SEEK | none | 8-bit | IBM PC/AT to ATA-2 |
78 | ACCESSIBLE MAX ADDRESS CONFIGURATION | none | 16-bit | ACS-3 to present |
78 | SEEK | none | 8-bit | IBM PC/AT to ATA-2 |
79 | SEEK | none | 8-bit | IBM PC/AT to ATA-2 |
7A | SEEK | none | 8-bit | IBM PC/AT to ATA-2 |
7B | SEEK | none | 8-bit | IBM PC/AT to ATA-2 |
7C | REMOVE ELEMENT AND TRUNCATE | none | 16-bit | ACS-4 to present |
7C | SEEK | none | 8-bit | IBM PC/AT to ATA-2 |
7D | RESTORE ELEMENTS AND REBUILD | none | 16-bit | ACS-5 to present |
7D | SEEK | none | 8-bit | IBM PC/AT to ATA-2 |
7E | REMOVE ELEMENT AND MODIFY ZONES | none | 16-bit | ACS-5 to present |
7E | SEEK | none | 8-bit | IBM PC/AT to ATA-2 |
7F | SEEK | none | 8-bit | IBM PC/AT to ATA-2 |
80 | Vendor Specific | |||
81 | Vendor Specific | |||
82 | Vendor Specific | |||
83 | Vendor Specific | |||
84 | Vendor Specific | |||
85 | Vendor Specific | |||
86 | Vendor Specific | |||
87 | CFA TRANSLATE SECTOR | PIO | 8-bit | ATA-4 to present |
88 | Vendor Specific | |||
89 | Vendor Specific | |||
8A | Vendor Specific | |||
8B | Vendor Specific | |||
8C | Vendor Specific | |||
8D | Vendor Specific | |||
8E | Vendor Specific | |||
8F | Vendor Specific | |||
90 | EXECUTE DEVICE DIAGNOSTIC | none | 8-bit | IBM PC/AT to present |
91 | INITIALIZE DEVICE PARAMETERS | none | 8-bit | IBM PC/AT to ATA-5 |
92 | DOWNLOAD MICROCODE | PIO | 8-bit | ATA-2 to present |
93 | DOWNLOAD MICROCODE DMA | DMA | 8-bit | ACS-2 to present |
94 | STANDBY IMMEDIATE | none | 8-bit | ATA-1 to ATA-3 |
95 | IDLE IMMEDIATE | none | 8-bit | ATA-1 to ATA-3 |
96 | MUTATE EXT | none | 16-bit | ACS-5 to present |
96 | STANDBY | none | 8-bit | ATA-1 to ATA-3 |
97 | IDLE | none | 8-bit | ATA-1 to ATA-3 |
98 | CHECK POWER MODE | none | 8-bit | ATA-1 to ATA-3 |
99 | SLEEP | none | 8-bit | ATA-1 to ATA-3 |
9A | Vendor Specific | |||
9B | ||||
9C | ||||
9D | ||||
9E | ||||
9F | ZAC Management Out | DMA | 16-bit | ACS-4 to present |
A0 | PACKET | packet | 8-bit | ATA-3 to ACS-3 |
A1 | IDENTIFY PACKET DEVICE | PIO | 8-bit | ATA-3 to ACS-3 |
A2 | SERVICE | varies | 8-bit | ATA-3 to ATA8-ACS |
A3 | ||||
A4 | ||||
A5 | ||||
A6 | ||||
A7 | ||||
A8 | ||||
A9 | ||||
AA | ||||
AB | ||||
AC | ||||
AD | ||||
AE | ||||
AF | ||||
B0 | SMART | PIO | 8-bit | ATA-3 to present |
B1 | Device Configuration Overlay | PIO | 8-bit | ATA-6 to ACS-2 |
B2 | SET SECTOR CONFIGURATON EXT | none | 16-bit | ACS-4 to present |
B3 | ||||
B4 | Sanitize Device | none | 16-bit | ACS-2 to present |
B5 | ||||
B6 | NV Cache | DMA | 16-bit | ATA8-ACS to ACS-2 |
B7 | Reserved for CFA | |||
B8 | Reserved for CFA | |||
B9 | Reserved for CFA | |||
BA | Reserved for CFA | |||
BB | Reserved for CFA | |||
BC | ||||
BD | ||||
BE | ||||
BF | ||||
C0 | CFA ERASE SECTORS | none | 8-bit | ATA-4 to ACS-2 |
C1 | Vendor Specific | |||
C2 | Vendor Specific | |||
C3 | Vendor Specific | |||
C4 | READ MULTIPLE | PIO | 8-bit | ATA-1 to ACS-3 |
C5 | WRITE MULTIPLE | PIO | 8-bit | ATA-1 to ACS-3 |
C6 | SET MULTIPLE MODE | none | 8-bit | ATA-1 to ACS-3 |
C7 | READ DMA QUEUED | queued DMA | 8-bit | ATA-4 to ATA8-ACS |
C8 | READ DMA | DMA | 8-bit | ATA-1 to present |
C9 | READ DMA (without retry) | DMA | 8-bit | ATA-1 to ATA-4 |
CA | WRITE DMA | DMA | 8-bit | ATA-1 to present |
CB | WRITE DMA (without retry) | DMA | 8-bit | ATA-1 to ATA-4 |
CC | WRITE DMA QUEUED | queued DMA | 8-bit | ATA-4 to ATA8-ACS |
CD | CFA WRITE MULTIPLE WITHOUT ERASE | PIO | 8-bit | ATA-4 to present |
CE | WRITE MULTIPLE FUA EXT | PIO | 16-bit | ATA-7 to ACS-3 |
CF | ||||
D0 | ||||
D1 | CHECK MEDIA CARD TYPE | none | 8-bit | ATA-6 to ACS-2 |
D2 | ||||
D3 | ||||
D4 | ||||
D5 | ||||
D6 | ||||
D7 | ||||
D8 | ||||
D9 | ||||
DA | GET MEDIA STATUS | none | 8-bit | ATA-3 to ATA-7 |
DB | ACKNOWLEDGE MEDIA CHANGE | none | 8-bit | ATA-1 to ATA-2 |
DC | BOOT - POST-BOOT | none | 8-bit | ATA-1 to ATA-2 |
DD | BOOT - PRE-BOOT | none | 8-bit | ATA-1 to ATA-2 |
DE | MEDIA LOCK | none | 8-bit | ATA-1 to ATA-7 |
DF | MEDIA UNLOCK | none | 8-bit | ATA-1 to ATA-7 |
E0 | STANDBY IMMEDIATE | none | 8-bit | ATA-1 to present |
E1 | IDLE IMMEDIATE | none | 8-bit | ATA-1 to present |
E2 | STANDBY | none | 8-bit | ATA-1 to present |
E3 | IDLE | none | 8-bit | ATA-1 to present |
E4 | READ BUFFER | PIO | 8-bit | ATA-1 to present |
E5 | CHECK POWER MODE | none | 8-bit | ATA-1 to present |
E6 | SLEEP | none | 8-bit | ATA-1 to present |
E7 | FLUSH CACHE | none | 8-bit | ATA-4 to present |
E8 | WRITE BUFFER | PIO | 8-bit | ATA-1 to present |
E9 | READ BUFFER DMA | DMA | 8-bit | ACS-2 to present |
E9 | WRITE SAME | 8-bit | ATA-1 to ATA-2 | |
EA | FLUSH CACHE EXT | none | 8-bit | ATA-6 to present |
EB | WRITE BUFFER DMA | DMA | 8-bit | ACS-2 to present |
EC | IDENTIFY DEVICE | PIO | 8-bit | ATA-1 to present |
ED | MEDIA EJECT | none | 8-bit | ATA-1 to ATA-7 |
EE | IDENTIFY DEVICE DMA | DMA | 8-bit | ATA-3 |
EF | SET FEATURES | none | 8-bit | ATA-1 to present |
F0 | Vendor Specific | |||
F1 | SECURITY SET PASSWORD | PIO | 8-bit | ATA-3 to present |
F2 | SECURITY UNLOCK | PIO | 8-bit | ATA-3 to present |
F3 | SECURITY ERASE PREPARE | none | 8-bit | ATA-3 to present |
F4 | SECURITY ERASE UNIT | PIO | 8-bit | ATA-3 to present |
F5 | SECURITY FREEZE LOCK | none | 8-bit | ATA-3 to present |
F6 | SECURITY DISABLE PASSWORD | PIO | 8-bit | ATA-3 to present |
F7 | Vendor Specific | |||
F8 | READ NATIVE MAX ADDRESS | none | 8-bit | ATA-4 to ACS-2 |
F9 | SET MAX ADDRESS | none | 8-bit | ATA-4 to ACS-2 |
FA | Vendor Specific | |||
FB | Vendor Specific | |||
FC | Vendor Specific | |||
FD | Vendor Specific | |||
FE | Vendor Specific | |||
FF | Vendor Specific |