BTX problems

John Baldwin jhb at FreeBSD.org
Tue Aug 16 17:50:16 GMT 2005


On Saturday 13 August 2005 06:12 pm, Kenneth D. Merry wrote:
> 
> I just updated a machine from -current as of late March to -current as of
> last night, and I'm having trouble booting it.
> 
> It's a dual 1GHz Pentium III box, Supermicro 370DE6 motherboard.
> (Serverworks chipset.)  It is booting off of an onboard Adaptec 7899.
> 
> When I try to boot it, I get some BTX errors and BTX halts:
> 
> http://people.freebsd.org/~ken/btx_halted.20050813/IMG_4943.JPG
> http://people.freebsd.org/~ken/btx_halted.20050813/IMG_4944.JPG
> 
> (Same information, the first one was taken with flash and is a little more
> washed out, the second one is taken without flash and is therefore a tad 
> more blurry.)
> 
> The loader from March works fine, but the new one fails.  It's 100%
> repeatable.
> 
> Anyone have any ideas what's going on?

int=00000005  err=00000000  efl=00010a17  eip=36f63583
eax=00032174  ebx=0384c000  ecx=0005c360  edx=0002e7e6
esi=32034048  edi=00000022  ebp=000384c0  esp=ca083384
cs=002b  ds=0033  es=0033    fs=0033  gs=0033  ss=0033
cs:eip=62 63 2f 6c 6f 63 61 6c-65 2f 6c 6d 6f 6e 65 74
       61 72 79 2e 63 2c 76 20-31 2e 31 32 2e 32 2e 32
ss:esp=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
BTX halted

Well, your stack is way off in the weeds and so is your instruction pointer, 
so I'm not sure what else you can do there.  It's executing a string, so 
little surprise that it eventually faulted:


> echo " 62 63 2f 6c 6f 63 61 6c-65 2f 6c 6d 6f 6e 65 74 61 72 79 2e 63 2c 76 
20-31 2e 31 32 2e 32 2e 32" | tr '-' ' ' | sed -e 's/ / 0x/g' | dh | hd

00000000  62 63 2f 6c 6f 63 61 6c  65 2f 6c 6d 6f 6e 65 74  |bc/locale/lmonet|
00000010  61 72 79 2e 63 2c 76 20  31 2e 31 32 2e 32 2e 32  |ary.c,v 1.12.2.2|
00000020

There haven't been a whole lot of changes.  My guess would be the recently 
added smbios support.  You can probably just comment out the call to 
smbios_detect() in sys/boot/i386/loader/main.c as a simple test for that.  It 
could also possibly be the multiple console support in which case it would be 
easiest to just step your sys/boot tree back using CVS.  The good news is 
that sys/boot is largely self-contained so you can step it back while keeping 
the rest of the tree up to date for testing purposes at least.

-- 
John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org


More information about the freebsd-current mailing list