Page 1 of 1

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

Posted: Tue Feb 24, 2015 12:20 am
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?