Page 1 of 1

IDE 1F6 Question

Posted: Sun Nov 25, 2007 11:03 pm
by Banal Miring
In the implementations of reading from an IDE drive that I've read, whatever is outputted to 1F6 always gets or'd with E0(1110 0000), however, the specs that I've seen read like this-

Code: Select all

     +-----+----------+---------------------------------------------------------+
     | BIT | Mnemonic | Description                                             |
     +-----+----------+---------------------------------------------------------+
     |  7  | Reserved | Always one.                                             |
     |  6  | Reserved | Always zero.                                            |
     |  5  | Reserved | Always one.                                             |
     |  4  | DRV      | 0 to select primary drive, 1 to select secondary drive. |
     |  3  | HS3      | MSB of head number.                                     |
     |  2  | HS2      |                                                         |
     |  1  | HS1      |                                                         |
     |  0  | HS0      | LSB of head number.                                     |
     +-----+----------+---------------------------------------------------------+
Going by this spec, it seems that it should be or'd with A0(1010 0000), not E0.

Doing some searching, I think that the significance of turning on the 6 bit has to do with enabling LBA, but I'm not too clear.

Does anyone know why this bit gets turned on, or have a pointer to better documentation?

Thanks

Posted: Mon Nov 26, 2007 2:47 pm
by bewing
You are correct. Once you know that the drive supports LBA (from the results of an IDENTIFY command), you turn on bit 6 to select LBA mode. The spec you are looking at is quite old, and is only for CHS mode.
A much more current spec is available at t13.org
http://www.t13.org/Documents/UploadedDo ... A8-ACS.pdf