From: dmp3592@galileo.rtn.ca.boeing.com (Dean M. Phillips)
Newsgroups: comp.unix.bsd
Subject: Re: Endless boot cycle- suggestions?
Summary: Make all the geometries match.
Keywords: IDE boot geometry translation
Date: 26 Aug 92 15:25:49 GMT
Organization: Boeing Commercial Airplane Group, Seattle

This is a correction to and an expansion on my previous article.

Since my original article I have had some conversations with some
local IDE drive wizzards and Maxtor trying to understand what was
going on.  In these conversations I learned that:

1) My Maxtor 7120AT ALWAYS is in some kind of translation mode.

2) The default geometry is jumper selectable between four different
options.

3) The computer can tell the drive to be any one of the available
geometries that it wants (and possibly others) as long as the total
number of sectors comes out about right and the drive will translate
as required.

4) On a DOS machine, the BIOS resets the drive and then sets it to
translate from whatever geometry is in the CMOS.

Upon reading the 386BSD code, I found that after the bootstrap is
loaded, it gets the MSDOS partition table from memory (already read by
the bootstrap process) and uses that to compute the cylinder of its
disklabel.  It then RESETS the drive to its DEFAULT GEOMETRY and
attempts to read its disklabel from the previously computed data. (The
comments in the code say that it is turning off translation.  This is
not the case for a Maxtor 7120AT, and possibly other drives as well).

The result of this is that if the CMOS geometry does not match the
default geometry, the bootstrap will not find the disk label.

To make things work requires the following:

1) The drive geometry in the CMOS must match the default geometry of
the drive.

2) The partitions in the DOS partition table must end on a cylinder
boundary (So that when the bootstrap uses the partition end-head and
end-sector to get the number of sectors per track and number of heads,
it will get the right answers).

3) The disklabel geometry must match the default geometry of the
drive.

All the above hinges on knowing the default geometry of your drive(s).

I suggest that you obtain a data sheet for your drive which gives you
the geometry and jumper settings.  Call your favorite disk drive
repair shop.  Now that I have this information I was able to put both
my old Seagate ST157A and my new Maxtor 7120AT in my system in a
master-slave configuration.

If you can't get the data sheets for your drives, you can proceede as
follows:

1) Get the IDEINFO program from your favorite DOS BBS or ftp site.

2) Make a bootable MSDOS diskette and put IDEINFO.EXE on it.

3) Run setup and tell the CMOS that there are NO hard disks in your
system.  (This prevents the BIOS from telling your hard disk to use a
translation other than the default translation.)

4) Boot off the MSDOS diskette with IDEINFO.EXE and run IDEINFO.EXE

5) IDEINFO.EXE will tell you what the power-on geometry of your drive
is.  Write this info down.

6) Run setup again, use drive type 47 and enter the geometry values
that IDEINFO gives you.  Set the write precompensation and landing
zone values to zero (an IDE drive does not use them).

7) Install 386BSD (and MSDOS if required).

Good luck

Dean
-- 
----------------------------------------------------------------------
#include <standard_disclaimer.h>
Dean M. Phillips                                        (206) 393-9333
Boeing Commercial Airplane Group            dmp3592@galileo.boeing.com
Newsgroups: comp.unix.bsd