Re: patch-2.1.117 adds bad ide_xlate_1024()

Andre M. Hedrick (hedrick@astro.dyer.vanderbilt.edu)
Sat, 22 Aug 1998 22:24:30 -0500 (CDT)


> The update was supposed to only affect LARGE drives that were
> not otherwise accounted for by a translation scheme, an extremely
> common case (any time a new drive is added to a system).
>
> But the update was missing one line, that should fix most/all complaints
> (update attached).
> unsigned int heads = q->end_head + 1;
> - if (heads == 32 || heads == 64 || heads == 128 || heads == 255) {
> + if (heads == 16 || heads == 32 || heads == 64 || heads == 128
> + || heads == 255) {
>
> Hmm. This will diminish the number of complaining people somewhat
> (maybe it will halve that number, but it will also cause grief to
> people that were happy so far), but still you do not explain
> *why* you want to use translation.

Well here is my best explaination ::

Since there are still folks that run multi-os-booting with Linux
(ie MicroSoft) which are handi-capped and still require an LBA translation
or use disk overlay to see past 540/528 Meg, Linux follows these
guide lines for compatiblity. I believe that this may only be required
on "hda" due to the MBR; however, many of the new mainboards with an
AMI Bios allow for booting any disk attached to the onboard chipset.

> The new code (with `heads == 16') extends this heuristic to not necessarily
> translated geometries, and I can see no reason why to test for 16 and not
> for example for 15, which is also a number one finds very often.

I agree that (heads == 15) should be tested also, along with (heads == 240).
The "240" case is for the "Pheinox Bios Mainboard", aka Micron or Gateway
OEM systems. This is a conclusion based on imperical tests with machines
from both venders.

Cheers,
Andre

-
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.altern.org/andrebalsa/doc/lkml-faq.html