ATA Driver question
ATA Driver question
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"?
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
| BSY | RDY | X | X | DRQ | X | X | X |
BSY = Busy
RDY = Ready
DRQ = Data can be transferred
X = Unused, Invalid
Website: https://joscor.com
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
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