Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Aug 1995 04:16:45 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        bde@zeta.org.au, terry@cs.weber.edu
Cc:        freebsd-hackers@freebsd.org, imb@scgt.oz.au, msmith@atrad.adelaide.edu.au, roberto@keltia.frmug.fr.net
Subject:   Re: Install issues (was: State of the union speech
Message-ID:  <199508231816.EAA31052@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>> >The sparing doesn't actually go off unless you also disable translation.
>> 
>> Yes it does.  Of course you have to add 1 to the number of sectors in
>> the BIOS geometry and in disk labels to use the extra sectors.

>Think about this for a second.  The BSD driver uses "LBA" -- or what the
>rest of the world has called absolute sector addressing before the DOS
>weenies started to pollute the world with their own vocabulary.

Nope.  The driver uses c/h/s addressing to talk to the drive.  This is
the only mode that works for old drives.  After I fixed translation in
the driver two years ago, I used translated mode without sparing for a
year before dumping my ESDI drives.  I'm finding the problem hard to
debug with the controller in the junkbox as no drives :-).

>Basically, that means that as I linearly traverse the drive space, every
>36th sector is just... not there.

That would mean that translation didn't work.  I used a simple translation
that didn't change the sector numbers.  On a drive with 35 sectors/track,
in sector sparing mode the sectors are numbered 0 to 34 with sector 0 spare.
In normal mode they are numbered 1 to 35; then they are all accessible
and there are no gaps.

>The smart driver has to use geometry itself to translate logical absolute
>sectors to physical absolute sectors -- skipping the missing "36th" sector
>for each set of sectors.

>This  is more information that a driver really want to have to know, and
>it may actually be impossible to provide.

I just learned from other mail (too much mail today %-) how to read the
WD1007 jumpers.  I don't want the driver to handle stuff like this for
obsolete drives.

>> I think all the BSDs used the disklabel values until I "improved" the
>> FreeBSD driver in 2.0.5.  This is what the disklabel was for - for
>> specifying the final values to be used in case the hardware or BIOS
>> values are unavailable or wrong.

>The hardware values are wrong, and no matter what disklabel values you

They can be fixed up if the jumper settings are known.

>specify, they'll be wrong too, since as soon as I try to read the sector
>at offset 35 (option base 0) using the BSD driver, I'm going to get an
>error unless the driver (not the controller) translates this into a
>request for the physical sector at offset 36 (option base 0) and reduces
>the overall apparent drive size by 1/36th.

Nope, using 35 worked in 2.0, at least if the translation mode jumper was
right.  The driver skips the spare sectors because it doesn't even know
about them.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199508231816.EAA31052>