Switch to full style
General discussions, chit-chat
Post a reply

Info : Whata those ATA registers means

November 29th, 2010, 17:09

Now you can see what some diag software is showing you and why, the people that know how to use ATA shell dont need that info anyway and it's wildly available ( also the proprietary vendor commands - just know where to search ;) , but i won't post them as i will be "eaten alive" by the DR guys )

Conversion
CHS to LBA conversion: LBA = ( C x Hpc + H) x SpH + S –1
LBA to CHS conversion: C = LBA / (HpC x SpH)
H = (LBA / SpH) mod (HpC)
S = (LBA mod( SpH)) + 1
Where: 'C' is the Cylinder Number.
'H' is the Head Number.
'S' is the Sector Count.
'HpC' is the Head count per Cylinder Count.
'SpH' is the Sector count per Head Count (Track).

Error Reg. ( ERR bit being set in the Status Register )
Bit:Meaning
Bit 7: BBK (Bad Block Detected) Set when a Bad Block is detected.
Bit 6: UNC (Uncorrectable Data Error) Set when Uncorrectable Error is encountered.
Bit 5: MC (Media Changed) Set to 0.
Bit 4: IDNF (ID Not Found) Set when Sector ID not found.
Bit 3: MCR (Media Change Request) Set to 0.
Bit 2: ABRT (Aborted Command) Set when Command Aborted due to drive error.
Bit 1: TKONF (Track 0 Not Found) Set when Executive Drive Diagnostic Command. Bit
0: AMNF (Address mark Not Found) Set in case of a general error.

Status Register ( When the contents of this register are read by the host, the
IREQ# bit is cleared )
Bit 7: BSY (Busy) Set when the drive is busy and unable to process any new ATA
commands.
Bit 6: DRDY (Data Ready) Set when the device is ready to accept ATA commands from the host.
Bit 5: DWF (Drive Write Fault) Always set to 0.
Bit 4: DSC (Drive Seek Complete) Set when the drive heads have been positioned over a specific track.
Bit 3: DRQ (Data Request) Set when device is read to transfer a word or byte of data to or from
the host and the device.
Bit 2: CORR (Corrected Data) Always set to 0.
Bit 1: IDX (Index) Always set to 0.
Bit 0: ERR (Error) Set when an error occurred during the previous ATA command.

Class Command Name Command Registers Used
Code FR SC SN CY DH LBA
1 Check Power Mode 98h,E5h D
1 Execute Drive Diagnostics 90h D
1 Erase Sector C0h Y Y Y Y Y
2 Format Track 50h Y Y Y Y
1 Identify Drive ECh D
1 Idle 97h,E3h Y D
1 Idle Immediate 95h,E1h D
1 Initialize Drive Parameters 91h Y Y
1 Read Buffer E4h D
1 Read DMA C8h Y Y Y Y Y
1 Read Multiple C4h Y Y Y Y Y
1 Read Long Sector 22h,23h Y Y Y Y
1 Read Sector(s) 20h,21h Y Y Y Y
1 Read Verify Sector(s) 40h,41h Y Y Y Y Y
1 Recalibrate 1Xh Y
1 Request Sense 03h D
1 Seek 7Xh Y Y Y Y
1 Set Features Efh Y D
1 Set Multiple Mode C6h Y D
1 Set Sleep Mode 99h,E6h D
1 Standby 96h,E2h D
1 Standby Immediate 94h,E0h D
1 Translate Sector 87h Y Y Y Y Y
1 Wear Level F5h Y
2 Write Buffer E8h D
1 Write DMA CAh Y Y Y Y Y
2 Write Long Sector 32h,33h Y Y Y Y
3 Write Multiple C5h Y Y Y Y Y
3 Write Multiple w/o Erase CDh Y Y Y Y Y
2 Write Sector(s) 30h,31h Y Y Y Y Y
2 Write Sector(s) w/o Erase 38h Y Y Y Y Y
3 Write Verify 3Ch Y Y Y Y Y

Re: Info : Whata those ATA registers means

November 29th, 2010, 18:25

None of that is secret
http://www.t13.org/documents/UploadedDo ... A8-ACS.pdf

Re: Info : Whata those ATA registers means

November 29th, 2010, 19:44

Those are not, ppl are just lazy to search, but the proprietary are not so easy to find + service manuals and schematics, but still available publicly.

Re: Info : Whata those ATA registers means

December 1st, 2010, 12:43

Nice info Afrin. Thanks
Post a reply