Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 02 Jun 2005 16:44:20 -0600
From:      Scott Long <scottl@samsco.org>
To:        Peter Wemm <peter@wemm.org>
Cc:        Michael Reifenberger <mike@Reifenberger.com>, freebsd-amd64@freebsd.org
Subject:   Re: 64bit loader
Message-ID:  <429F8BC4.7010900@samsco.org>
In-Reply-To: <200506011009.48460.peter@wemm.org>
References:  <20050531133608.J87922@fw.reifenberger.com>	<20050531165558.L88820@fw.reifenberger.com>	<200505311656.50288.jhb@FreeBSD.org> <200506011009.48460.peter@wemm.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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

Scott



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