i386/96430: boot2 is unable to load kernel directly

Bruce Evans bde at zeta.org.au
Fri Apr 28 19:50:21 UTC 2006


The following reply was made to PR i386/96430; it has been noted by GNATS.

From: Bruce Evans <bde at zeta.org.au>
To: Yuichiro Goto <y7goto at gmail.com>
Cc: freebsd-gnats-submit at freebsd.org, freebsd-i386 at freebsd.org
Subject: Re: i386/96430: boot2 is unable to load kernel directly
Date: Sat, 29 Apr 2006 05:49:19 +1000 (EST)

 On Thu, 27 Apr 2006, Yuichiro Goto wrote:
 
 >> Description:
 > Loading a kernel directly using boot2 causes the invalid-opcode fault like the
 > following:
 >
 > int=00000006  err=00000000  efl=00010002  eip=c0445a90
 > eax=c0445a90  ebx=0007cd0f  ecx=c0b5e1a7  edx=a030001e
 > esi=c0b5e1a7  edi=c0445a90  ebp=00000002  esp=0009eb84
 > cs=0008  ds=0010  es=0010    fs=0010  gs=0010  ss=0010
 > cs:eip=ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff
 >       ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff
 > ss:esp=69 95 00 00 00 00 00 80-1e 00 30 a0 00 00 00 00
 >       00 00 00 00 00 00 00 00-60 dd 00 00 36 42 00 00
 > BTX halted
 >
 > I tried to load a kernel directly that is a slightly modified
 > version of GENERIC.  ...
 
 >> How-To-Repeat:
 > Directly load a kernel using boot2.
 >> Fix:
 > load() in src/sys/boot/i386/boot2/boot2.c tries to copy kernel segments at a
 > phisical address on memory whose most significant 2 bits are set.  This is
 > because of changes between rev 1.70 and 1.71 of
 > src/sys/boot/i386/boot2/boot2.c.
 
 I reported this to the author of the bug a few months ago.
 
 I use an old 2-stage-only boot loader that is missing this bug, but
 still the GENERIC kernel doesn't load - the load hangs with no message.
 Loading of smaller kernels (size ~= 3MB) with boot2 still works with
 both my old boot loader and the FreeBSD-6.0 boot2 with rev.1.71 backed
 out.
 
 Bruce


More information about the freebsd-i386 mailing list