Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Oct 2006 15:39:22 +0400
From:      Ruslan Ermilov <ru@freebsd.org>
To:        Brooks Davis <brooks@one-eyed-alien.net>, Stefan Bethke <stb@lassitu.de>,  freebsd-stable@freebsd.org
Cc:        Bruce Evans <bde@freebsd.org>, John Baldwin <jhb@freebsd.org>
Subject:   Re: Still possible to directly boot without loader?
Message-ID:  <20061026113922.GA932@rambler-co.ru>
In-Reply-To: <20060911180915.GB33304@lor.one-eyed-alien.net>
References:  <3A8131D4-881E-4873-A682-543A1A88C063@lassitu.de> <20060911180915.GB33304@lor.one-eyed-alien.net>

next in thread | previous in thread | raw e-mail | index | archive | help

--9jxsPFA5p3P2qPhR
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

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 =
=20
> > of using loader(8)), but I either get a hang before the kernel prints =
=20
> > anything, or a BTX halted.  Is this still supposed to work in 6-=20
> > stable, or has it finally disappeared?
>=20
> You may be able to get this to work, but it is unsupported.
>=20
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).
:=20
: Submitted by:   Sergey Lyubka devnull at uptsoft dot com
: MFC after:      1 month


Cheers,
--=20
Ruslan Ermilov
ru@FreeBSD.org
FreeBSD committer

--9jxsPFA5p3P2qPhR
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (FreeBSD)

iD8DBQFFQJ5qqRfpzJluFF4RAjhsAJ9AKabIAUz5QE35xUVvuDYqo2V2QgCcCZLg
YHHBABckMzgEJesKL9NS10w=
=g8fK
-----END PGP SIGNATURE-----

--9jxsPFA5p3P2qPhR--



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