IDE knowledge anyone?

Oliver Lehmann lehmann at
Wed Dec 30 10:17:02 CST 2015


detatching the power cord of the disk from my PC while
running FreeBSD and reattaching it also brings up error
code 4 on the next access. This does not happen with
other drives. So it must be some sort of initialisation
the OS or BIOS does which readies up the drive.

Oliver Lehmann <lehmann at> wrote:

> OK, I just got my Logic Analysator and traced the
> communication on my PC while forcing it to do PIO
> instead of DMA.
> I then changed my AVR code to do the exact same
> commands and nearly the same timings and... nothing
> changed - the drive still responds with error code
> 0x04 after the read sector 0x20 command is issued.
> On the PC:
> I noticed a time frame of 115,230ns between the
> 0x20 Command and the first alternate status register
> read. during that time, INTRQ goes high so the drive
> "is done" and wants the host to interact with it
> again. IORDY is the whole time high from the host.
> The status read is 0x58 on the PC.
> On the AVR:
> IORDY is the whole time low (it is not connected),
> INTRQ stays low the whole time, and the first status
> read back is 0xD0 for a long time and then it goes to
> 0xD1 and then 0x59.
> Things I plan to try next:
> - power down the drive on the pc, power it up and then
>   try to access sector 1 again and see what happens.
>   Maybe some magic "initialization" is done on bootup
>   what I don't do.
> - make IORDY high on my AVR too

More information about the cctalk mailing list