RE: Kernel newbie finds "infelicity", if not bug, in IDE[-PROBE]. C ?

Guest section DW (dwguest@win.tue.nl)
Tue, 20 Apr 1999 22:19:24 +0200 (MET DST)


From: BROWN Nick <Nick.BROWN@coe.fr>

>That "probe_cmos_for_drives()" fragment is one of the few
>surviving bits from Linus's original hd.c driver.
>
>Nowadays (in 2.3.xx) we could/should just trash it.

Well, either that, or fix the code in setup.S which initialises it by
copying the BIOS drive parameter tables that are lying around in the INT
41h/46h pseudo-vectors, which is what seems to be causing the problem in
this case; it's the kind of thing that could easily get forgotten by a BIOS
maker. I can see two ways:

- call INT 13h AH=8 and use the resulting ES:DI pointer as the FDP table.
- call INT 13h AH=8 and fill in head, cylinders, sectors, and the control
byte (just the "head > 8" flag) by hand.

No, nothing is forgotten by the BIOS maker.
And calling INT 13h AH=8 does not necessarily give you IDE information.

There is no BIOS bug. There is just the matter of disk numbering,
and the Linux setup guesses wrong. If there are SCSI disks then
sometimes these are first, or sometimes the IDE disks are first
and sometimes the user can choose in the setup which one he wants
to have first; sometimes this is correlated with the disk you boot
from, and sometimes it is not.

More and more people will hit this since it is no longer uncommon
to have both SCSI and IDE disks.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/