64bit loader

Peter Wemm peter at wemm.org
Fri Jun 3 00:36:11 PDT 2005


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 at wemm.org; peter at FreeBSD.org; peter at yahoo-inc.com
"All of this is for nothing if we don't go to the stars" - JMS/B5


More information about the freebsd-amd64 mailing list