Date: Fri, 26 Sep 2003 23:24:11 -0700 (PDT) From: Dan Strick <strick@covad.net> To: freebsd-hardware@freebsd.org Cc: dan@ice.nodomain Subject: bad BIOS confuses boot0 Message-ID: <200309270624.h8R6OBjS000841@ice.nodomain>
next in thread | raw e-mail | index | archive | help
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? Dan Strick strick@covad.net
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200309270624.h8R6OBjS000841>