Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 May 1996 15:11:22 -0700
From:      erich@uruk.org
To:        Terry Lambert <terry@lambert.org>
Cc:        dutchman@spase.nl, freebsd-hackers@freebsd.org
Subject:   Re: Glitch in install procedure. 
Message-ID:  <199605212211.PAA14120@uruk.org>
In-Reply-To: Your message of "Tue, 21 May 1996 14:20:05 PDT." <199605212120.OAA02080@phaeton.artisoft.com> 

next in thread | previous in thread | raw e-mail | index | archive | help

I've done a LOT of work with bootloaders recently (I'm writing a
generic replacement for the *BSD, Linux, and Mach bootloaders).

Admittedly, I've come into this discussion late, but...

Terry Lambert <terry@lambert.org> writes:

> > >> I just installed FreeBSD as a secondary OS on a machine. I dumped it
> > >> into the upper 300 Mb of a 810 Mb disk. Funny thing is that neither
> > >> the installation procedure, nor booteasy issued a warning that it
> > >> would not be possible to actually boot from the partition, as it is
> > >> beyond the reach of the BIOS.
> > >
> > > That's because it couldn't ask BIOS to tell it what was good.
> > 
> > No, but it could issue a warning.  Kees didn't ask for it to refuse to
> > install.
> 
> 
> Question: in order to warn you if absolute sector X is past cylinder
> 1024, it needs to:
> 
> 	X%(H*S)		Remainder is H/S value
> 	X/(H*S)		Integer value is cylinder
> 
> 
> So if it doesn't know the C/H/S geometry (sure, we can guess that
> the BIOS geometry is the Adpatec geometry, but we need to be
> prepared when it isn't), how can we say "cylinder past 1024"?
> 
> BSD drivers operate on absolute sectors (and *only* on absolute
> sectors).  BIOS drivers operate on C/H/S values, thet the INT 13
> interface translates into controller C/H/S values -- or absolute
> sectors.  The controller that uses controller C/H/S values translates
> them into -- absolute sectors.
> 
> The only way to know the BIOS C/H/S values for sure is to ask the
> BIOS.

Maybe I'm missing something, but:

  1) FreeBSD already gets the BIOS geometry of hard disks from it's
     normal bootloader.

  2) Can't you just make a "BIOS query" hunk of patch code, copy it
     down into the first 1MB of RAM, and run it to produce your
     BIOS geometry ?


BTW:  I'm looking for ways to safely add LBA (much greater than 8GB
      limit) support to my bootloader.  It currently is not dependent
      on particular BIOS geometries, just the limit of the maximum
      addressable area.

--
  Erich Stefan Boleyn                 \_ E-mail (preferred):  <erich@uruk.org>
Mad Genius wanna-be, CyberMuffin        \__      (finger me for other stats)
Web:  http://www.uruk.org/~erich/     Motto: "I'll live forever or die trying"
  This is my home system, so I'm speaking only for myself, not for Intel.



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