Re: CPUTYPE?=athlon-xp breaks loader (was Re: instant reboot when trying to load recent RELENG_5 kernel)

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Mon, 1 Nov 2004 17:52:34 -0500
On Sunday 31 October 2004 09:28 am, Deng XueFeng wrote:
> > On up-to-date RELENG_5_3, compiling the loader with CPUTYPE?=athlon-xp
> > results in an instant reboot when the loader attempts to load a kernel.
> > As the loader will preload the default kernel before presenting the boot
> > prompt, there is a reboot before you even get to the boot prompt...  The
> > end result is an unworkable install.  I do not see this issue on my
> > Pentium III and Pentium IV systems (using "p3" and "p4" for CPUTYPE,
> > respectively), although there is a similar problem reported on a Pentium
> > M (have not verified CPUTYPE is being used, however).
> >
> > I first noticed this issue on October 15th.  My previous build on October
> > 12th worked fine.  At the time I was tracking RELENG_5, but prior to that
> > I was tracking HEAD.
> >
> > If other folks with Athlon XPs (or Pentium Ms) could give this a shot
> > that would be great.  It would be good to know if it's a real problem or
> > just my system.
> >
> > Thanks,
> > Jon
>
> seems like:  (I use DV get something, but not clear,  then i found the
> message in dfbsd news, so put it here)
>
> BTX loader 1.00 BTX version is 1.01
> Console: internal video/keyboard
>
> int=0000000d  err=00000000  efl=00030206  eip=0000432e
> eax=00008001  ebx=00000700  ecx=00000000  edx=0000009f
> esi=00000b34  edi=00000008  ebp=00000000  esp=000003de
> cs=f000  ds=3ae1  es=3ac4    fs=0000  gs=0000  ss=9e3d
> cs:eip=2e 0f 01 16 48 44 0f 20-c0 0c 01 0f 22 c0 b8 30
>        00 8e c0 0f 20 c0 24 fe-0f 22 c0 eb 00 66 58 c3
> ss:esp=01 80 00 00 39 42 08 00-00 00 34 0b 00 00 00 00
>        00 00 04 04 00 00 00 07-00 00 9f 00 00 00 00 00
> BTX halted

00000000  2E0F01164844      lgdt [cs:0x4448]
00000006  0F20C0            mov eax,cr0
00000009  0C01              or al,0x1
0000000B  0F22C0            mov cr0,eax
0000000E  B83000            mov ax,0x30
00000011  8EC0              mov es,ax
00000013  0F20C0            mov eax,cr0
00000016  24FE              and al,0xfe
00000018  0F22C0            mov cr0,eax
0000001B  EB00              jmp short 0x1d
0000001D  6658              pop eax
0000001F  C3                ret

Your BIOS writer needs to be beaten with a blunt instrument.  They are trying 
to enter protected mode themselves and not handling the fact that they can be 
called from vm86 mode.  There's not much FreeBSD can do about narrow-minded, 
kludgey BIOS code.

-- 
John Baldwin <jhb_at_FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org
Received on Mon Nov 01 2004 - 21:18:25 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:20 UTC