Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 Jun 2005 00:36:00 -0700
From:      Peter Wemm <peter@wemm.org>
To:        Scott Long <scottl@samsco.org>
Cc:        Michael Reifenberger <mike@Reifenberger.com>, freebsd-amd64@freebsd.org
Subject:   Re: 64bit loader
Message-ID:  <200506030036.01929.peter@wemm.org>
In-Reply-To: <429F8BC4.7010900@samsco.org>
References:  <20050531133608.J87922@fw.reifenberger.com> <200506011009.48460.peter@wemm.org> <429F8BC4.7010900@samsco.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 02 June 2005 03:44 pm, Scott Long wrote:
> Peter Wemm wrote:
> > On Tuesday 31 May 2005 01:56 pm, John Baldwin wrote:
> >>On Tuesday 31 May 2005 11:06 am, Michael Reifenberger wrote:
> >>>On Tue, 31 May 2005, David O'Brien wrote:
> >>>>Ha!!  We can only have 1 sector worth of code in boot0.  At this
> >>>>point we only have a few bytes of free code space.  No where near
> >>>>enough to do the long mode switch.
> >>>
> >>>Sorry. I didnt meant boot0 but btx. I do know that boot0 is too
> >>>small. But btx is already switching to protected mode so it should
> >>>be possible to switch to 64bit mode too.
> >>
> >>Note that the loader uses the BIOS (via virtual 8086 mode) to do
> >> all the disk I/O, etc.  Since long mode doesn't support vm86 mode,
> >> you'd end up with a loader that couldn't do any I/O to load the
> >> kernel, etc. unless you started including device drivers for all
> >> the different storage and networking hardware, etc.  A 64-bit
> >> loader really isn't feasible unless your 64-bit machine includes
> >> firmware that you can use from 64-bit mode like EFI on ia64 or OFW
> >> on sparc. You probably want to stick with a 32-bit loader on amd64
> >> for now.
> >
> > Yes, there are a lot of good reasons to do it the way it is done,
> > but this is the killer reason.  We simply cannot do vm86 or bios
> > calls from a 64 bit loader, period.
> >
> > Other "good" reasons, besides the above:
> > * We don't need to maintain a seperate loader code base
> > * We can load test kernels with an existing loader on a
> > FreeBSD/i386 system (and run from a ramdisk or miniroot)
> > * We would need to maintain 32 bit code to do bios calls anyway,
> > even if we did switch between 32 bit and 64 bit mode on the fly. 
> > If we have a complete 32 bit BTX environment, we get massive
> > complexity for little benefit.
>
> I'm trying to come up with a good joke about writing OFW-style
> drivers in 4th, but I'm having a hard time not cracking up too hard
> while I type =-D

Actually, we could embed a 64 bit linux kernel in there and use their 
drivers in order to chain load the freebsd kernel..  That would solve 
the bios problem. :-)
-- 
Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com
"All of this is for nothing if we don't go to the stars" - JMS/B5



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