64bit loader

Scott Long scottl at samsco.org
Thu Jun 2 15:46:21 PDT 2005


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


More information about the freebsd-amd64 mailing list