source: xtideuniversalbios/trunk/XTIDE_Universal_BIOS/Inc/ATA_ID.inc@ 255

Last change on this file since 255 was 233, checked in by gregli@…, 13 years ago

Serial Port: split single byte port and baud into two bytes, taking advantage of the two bytes in DPT_SERIAL, which supports more serial baud rates and in particular fixed a bug where a 4x client machine couldn't talk to a 115.2K server machine. This is a wide change, touching lots of files, but most are shallow changes. DetectPrint.asm took the most significant changes, now it calculates the baud rate to display instead of using characters provided by the Configurator. The Configurator now has a new menu flag, FLG_MENUITEM_CHOICESTRINGS, for specifying that values are not linear and they should be lookedup rather than indexed. Finally, another important bug fixed here is that in some error cases, the serial port code could get into an infinite loop waiting ont the hardware; now it has a timeout.

File size: 21.3 KB
Line 
1; File name : ATA_ID.inc
2; Project name : IDE BIOS
3; Created date : 30.10.2009
4; Last update : 12.3.2010
5; Author : Tomi Tilli
6; Description : ATA Identify Drive information.
7%ifndef ATA_ID_INC
8%define ATA_ID_INC
9
10; ATA-1 Drive Information struct
11; F = Fixed value
12; V = Variable value
13; R = Reserved word
14; X = Vendor specific word
15struc ATA1
16 .wGenCfg resw 1 ; 0F, General configuration bit-significant information
17 .wCylCnt resw 1 ; 1F, Number of cylinders
18 resw 1 ; 2R
19 .wHeadCnt resw 1 ; 3F, Number of heads
20 .wBpTrck resw 1 ; 4F, Number of unformatted bytes per track
21 .wBpSect resw 1 ; 5F, Number of unformatted bytes per sector
22 .wSPT resw 1 ; 6F, Number of sectors per track
23 resw 3 ; 7...9X
24 .strSerial resb 20 ; 10...19F, Serial number (20 ASCII characters, 0000h=not specified)
25 .wBuffType resw 1 ; 20F, Buffer type
26 .wBuffSize resw 1 ; 21F, Buffer size in 512 byte increments (0000h=not specified)
27 .wEccCnt resw 1 ; 22F, # of ECC bytes avail on read/write long cmds (0000h=not spec'd)
28 .strFirmW resb 8 ; 23...26F, Firmware revision (8 ASCII characters, 0000h=not specified)
29 .strModel resb 40 ; 27...46F, Model number (40 ASCII characters, 0000h=not specified)
30 .bBlckSize resb 1 ; 47[0-7]F, Maximum number of sectors that can be transferred
31 ; per interrupt on read and write multiple commands
32 ; (00h=Read/write multiple commands not implemented)
33 resb 1 ; 47[8-15]X
34 .wDWIO resw 1 ; 48F, Can perform doubleword I/O (boolean)
35 .wCaps resw 1 ; 49FRX, Capabilities
36 resw 1 ; 50R
37 resb 1 ; 51[0-7]X
38 .bPIOTiming resb 1 ; 51[8-15]F, PIO data transfer cycle timing mode
39 resb 1 ; 52[0-7]X
40 .bDMATiming resb 1 ; 52[8-15]F, DMA data transfer cycle timing mode
41 .wFields resw 1 ; 53FVR, Field (next words) validity bits
42
43 ; Words 54-58 are valid only if bit0 is set in .wFields
44 .wCurCyls resw 1 ; 54V, Number of current cylinders
45 .wCurHeads resw 1 ; 55V, Number of current heads
46 .wCurSPT resw 1 ; 56V, Number of current sectors per track
47 .dwCurSCnt resd 1 ; 57...58V, Current capacity in sectors
48
49 ; Words 59-63 are always valid
50 .bBlockSel resb 1 ; 59[0-7]V, Current setting for number of sectors that
51 ; can be transferred per interrupt on R/W multiple command
52 .bBlockFlgs resb 1 ; 59[8-15]VR, bit 0 set if Multiple sector setting is valid
53 .dwLBACnt resd 1 ; 60...61F, Total number of user addressable sectors (LBA mode only)
54 .bSDMASupp resb 1 ; 62[0-7]F, Single word DMA transfer modes supported
55 .bSDMAAct resb 1 ; 62[8-15]V, Single word DMA transfer mode active
56 .bMDMASupp resb 1 ; 63[0-7]F, Multiword DMA transfer modes supported
57 .bMDMAAct resb 1 ; 63[8-15]V, Multiword DMA transfer mode active
58endstruc
59
60; ATA-1 Word 0, General configuration
61A1_wGenCfg_NONMAG EQU (1<<15) ; Reserved for non-magnetic drives
62A1_wGenCfg_FGAPREQ EQU (1<<14) ; Format speed tolerance gap required
63A1_wGenCfg_TRCKOFF EQU (1<<13) ; Track offset option available
64A1_wGenCfg_DATAOFF EQU (1<<12) ; Data strobe offset option available
65A1_wGenCfg_ROTTOL EQU (1<<11) ; Rotational speed tolerance is > 0,5%
66A1_wGenCfg_XFERFAST EQU (1<<10) ; Disk transfer rate > 10 Mbs
67A1_wGenCfg_XFERMED EQU (1<<9) ; Disk transfer rate > 5Mbs but <= 10Mbs
68A1_wGenCfg_XFERSLOW EQU (1<<8) ; Disk transfer rate <= 5Mbs
69A1_wGenCfg_REMOVABLE EQU (1<<7) ; Removable cartridge drive
70A1_wGenCfg_FIXED EQU (1<<6) ; Fixed drive
71A1_wGenCfg_MOTCTRL EQU (1<<5) ; Spindle motor control option implemented
72A1_wGenCfg_HEADSLOW EQU (1<<4) ; Head switch time > 15 usec
73A1_wGenCfg_NOTMFM EQU (1<<3) ; Not MFM encoded
74A1_wGenCfg_SOFTSECT EQU (1<<2) ; Soft sectored
75A1_wGenCfg_HARDSECT EQU (1<<1) ; Hard sectored
76
77; ATA-1 Word 49, Capabilities
78A1_wCaps_LBA EQU (1<<9) ; LBA supported
79A1_wCaps_DMA EQU (1<<8) ; DMA supported
80
81; ATA-1 Word 53, Fields
82A1_wFields_54to58 EQU (1<<0) ; The fields reported in words 54-58 are valid
83
84; ATA-1 Word 59 high byte, Block mode flags
85A1_bBlockFlgs_VALID EQU (1<<0) ; Multiple sector setting (bBlockSel) is valid
86
87
88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
89
90; ATA-2 Drive Information struct
91; F = Fixed value
92; V = Variable value
93; R = Reserved word
94; X = Vendor specific word
95struc ATA2
96 .wGenCfg resw 1 ; 0F, General configuration bit-significant information
97 .wCylCnt resw 1 ; 1F, Number of logical cylinders
98 resw 1 ; 2R
99 .wHeadCnt resw 1 ; 3F, Number of logical heads
100 resw 1 ; 4X
101 resw 1 ; 5X
102 .wSPT resw 1 ; 6F, Number of logical sectors per track
103 resw 3 ; 7...9X
104 .strSerial resb 20 ; 10...19F, Serial number (20 ASCII characters, 0000h=not specified)
105 resw 1 ; 20X
106 resw 1 ; 21X
107 .wEccCnt resw 1 ; 22F, # of ECC bytes avail on read/write long cmds (0000h=not spec'd)
108 .strFirmW resb 8 ; 23...26F, Firmware revision (8 ASCII characters, 0000h=not specified)
109 .strModel resb 40 ; 27...46F, Model number (40 ASCII characters, 0000h=not specified)
110 .bBlckSize resb 1 ; 47[0-7]F, Maximum number of sectors that can be transferred
111 ; per interrupt on read and write multiple commands
112 ; (00h=Read/write multiple commands not implemented)
113 resb 1 ; 47[8-15]X
114 resw 1 ; 48R
115 .wCaps resw 1 ; 49FRX, Capabilities
116 resw 1 ; 50R
117 resb 1 ; 51[0-7]X
118 .bPIOTiming resb 1 ; 51[8-15]F, PIO data transfer cycle timing mode
119 resb 1 ; 52[0-7]X
120 .bDMATiming resb 1 ; 52[8-15]F, DMA data transfer cycle timing mode
121 .wFields resw 1 ; 53FVR, Field (next words) validity bits
122
123 ; Words 54-58 are valid only if bit0 is set in .wFields
124 .wCurCyls resw 1 ; 54V, Number of current logical cylinders
125 .wCurHeads resw 1 ; 55V, Number of current logical heads
126 .wCurSPT resw 1 ; 56V, Number of current logical sectors per track
127 .dwCurSCnt resd 1 ; 57...58V, Current capacity in sectors
128
129 ; Words 59-63 are always valid
130 .bBlockSel resb 1 ; 59[0-7]V, Current setting for number of sectors that
131 ; can be transferred per interrupt on R/W multiple command
132 .bBlockFlgs resb 1 ; 59[8-15]VR, bit 0 set if Multiple sector setting is valid
133 .dwLBACnt resd 1 ; 60...61F, Total number of user addressable sectors (LBA mode only)
134 .bSDMASupp resb 1 ; 62[0-7]F, Single word DMA transfer modes supported
135 .bSDMAAct resb 1 ; 62[8-15]V, Single word DMA transfer mode active
136 .bMDMASupp resb 1 ; 63[0-7]F, Multiword DMA transfer modes supported
137 .bMDMAAct resb 1 ; 63[8-15]V, Multiword DMA transfer mode active
138
139 ; Words 64-70 are valid only if bit1 is set in .wFields (ATA2+)
140 .bPIOSupp resb 1 ; 64[0-7]F, Advanced PIO Transfer Modes Supported
141 resb 1 ; 64[8-15]R
142 .wMDMAMinCy resw 1 ; 65F, Minimum Multiword DMA Transfer Cycle Time Per Word
143 .wMDMARecCy resw 1 ; 66F, Manufacturer’s Recommended Multiword DMA Transfer Cycle Time
144 .wPIOMinCy resw 1 ; 67F, Minimum PIO Transfer Cycle Time Without Flow Control
145 .wPIOMinCyF resw 1 ; 68F, Minimum PIO Transfer Cycle Time With IORDY Flow Control
146endstruc
147
148; ATA-2 Word 0, General configuration
149A2_wGenCfg_NONMAG EQU (1<<15) ; Reserved for non-magnetic drives
150A2_wGenCfg_REMOVABLE EQU (1<<7) ; Removable media device
151A2_wGenCfg_FIXED EQU (1<<6) ; Not removable controller and/or device
152
153; ATA-1 Word 49, Capabilities
154A2_wCaps_TIMER EQU (1<<13) ; Standby timer values as specified in this standard are supported
155A2_wCaps_IORDY EQU (1<<11) ; IORDY supported
156A2_wCaps_CANDISIORDY EQU (1<<10) ; IORDY can be disabled
157A2_wCaps_LBA EQU (1<<9) ; LBA supported
158A2_wCaps_DMA EQU (1<<8) ; DMA supported
159
160; ATA-2 Word 53, Fields
161A2_wFields_54to58 EQU (1<<0) ; The fields reported in words 54-58 are valid
162A2_wFields_64to70 EQU (1<<1) ; The fields reported in words 64-70 are valid
163
164; ATA-2 Word 59 high byte, Block mode flags
165A2_bBlockFlgs_VALID EQU (1<<0) ; Multiple sector setting (bBlockSel) is valid
166
167
168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
169
170; ATA-6 Drive Information struct
171; F = Fixed value
172; V = Variable value
173; R = Reserved word
174; X = Vendor specific word
175struc ATA6
176 .wGenCfg resw 1 ; 0F, General configuration bit-significant information
177 resw 1 ; 1X, Obsolete (Number of logical cylinders)
178 resw 1 ; 2V, Specific configuration
179 resw 1 ; 3X, Obsolete (Number of logical heads)
180 resw 1 ; 4X
181 resw 1 ; 5X
182 resw 1 ; 6X, Obsolete (Number of logical sectors per track)
183 resw 2 ; 7...8V, Reserved for assignment by the CompactFlash Association
184 resw 1 ; 9X
185 .strSerial resb 20 ; 10...19F, Serial number (20 ASCII characters, 0000h=not specified)
186 resw 1 ; 20X
187 resw 1 ; 21X
188 resw 1 ; 22X, Obsolete (# of ECC bytes avail on read/write long cmds (0000h=not spec'd))
189 .strFirmW resb 8 ; 23...26F, Firmware revision (8 ASCII characters, 0000h=not specified)
190 .strModel resb 40 ; 27...46F, Model number (40 ASCII characters, 0000h=not specified)
191 .bBlckSize resb 1 ; 47[0-7]F, Maximum number of sectors that can be transferred
192 ; per interrupt on read and write multiple commands
193 ; (00h=Read/write multiple commands not implemented)
194 resb 1 ; 47[8-15]F, 80h
195 resw 1 ; 48R
196 .wCaps resw 1 ; 49FX, Capabilities
197 .wCapsHigh resw 1 ; 50FX, Capabilities 2
198 resw 1 ; 51X, Obsolete (PIO data transfer cycle timing mode)
199 resw 1 ; 52X, Obsolete (DMA data transfer cycle timing mode)
200 .wFields resw 1 ; 53FX, Field (next words) validity bits
201
202 ; Words 54-58 are valid only if bit0 is set in .wFields
203 resw 1 ; 54X, Obsolete (Number of current logical cylinders)
204 resw 1 ; 55X, Obsolete (Number of current logical heads)
205 resw 1 ; 56X, Obsolete (Number of current logical sectors per track)
206 resd 1 ; 57...58X, Obsolete (Current capacity in sectors)
207
208 ; Words 59-63 are always valid
209 .bBlockSel resb 1 ; 59[0-7]V, Current setting for number of sectors that
210 ; can be transferred per interrupt on R/W multiple command
211 .bBlockFlgs resb 1 ; 59[8-15]VR, bit 0 set if Multiple sector setting is valid
212 .dwLBACnt resd 1 ; 60...61F, Total number of user addressable sectors (LBA-28)
213 resb 1 ; 62[0-7]X, Obsolete (Single word DMA transfer modes supported)
214 resb 1 ; 62[8-15]X, Obsolete (Single word DMA transfer mode active)
215 .wMDMA resw 1 ; 63FV, Multiword DMA transfer modes supported and active
216
217 ; Words 64-70 are valid only if bit1 is set in .wFields (ATA2+)
218 .bPIOSupp resb 1 ; 64[0-7]F, Advanced PIO Transfer Modes Supported
219 resb 1 ; 64[8-15]R
220 .wMDMAMinCy resw 1 ; 65F, Minimum Multiword DMA Transfer Cycle Time Per Word
221 .wMDMARecCy resw 1 ; 66F, Manufacturer’s Recommended Multiword DMA Transfer Cycle Time
222 .wPIOMinCy resw 1 ; 67F, Minimum PIO Transfer Cycle Time Without Flow Control
223 .wPIOMinCyF resw 1 ; 68F, Minimum PIO Transfer Cycle Time With IORDY Flow Control
224 resw 71-69 ; 69...70R
225
226 ; Words 71...74 are reserved for IDENTIFY PACKET DEVICE command
227 resw 75-71 ; 71...74R
228
229 .wQueue resw 1 ; 75[0-4]F, Maximum queue depth - 1
230 resw 80-76 ; 76...79R
231
232 .wMajorVer resw 1 ; 80F, Major Version Number
233 .wMinorVer resw 1 ; 81F, Minor Version Number
234 .wSetSup82 resw 1 ; 82F, Command set supported
235 .wSetSup83 resw 1 ; 83F, Command sets supported
236 .wSetSup84 resw 1 ; 84F, Command set / Feature supported extension
237 .wEnFor82 resw 1 ; 85FV, Command set / feature enabled (for word 82)
238 .wEnFor83 resw 1 ; 86FV, Command set / feature enabled (for word 83)
239 .wEnFor84 resw 1 ; 87FV, Command set / feature enabled (for word 84)
240
241 ; Word 88 is valid only if bit2 is set in .wFields (word 53)
242 .wUDMA resw 1 ; 88FV, Ultra DMA Mode support
243
244 .wEraseTime resw 1 ; 89F, Time required for security erase unit completion
245 .wEnhErTime resw 1 ; 90F, Time required for Enhanced security erase completion
246 .wCurPower resw 1 ; 91V, Current advanced power management value
247 .wPWRev resw 1 ; 92V, Master Password Revision Code
248 .wReset resw 1 ; 93FV, Hardware reset result
249 .bCurAcous resb 1 ; 94[0-7]V, Current automatic acoustic management value
250 .bRecAcous resb 1 ; 94[8-15]V, Vendor’s recommended acoustic management value
251 resw 100-95 ; 95...99R
252 .qwLBACnt resb 8 ; 100...103V, Total number of user addressable sectors (LBA48)
253 resw 127-104 ; 104...126R
254 .wRMSN resw 1 ; 127F, Removable Media Status Notification feature set support
255 .wSecurity resw 1 ; 128FV, Security Status
256 resw 159-129 ; 129...158X, Vendor Specific
257 .wVendor resw 1 ; 159X, Vendor Specific - picking one word for use by the Serial Port code
258 .wCFAPower resw 1 ; 160FV, CFA Power Mode 1
259 resw 176-161 ; 161...175R, Reserved for assignment by the CompactFlash Association
260 .strMediaSr resw 206-176 ; 176...205V, Current media serial number
261 resw 255-206 ; 206...254R
262 .bSignature resb 1 ; 255[0-7]X, Signature
263 .bChecksum resb 1 ; 255[8-15]X, Checksum
264endstruc
265
266; ATA-6 Word 0, General configuration
267A6_wGenCfg_REMOVABLE EQU (1<<7) ; Removable media device
268A6_wGenCfg_INCOMPLETE EQU (1<<2) ; Response incomplete
269
270; ATA-6 Word 49, Capabilities
271A6_wCaps_TIMER EQU (1<<13) ; Standby timer values as specified in this standard are supported
272A6_wCaps_IORDY EQU (1<<11) ; IORDY supported
273A6_wCaps_CANDISIORDY EQU (1<<10) ; IORDY can be disabled
274A6_wCaps_LBA EQU (1<<9) ; LBA supported
275A6_wCaps_DMA EQU (1<<8) ; DMA supported
276
277; ATA-6 Word 53, Fields
278A6_wFields_88 EQU (1<<2) ; The fields reported in word 88 are valid
279A6_wFields_64to70 EQU (1<<1) ; The fields reported in words 64-70 are valid
280
281; ATA-6 Word 59 high byte, Block mode flags
282A6_bBlockFlgs_VALID EQU (1<<0) ; Multiple sector setting (bBlockSel) is valid
283
284; ATA-6 Word 63, Multiword DMA Mode
285A6_wMDMA_MODE2_SELECTED EQU (1<<10) ; Multiword DMA mode 2 is selected
286A6_wMDMA_MODE1_SELECTED EQU (1<<9) ; Multiword DMA mode 1 is selected
287A6_wMDMA_MODE0_SELECTED EQU (1<<8) ; Multiword DMA mode 0 is selected
288A6_wMDMA_MODE2_SUPRTD EQU (1<<2) ; Multiword DMA mode 2 and below are supported
289A6_wMDMA_MODE1_SUPRTD EQU (1<<1) ; Multiword DMA mode 1 and below are supported
290A6_wMDMA_MODE0_SUPRTD EQU (1<<0) ; Multiword DMA mode 0 is supported
291
292; ATA-6 Word 80, Major version number
293A6_wMajorVer_ATA6 EQU (1<<6)
294A6_wMajorVer_ATA5 EQU (1<<5)
295A6_wMajorVer_ATA4 EQU (1<<4)
296A6_wMajorVer_ATA3 EQU (1<<3)
297
298; ATA-6 Word 82, Command set supported
299A6_wSetSup82_NOP EQU (1<<14) ; NOP command supported
300A6_wSetSup82_RDBUFF EQU (1<<13) ; READ BUFFER command supported
301A6_wSetSup82_WRBUFF EQU (1<<12) ; WRITE BUFFER command supported
302A6_wSetSup82_PROT_AREA EQU (1<<10) ; Host Protected Area feature set supported
303A6_wSetSup82_DEV_RESET EQU (1<<9) ; DEVICE RESET command supported
304A6_wSetSup82_SERVICE EQU (1<<8) ; SERVICE interrupt supported
305A6_wSetSup82_RELEASE EQU (1<<7) ; Release interrupt supported
306A6_wSetSup82_LOOKAHEAD EQU (1<<6) ; Look-ahead supported
307A6_wSetSup82_WRCACHE EQU (1<<5) ; Write cache supported
308A6_wSetSup82_POWERMAN EQU (1<<3) ; Power Management feature set supported
309A6_wSetSup82_REM_MEDIA EQU (1<<2) ; Removable Media feature set supported
310A6_wSetSup82_SECURITY EQU (1<<1) ; Security Mode feature set supported
311A6_wSetSup82_SMART EQU (1<<0) ; SMART feature set supported
312
313; ATA-6 Word 83, Command sets supported
314A6_wSetSup83_FLUSH_EXT EQU (1<<13) ; FLUSH CACHE EXT command supported
315A6_wSetSup83_FLUSH EQU (1<<12) ; FLUSH CACHE command supported
316A6_wSetSup83_CFG EQU (1<<11) ; Device Configuration Overlay feature set supported
317A6_wSetSup83_LBA48 EQU (1<<10) ; 48-bit LBA feature set supported
318A6_wSetSup83_ACOUSTIC EQU (1<<9) ; Automatic Acoustic Management feature set supported
319A6_wSetSup83_SET_MAX EQU (1<<8) ; SET MAX security extension supported
320A6_wSetSup83_FEATURES EQU (1<<6) ; SET FEATURES subcommand required to spinup after power-up
321A6_wSetSup83_POWERUP EQU (1<<5) ; Power-Up In Standby feature set supported
322A6_wSetSup83_RMSN EQU (1<<4) ; Removable Media Status Notification feature set supported
323A6_wSetSup83_APM EQU (1<<3) ; Advanced Power Management feature set supported
324A6_wSetSup83_CFA EQU (1<<2) ; CFA feature set supported
325A6_wSetSup83_DMAQUEUED EQU (1<<1) ; READ/WRITE DMA QUEUED supported
326A6_wSetSup83_MICROCODE EQU (1<<0) ; DOWNLOAD MICROCODE command supported
327
328; ATA-6 Word 84, Command set/feature supported extension
329A6_wSetSup84_GENLOG EQU (1<<5) ; General Purpose Logging feature set supported
330A6_wSetSup84_MEDIAPASS EQU (1<<3) ; Media Card Pass Through Command feature set supported
331A6_wSetSup84_MEDIASER EQU (1<<2) ; Media serial number supported
332A6_wSetSup84_SMARTTEST EQU (1<<1) ; SMART self-test supported
333A6_wSetSup84_SMARTLOG EQU (1<<0) ; SMART error logging supported
334
335; ATA-6 Word 85, Command set/feature enabled (supported by word 82)
336A6_wEnFor82_NOP EQU (1<<14) ; NOP command enabled
337A6_wEnFor82_RDBUFF EQU (1<<13) ; READ BUFFER command enabled
338A6_wEnFor82_WRBUFF EQU (1<<12) ; WRITE BUFFER command enabled
339A6_wEnFor82_PROT_AREA EQU (1<<10) ; Host Protected Area feature set enabled
340A6_wEnFor82_DEV_RESET EQU (1<<9) ; DEVICE RESET command enabled
341A6_wEnFor82_SERVICE EQU (1<<8) ; SERVICE interrupt enabled
342A6_wEnFor82_RELEASE EQU (1<<7) ; Release interrupt enabled
343A6_wEnFor82_LOOKAHEAD EQU (1<<6) ; Look-ahead enabled
344A6_wEnFor82_WRCACHE EQU (1<<5) ; Write cache enabled
345A6_wEnFor82_POWERMAN EQU (1<<3) ; Power Management feature set enabled
346A6_wEnFor82_REM_MEDIA EQU (1<<2) ; Removable Media feature set enabled
347A6_wEnFor82_SECURITY EQU (1<<1) ; Security Mode feature set enabled
348A6_wEnFor82_SMART EQU (1<<0) ; SMART feature set enabled
349
350; ATA-6 Word 86, Command set/feature enabled (supported by word 83)
351A6_wEnFor83_FLUSH_EXT EQU (1<<13) ; FLUSH CACHE EXT command supported
352A6_wEnFor83_FLUSH EQU (1<<12) ; FLUSH CACHE command supported
353A6_wEnFor83_CFG EQU (1<<11) ; Device Configuration Overlay supported
354A6_wEnFor83_LBA48 EQU (1<<10) ; 48-bit LBA feature set supported
355A6_wEnFor83_ACOUSTIC EQU (1<<9) ; Automatic Acoustic Management feature set enabled
356A6_wEnFor83_SET_MAX EQU (1<<8) ; SET MAX security extension enabled by SET MAX SET PASSWORD
357A6_wEnFor83_FEATURES EQU (1<<6) ; SET FEATURES subcommand required to spinup after power-up
358A6_wEnFor83_POWERUP EQU (1<<5) ; Power-Up In Standby feature set enabled
359A6_wEnFor83_RMSN EQU (1<<4) ; Removable Media Status Notification feature set enabled
360A6_wEnFor83_APM EQU (1<<3) ; Advanced Power Management feature set enabled
361A6_wEnFor83_CFA EQU (1<<2) ; CFA feature set enabled
362A6_wEnFor83_DMAQUEUED EQU (1<<1) ; READ/WRITE DMA QUEUED supported
363A6_wEnFor83_MICROCODE EQU (1<<0) ; DOWNLOAD MICROCODE command supported
364
365; ATA-6 Word 87, Command set/feature default
366A6_wEnFor84_GENLOG EQU (1<<5) ; General Purpose Logging feature set supported
367A6_wEnFor84_MEDIAPASS EQU (1<<3) ; Media Card Pass Through Command feature set enabled
368A6_wEnFor84_MEDIASER EQU (1<<2) ; Media serial number is valid
369A6_wEnFor84_SMARTTEST EQU (1<<1) ; SMART self-test supported
370A6_wEnFor84_SMARTLOG EQU (1<<0) ; SMART error logging supported
371
372; ATA-6 Word 88, Ultra DMA Mode
373A6_wUDMA_MODE5_SELECTED EQU (1<<13) ; Ultra DMA mode 5 is selected
374A6_wUDMA_MODE4_SELECTED EQU (1<<12) ; Ultra DMA mode 4 is selected
375A6_wUDMA_MODE3_SELECTED EQU (1<<11) ; Ultra DMA mode 3 is selected
376A6_wUDMA_MODE2_SELECTED EQU (1<<10) ; Ultra DMA mode 2 is selected
377A6_wUDMA_MODE1_SELECTED EQU (1<<9) ; Ultra DMA mode 1 is selected
378A6_wUDMA_MODE0_SELECTED EQU (1<<8) ; Ultra DMA mode 0 is selected
379A6_wUDMA_MODE5_SUPRTD EQU (1<<5) ; Ultra DMA mode 5 and below are supported
380A6_wUDMA_MODE4_SUPRTD EQU (1<<4) ; Ultra DMA mode 4 and below are supported
381A6_wUDMA_MODE3_SUPRTD EQU (1<<3) ; Ultra DMA mode 3 and below are supported
382A6_wUDMA_MODE2_SUPRTD EQU (1<<2) ; Ultra DMA mode 2 and below are supported
383A6_wUDMA_MODE1_SUPRTD EQU (1<<1) ; Ultra DMA mode 1 and below are supported
384A6_wUDMA_MODE0_SUPRTD EQU (1<<0) ; Ultra DMA mode 0 is supported
385
386; ATA-6 Word 93, Hardware reset result
387A6_wReset_CBLID_BELOW EQU (1<<13) ; Device detected CBLID- above ViH
388A6_wReset_DEV1_PDIAG EQU (1<<11) ; Device 1 asserted PDIAG-
389A6_wReset_DEV0_RESP_D1 EQU (1<<6) ; Device 0 responds when Device 1 is selected
390A6_wReset_DEV0_DASP EQU (1<<5) ; Device 0 detected the assertion of DASP-
391A6_wReset_DEV0_PDIAG EQU (1<<4) ; Device 0 detected the assertion of PDIAG
392A6_wReset_DEV0_PASSED EQU (1<<3) ; Device 0 passed diagnostics
393A6_wReset_MASK_DEV1_DETERMINE EQU ((1<<10)|(1<<9)) ; These bits indicate how Device 1 determined the device number
394A6_wReset_MASK_DEV0_DETERMINE EQU ((1<<2)|(1<<1)) ; These bits indicate how Device 0 determined the device number:
395A6_wReset_RESERVED EQU 00b
396A6_wReset_JUMPER EQU 01b ; a jumper was used
397A6_wReset_CSEL EQU 10b ; the CSEL signal was used
398A6_wReset_UNKNOWN EQU 11b ; some other method was used or the method is unknown
399
400; ATA-6 Word 127, Removable Media Status Notification feature set support
401A6_wRMSN_SUPPORTED EQU (1<<0) ; Removable Media Status Notification feature supported
402
403; ATA-6 Word 128, Security status
404A6_wSecurity_MAX EQU (1<<8) ; Security level 0 = High, 1 = Maximum
405A6_wSecurity_ENH_ERASE EQU (1<<5) ; Enhanced security erase supported
406A6_wSecurity_EXPIRED EQU (1<<4) ; Security count expired
407A6_wSecurity_FROZEN EQU (1<<3) ; Security frozen
408A6_wSecurity_LOCKED EQU (1<<2) ; Security locked
409A6_wSecurity_ENABLED EQU (1<<1) ; Security enabled
410A6_wSecurity_SUPPORTED EQU (1<<0) ; Security supported
411
412; ATA-6 Word 160, CFA Power Mode 1
413A6_wCFAPower_WORDSUPP EQU (1<<15) ; Word 160 supported
414A6_wCFAPower_REQUIRED EQU (1<<13) ; CFA power mode 1 is required for one or more commands implemented by the device
415A6_wCFAPower_DISABLED EQU (1<<12) ; CFA power mode 1 disabled
416A6_wCFAPower_MASK_mA EQU 0FFFh ; Maximum current in mA
417
418
419%endif ; ATA_ID_INC
Note: See TracBrowser for help on using the repository browser.