ATA Driver question

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
User avatar
crbenesch
Posts: 13
Joined: Wed May 28, 2008 9:23 am
Location: Maricopa, AZ USA
Contact:

ATA Driver question

Post by crbenesch »

When initializing an ATA device and issuing the identify command, what does the status bit #4 mean, all I can find is that it means "Overlapped Mode Service Request"?
~~~~~~~~~~~~~~~~~~~~~
Chris Benesch
CRIBIX
http://www.maricopacomputer.com/cribix/
User avatar
01000101
Member
Member
Posts: 1599
Joined: Fri Jun 22, 2007 12:47 pm
Contact:

Post by 01000101 »

after using the IDENTIFY Command, the Status register is read as this:

| BSY | RDY | X | X | DRQ | X | X | X |

BSY = Busy
RDY = Ready
DRQ = Data can be transferred
X = Unused, Invalid
User avatar
bewing
Member
Member
Posts: 1401
Joined: Wed Feb 07, 2007 1:45 pm
Location: Eugene, OR, US

Post by bewing »

Status Bit 4 used to mean "Drive Seek Complete". It was another "BSY" style bit that you could test. However, it has been deprecated and REUSED for a different purpose -- the overlapped mode Service request, as you found. Therefore, you should NEVER test it, unless you are using overlapped mode (good luck if you decide to try) and you know the drive supports overlapped mode.

But you should never ever test it during the IDENTIFY initialization stage.

One piece of info from 01000101 is wrong. Bit 0 (value=1) is the ERR bit, and is extremely valid -- testing that bit is the first step of how you check if the drive is not PATA.

You might want to check the wiki -- I put some info there.
http://www.osdev.org/wiki/ATA_PIO_Mode
Post Reply