On Mon, Sep 11, 2006 at 01:09:15PM -0500, Brooks Davis wrote:
> On Sun, Sep 10, 2006 at 09:10:26PM +0200, Stefan Bethke wrote:
> > I just tried to load my standard kernel from the boot blocks (instead  
> > of using loader(8)), but I either get a hang before the kernel prints  
> > anything, or a BTX halted.  Is this still supposed to work in 6- 
> > stable, or has it finally disappeared?
> 
> You may be able to get this to work, but it is unsupported.
> 
I've been investigating this today.  Here's what I've found:

1)  You need hints statically compiled into your kernel.
    (This has been a long time requirement.)

2)  You can only do it on i386, because boot2 only knows
    about ELF32, so attempts to load ELF64 amd64 kernels
    will fail.  (loader(8) knows about both ELF32/64.)

3)  It's currently broken even on i386; backing out
    rev. 1.71 of boot2.c by jhb@ fixes this for me.

: revision 1.71
: date: 2004/09/18 02:07:00;  author: jhb;  state: Exp;  lines: +3 -3
: A long, long time ago in a CVS branch far away (specifically, HEAD prior
: to 4.0 and RELENG_3), the BTX mini-kernel used paging rather than flat
: mode and clients were limited to a virtual address space of 16 megabytes.
: Because of this limitation, boot2 silently masked all physical addresses
: in any binaries it loaded so that they were always loaded into the first
: 16 Meg.  Since BTX no longer has this limitation (and hasn't for a long
: time), remove the masking from boot2.  This allows boot2 to load kernels
: larger than about 12 to 14 meg (12 for non-PAE, 14 for PAE).
: 
: Submitted by:   Sergey Lyubka devnull at uptsoft dot com
: MFC after:      1 month


Cheers,
-- 
Ruslan Ermilov
[EMAIL PROTECTED]
FreeBSD committer

Attachment: pgprDIQrizNwX.pgp
Description: PGP signature

Reply via email to