Why Doesn't ATA IDENTIFY DEVICE Command Cause an Interrupt?

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
Geometrian
Member
Member
Posts: 77
Joined: Tue Nov 20, 2012 4:45 pm
Contact:

Why Doesn't ATA IDENTIFY DEVICE Command Cause an Interrupt?

Post by Geometrian »

Based on the ATA specification here, the IDENTIFY DEVICE Command should use the PIO-data-in protocol (see section §8.12 pg. 77). However, when I try to use this (i.e., select device, write head and command registers, wait for interrupt), it never happens.

By contrast, the READ SECTOR(S) Command also uses the PIO-data-in protocol (see section §8.27 pg. 138). Using a very similar codepath, (select device, write head and command registers, wait for interrupt), it works fine.

Everything I've seen (e.g. on the Wiki) suggests a different procedure. Is this version of the specification just outdated/wrong?
Post Reply