Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Sep 2003 16:04:19 -0400 (EDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Dan Strick <strick@covad.net>
Cc:        freebsd-hardware@freebsd.org
Subject:   RE: bad BIOS confuses boot0
Message-ID:  <XFMail.20030929160419.jhb@FreeBSD.org>
In-Reply-To: <200309270624.h8R6OBjS000841@ice.nodomain>

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

On 27-Sep-2003 Dan Strick wrote:
> The AWARD BIOS on my Gigabyte 8KNXP motherboard has been giving me
> a hard time for several weeks.  Tonight I got around to instrumenting
> a copy of /usr/src/sys/boot/i386/boot0/boot0.s and verified my
> suspicion.
> 
> The AWARD BIOS loads the MBR from the first drive in the BIOS drive
> list, drive code 0x80, but passes the value 0x81 to the bootstrap
> program through the %dl register.
> 
> This has a couple of consequences:
> 
> 1) The boot0 program lists the partition on the first drive but
>    boots the selected partition from the second drive, and
> 
> 2) The boot0 program may overwrite the MBR on the second drive
>    with a copy of the MBR from the first drive.
> 
> My workaround was to do:
> 
>       boot0cfg -Bv -d 0x80 -o setdrv,noupdate ad0
> 
> The noupdate option is intended to prevent a major disaster if
> this drive should ever be assigned a different number by the BIOS.
> 
> I don't like this workaround.  It is clumsy and restrictive.
> The drive configuration on my PC is in a state of flux.
> 
> Has anyone noticed such antisocial BIOS behavior in the past?
> 
> Is there actually a standard for passing the BIOS drive number through
> the %dl register?  Do I have grounds for *demanding* that the motherboard
> manufacturer get the BIOS fixed?

I don't think there is an actual standard for BIOS booting off a hard
disk.  The defacto standard is to indeed pass in the BIOS device number
in %dl, so you likely can complain to your BIOS vendor.  It's amazing
Windows boots off the thing.  Windows may hardcode 0x80 though as a
workaround.  The boot0cfg -d option exists to workaround this type of
bug, so you are using the best workaround available.

-- 

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



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