i386/96430: boot2 is unable to load kernel directly
Yuichiro Goto
y7goto at gmail.com
Thu Apr 27 19:30:14 UTC 2006
>Number: 96430
>Category: i386
>Synopsis: boot2 is unable to load kernel directly
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-i386
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Thu Apr 27 19:30:12 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator: Yuichiro Goto
>Release: FreeBSD 6.1-RC1
>Organization:
>Environment:
FreeBSD cobalt.my.domain 6.1-RC FreeBSD 6.1-RC #0: Wed Apr 26 10:38:08 JST 2006 root at cobalt.my.domain:/usr/obj/usr/src/sys/GENERIC i386
>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. The following 2 lines are added to
GENERIC:
makeoptions CONF_CFLAGS=-DROOTDEVNAME=\"ufs:/dev/ad0s2a\"
makeoptions NO_MODULES=yes
>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.
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-i386
mailing list