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>