Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Oct 1998 01:01:49 +0200 (SAT)
From:      Robert Nordier <rnordier@nordier.com>
To:        shmit@kublai.com
Cc:        rnordier@nordier.com, freebsd-bugs@FreeBSD.ORG
Subject:   BTX/firmware incompatibility problem (was i386/8105)
Message-ID:  <199809302301.BAA00418@ceia.nordier.com>
In-Reply-To: <19980930174254.E20854@kublai.com> from Brian Cully at "Sep 30, 98 05:42:54 pm"

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

Brian Cully wrote:
> On Wed, Sep 30, 1998 at 11:13:09PM +0200, Robert Nordier wrote:
> > However, I'd be interested in getting details of the register dump.
> > Not on account of btxboot (which is unimportant) but because it is
> > test code for BTX, which the new 3-stage bootstrap also uses.
> > (Even just the "eip=" value would be a help in deciding whether this
> > is a btxboot, BTX, or kernel problem.)
> 
> Sure. It'll probably help if I tell you what I did to install it, as well,
> no? :-)
> 
> About an hour ago I CVSupped the system (I made world about four or five
> hours ago, with freshly CVSupped sources).
> 
> natasya:~/src/btxboot-0.8.1% cd /sys/boot/i386/
> natasya:/sys/boot/i386% make clean && make
> [snip]
> natasya:/sys/boot/i386% cd ~/src/btxboot-0.8.1/
> natasya:~/src/btxboot-0.8.1% make clean && make
> natasya:~/src/btxboot-0.8.1% su -m                  
> Password:
> natasya:~/src/btxboot-0.8.1# disklabel -B -b ./btxboot1 -s ./btxboot2 /dev/rda0s1
> 
> Then I rebooted and got this:
> 
> F1 . . . BSD
> 
> Default: F1
> int=0000000e  err=00000005  efl=00030202  eip=00001af0
> eax=00000800  ebx=000003a2  ecx=00000000  edx=00000080
> esi=00001264  edi=00000000  ebp=000003aa  esp=0000039e
> cs=c800  ds=0040  es=9f77  fs=0000  gs=0000  ss=9f77
> cs:eip=3a 54 1b 75 08 80 7c 10-55 75 02 eb 05 5e 1f e9
> ss:esp=64 12 40 00 00 00 00 00-00 00 4b 15 00 00 00 00

Useful, thanks.  This is the sort of firmware-related problem I was
hoping to isolate by encouraging people to try the btxboot code.

For some reason, your hard drive BIOS is checking for specific values
at low memory locations 0x0040:0x127f and 0x0040:0x1274, something it
has no particular business doing.  (Trying to protect itself against
some particularly virulent strain of DOS or Windows, perhaps?)

The new boot code is running in fully-protected mode, and isn't
expecting that some foreign code is going to be doing (inherently
unreliable) heuristic checking based on the contents of its own private
memory space.

> 
> And there you go. Should we stop hijacking Jordan's threads and move
> this somewhere else? :-)

OK, done.  (Sorry, Jordan. :-)

You could really file a separate pr for this (since the forthcoming
/sys/boot/i386/* code isn't going to work either for this firmware),
though I'll be taking a look at it anyway.

--
Robert Nordier

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message


home | help

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