Adam Sulmicki adam@cfar.umd.edu writes:
It now boots into GRUB in less than 2 seconds. :) (It's too fast for IDE drive to spin up, so I have to hit reset button after cold start.)
hmm, in rombios.c, can you try increasing ATA_WAIT_COUNT by magnitude or two and see if it helps?
You need to put in the code to spin on the busy bit.
See the ehterboot source for an example.
Except on out of spec hardware that always works, and making certain the busy bit is cleared before using a drive is required for correct operation in all cases.
I think that this code is already there.
It just that this spin has an time-out option, just so that it won't hang for some weird reason. ATA_WAIT_COUNT should increase this timeout.
Still thanks for pointer to etherboot. I'll check it out, it might give me better ideas how to do it :-)
If nothing else your timeout needs to be something like 31-32 seconds long. The maximum specified in the latest ATA specs is either 30 or 31 seconds, plus an additional second as a fudge factor.
Also in there is code that correctly handles > 120GB drives.
Eric