From owner-freebsd-hackers Wed Aug 23 11:18:02 1995 Return-Path: hackers-owner Received: (from majordom@localhost) by freefall.FreeBSD.org (8.6.11/8.6.6) id LAA16430 for hackers-outgoing; Wed, 23 Aug 1995 11:18:02 -0700 Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.34]) by freefall.FreeBSD.org (8.6.11/8.6.6) with ESMTP id LAA16423 for ; Wed, 23 Aug 1995 11:17:55 -0700 Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.9/8.6.9) id EAA31052; Thu, 24 Aug 1995 04:16:45 +1000 Date: Thu, 24 Aug 1995 04:16:45 +1000 From: Bruce Evans Message-Id: <199508231816.EAA31052@godzilla.zeta.org.au> To: bde@zeta.org.au, terry@cs.weber.edu Subject: Re: Install issues (was: State of the union speech Cc: freebsd-hackers@freebsd.org, imb@scgt.oz.au, msmith@atrad.adelaide.edu.au, roberto@keltia.frmug.fr.net Sender: hackers-owner@freebsd.org Precedence: bulk >> >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