Format of IDE/ATA Identify Drive information:
Offset Size Description (Table P0516)
00h WORD general configuration (see #P0517)
02h WORD number of logical cylinders
04h WORD reserved
06h WORD number of logical heads
08h WORD vendor-specific (obsolete: unformatted bytes per track)
0Ah WORD vendor-specific (obsolete: unformatted bytes per sector)
0Ch WORD number of logical sectors
0Eh WORD vendor-specific
10h WORD vendor-specific
12h WORD vendor-specific
14h 10 WORDs serial number
no serial number if first word is 0000h
else blank-padded ASCII serial number
28h WORD vendor-specific
[buffer type: 01h single-sector, 02h multisector,
03h multisector with read cache]
2Ah WORD controller buffer size in 512-byte sectors
0000h = unspecified
2Ch WORD number of vendor-specific (usually ECC) bytes on
Read/Write Long; 0000h = unspecified
2Eh 4 WORDs firmware revision
no revision number if first word is 0000h
else blank-padded ASCII revision number
36h 20 WORDs model number
no model number if first word is 0000h
else blank-padded ASCII model string
5Eh WORD read/write multiple support
bits 7-0: maximum number of sectors per block supported
00h if read/write multiple not supported
bits 15-8: vendor-specified
60h WORD able to do doubleword transfers if nonzero
62h WORD capabilities (see #P0518)
64h WORD security mode
bit 15: security-mode feature set supported
bits 14-8: maximum number of passwords supported
66h WORD PIO data transfer cycle timing
68h WORD single-word DMA data transfer cycle timing
6Ah WORD field validity
bit 0: offsets 6Ch-75h valid
bit 1: offsets 80h-8Dh valid
6Ch WORD logical cylinders in current translation mode
6Eh WORD logical heads in current translation mode
70h WORD logical sectors per track in current translation mode
72h DWORD current capacity in sectors (excluding device-specific uses)
76h WORD multiple-sector support
bits 7-0: count for read/write multiple command
bit 8: multiple-sector setting is valid
78h DWORD total number of user-addressable sectors (LBA mode)
00000000h if LBA mode not supported
7Ch WORD single-word DMA transfer modes
low byte is bitmap of supported modes (bit 0 = mode 0, etc.)
high bytes is bitmap of active mode (bit 8 = mode 0, etc.)
7Eh WORD multiword DMA transfer
low byte is bitmap of supported modes (bit 0 = mode 0, etc.)
high byte is bitmap of active mode (bit 8 = mode 0, etc.)
80h WORD supported flow control PIO transfer modes
82h WORD minimum multiword DMA transfer cycle time in ns
84h WORD recommended multiword DMA cycle time in ns
86h WORD minimum non-flow-control PIO transfer cycle time in ns
88h WORD minimum PIO transfer cycle time with IORDY in ns
8Ah 2 WORDs reserved for future PIO modes (0)
8Eh 2 WORDs reserved (0)
92h WORD command queueing/overlapped operation (see #P0523)
94h 6 WORDs reserved (0)
A0h WORD major revision number of specification to which device conforms
01h = ATA-1, 02h = ATA-2, etc. 0000h/FFFFh = not reported
A2h WORD minor revision number of specification to which device conforms
0000h/FFFFh = not reported
A4h WORD feature set support 1 (see #P0519)
(only valid if revision reported in A0h/A2h)
A6h WORD feature set support 2 (see #P0520)
(only valid if revision reported in A0h/A2h)
A8h WORD (ATA/ATAPI-4) feature set support extension (see #P0521)
AAh WORD feature set enabled 1 (see #P0522)
(only valid if revision reported in A0h/A2h)
ACh WORD feature set enabled 2 (see #P0520)
(only valid if revision reported in A0h/A2h)
AEh WORD (ATA/ATAPI-4) feature set enabled extension (see #P0521)
B0h 42 WORDs reserved (0)
100h 32 WORDs vendor-specific
100h WORD security status
140h 96 WORDs reserved (0)
SeeAlso: #P0524,#00267
Bitfields for IDE general configuration:
Bit(s) Description (Table P0517)
15 device class
=0 ATA device
=1 ATAPI device
14 requires format speed tolerance gap
13 supports track offset option
12 supports data strobe offset
11 disk rotational sped tolerance > 0.5%
10-8 disk transfer rate
001 <= 5Mbit/sec
010 5-10 Mbit/sec
100 > 10Mbit/sec
7-6 drive type
01 fixed media
10 removable media
5 synchronized drive motor option enabled
4 head-switching time > 15 microseconds
3 encoding
=0 MFM
2-1 sector type
01 hard-sectored
10 soft-sectored
0 unused (0)
SeeAlso: #P0516
Bitfields for IDE capabilities:
Bit(s) Description (Table P0518)
13 Standby Timer values used according to ATA standard
11 IORDY supported
10 device can disable use of IORDY
9 LBA mode supported
8 DMA supported
SeeAlso: #P0516
Bitfields for hard disk controller status register:
Bit(s) Description (Table P0514)
7 controller is executing a command
6 drive is ready
5 write fault
4 seek complete
3 sector buffer requires servicing
2 disk data read successfully corrected
1 index - set to 1 each disk revolution
0 previous command ended in an error
SeeAlso: #P0512,#P0515
(Table P0515)
Values for hard disk controller command codes:
Command Spec Type Proto Description class:
00h opt nondata NOP
08h device reset
1xh opt nondata recalibrate 1
20h req PIOin read sectors with retry 1
21h req PIOin read sectors without retry 1
22h req PIOin read long with retry 1
23h req PIOin read long without retry 1
30h req PIOout write sectors with retry 2
31h req PIOout write sectors without retry 2
32h req PIOout write long with retry 2
33h req PIOout write long without retry 2
3Ch IDE opt PIOout write verify 3
40h req nondata read verify sectors with retry 1
41h req nondata read verify sectors without retry 1
50h req vend format track 2
7xh req nondata seek 1
8xh IDE vendor vend vendor unique 3
90h req nondata execute drive diagnostics 1
91h req nondata initialize drive parameters 1
92h opt PIOout download microcode
94h E0h IDE opt nondata standby immediate 1
95h E1h IDE opt nondata idle immediate 1
96h E2h IDE opt nondata standby 1
97h E3h IDE opt nondata idle 1
98h E5h IDE opt nondata check power mode 1
99h E6h IDE opt nondata set sleep mode 1
9Ah IDE vendor vend vendor unique 1
A0h ATAPI packet command
A1h ATAPI opt PIOin ATAPI Identify (see #P0524)
B0h SMART opt Self Mon., Analysis, Rept. Tech. (see #P0527)
C0h-C3h IDE vendor vend vendor unique 2
C4h IDE opt PIOin read multiple 1
C5h IDE opt PIOout write multiple 3
C6h IDE opt nondata set multiple mode 1
C7h ATA-4 Read DMA O/Q
C8h IDE opt DMA read DMA with retry 1
C9h IDE opt DMA read DMA without retry 1
CAh IDE opt DMA write DMA with retry 3
CBh IDE opt DMA write DMA w/out retry 3
CCh ATA-4 Write DMA O/Q
DAh get media status
DBh ATA-2 opt vend acknowledge media chng [Removable]
DCh ATA-2 opt vend Boot / Post-Boot [Removable]
DDh ATA-2 opt vend Boot / Pre-Boot (ATA-2) [Removable]
DEh ATA-2 opt vend door lock [Removable]
DFh ATA-2 opt vend door unlock [Removable]
E0h-E3h (second half of commands 94h-96h)
ECh IDE req PIOin identify drive 1 (see #P0516)
EDh ATA-2 opt nondata media eject [Removable]
EEh ATA-3 opt identify device DMA (see #P0516)
EFh IDE opt nondata set features 1 (see #P0535)
F0h-F4h IDE vend EATA standard
F1h Security Set Password
F2h Security Unlock
F3h Security Erase Prepare
F4h Security Erase Unit
F5h-FFh IDE vendor vend vendor unique 4
F5h Security Freeze Lock
F6h Security Disable Password