"Preston L. Bannister" <[EMAIL PROTECTED]> writes: > From: Eric W. Biederman > > I've just done some investigating, possibly duplicating work, > > and dug into the IDE spinup issue. My conclusion, the Linux > > kernel is buggy. > > To be fair - the Linux kernel doesn't usually have to handle > IDE spin up on boot, as this occurs during BIOS initialization.
Yes, but it shouldn't touch the drive while the busy bit is set. And I belive the only way you can miss a drive is touching it while the busy bit is set. > > I do wonder how well Linux handles the case where a drive > is configured to spin-down after some time. I suspect not > at all well :). I think Linux does o.k. if it knows the drive is there. > > IDE spinup is trivial. From my testing all you have to do > > is wait until the ide busy bit is clear, and then send > > commands. IDE drives do all of the hard work for you. > > Cool - this matches up with my (admitted faint) memory :). > > > > The tricky part with IDE is to get a reliable drive detection > > routine, as this was not an initial design requirement. > > > > I believe I have accomplished that as well. What I do. After the > > busy bit is clear send the IDE channel a software reset. Then I read > > the signature bytes from each drive, and if the signature is correct > > I have found an IDE drive. I confirm this by read/writing some > > registers and veirfying the contents stick. This will require wider > > testing to confirm it really is reliable. > > > > After you know where you have drives running > > IDENTIFY_DEVICE/IDENTIFY_PACKET_DEVICE where appropriate is still > > needed to get the drive into a usable state. But having confirmed > > already that the drive exists this is much easier. > > > > Anyway after I do a little more code cleanup I will check this code > > into the LinuxBIOS tree. > > > > What I do know. My code handles IDE drive spinup when the kernel > > fails, and the kernel doesn't have any trouble after my code has run. > > You (or someone) might want to submit this code to Linux. After a little more testing I just might. One small step at a time. Eric
