Messages in this thread | | | From | BROWN Nick <> | Subject | RE: Kernel newbie finds "infelicity", if not bug, in IDE[-PROBE]. C ? | Date | Wed, 21 Apr 1999 14:09:57 +0200 |
| |
First a couple of corrections to my posts from yesterday; there will undoubtedly be gazillions more; thanks to Mark and Andries for this learning experience !
>>(NB) - call INT 13h AH=8 and use the resulting ES:DI pointer as the FDP table. It appears that this is a Phoenix extension, so I dropped it from my patch.
>>(NB)- call INT 13h AH=8 and fill in head, cylinders, sectors, and the control >>(NB) byte (just the "head > 8" flag) by hand. If INITSEG space is short, it ought to be possible to squeeze more drive info in there. We really only need cyls/head/sectors, 4 bytes per drive - the ctl byte seems to be more or less irrelevant since the only flag likely to be non-zero is bit 3, "heads > 8", which we can derive if we ever need it. So we could fit 8 drives into the 32 bytes currently used for the FDP table copies.
<quote from other thread "Wierd IDE configuration"> >> (aeb)It is well documented how to avoid having problems. >> (aeb)(For example, boot with hdc=c,h,s, or give fdisk an explicit geometry.) </quote from other thread "Wierd IDE configuration"> One thing I'm quite certain of, is that Joe Public is not about to put Linux on his machine if he needs to get CHS values right in the boot command line. We appear to have two categories of people who are likely to hit this problem: - anyone with IDE drives, SCSI drives, and a SCSI BIOS - anyone with hard drives hda and hdc; for example, if hdb is a CD. That's a small, but not trivial, percentage of the user population.
>(aeb)And calling INT 13h AH=8 does not necessarily give you IDE information. It does, however, give us all the disks which the BIOS knows about, which I presume ought to include the IDE drives, plus any SCSI drives which the BIOS can handle.
I suppose we then hit the question of when the IDE/SCSI distinction should be made. I wonder if there's enough information to do this around at setup.S time; I suspect it will involve the IDE driver asking the BIOS and *somehow* reconciling the BIOS drive list with the do_identify()-type data.
A more fundamental question, perhaps: why do we need BIOS-translated geometry at all ? And if we need it for IDE disks, then can someone explain whether we need it for those SCSI disks which the BIOS can't see - and if so, how is it calculated for them ?
<nice-things-about-M$> A neat feature of the Windows NT disk model that there are _only_ SCSI controllers; an IDE controller is just another (2-port) SCSI bus. I don't know off-hand if this means that NT can't support XT-style disk controllers... </nice-things-about-M$>
<nasty-thought> If I were in the business of rigging demos to make Linux look bad, I would certainly be making sure the Linux box had lots of IDE drives, preferably partitioned by DOS or while they were hd0/hd1. And I'd add a SCSI card with a BIOS for good measure. (I imaging the SCSI/IDE conflicts can be minimised by disabling the BIOS on cards like the 2940, if you don't need SCSI boot.) </nasty-thought>
--------------------------------------------------------------- |\ | o _ |/ Life's like a jigsaw | \| | |_ |\ You get the straight bits But there's something missing in the middle
Nick Brown, Strasbourg, France (Nick(dot)Brown(at)coe(dot)fr) ---------------------------------------------------------------
- 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/
| |