From owner-freebsd-hardware@FreeBSD.ORG Fri Sep 26 23:24:09 2003 Return-Path: Delivered-To: freebsd-hardware@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 47B5616A4B3 for ; Fri, 26 Sep 2003 23:24:09 -0700 (PDT) Received: from smtp.covadmail.net (mx04.covadmail.net [63.65.120.64]) by mx1.FreeBSD.org (Postfix) with SMTP id D7EDE43FEA for ; Fri, 26 Sep 2003 23:24:07 -0700 (PDT) (envelope-from strick@covad.net) Received: (covad.net 15942 invoked from network); 27 Sep 2003 06:24:02 -0000 Received: from unknown (HELO ice.nodomain) (68.164.196.84) by sun-qmail04 with SMTP; 27 Sep 2003 06:24:02 -0000 Received: from ice.nodomain (localhost [127.0.0.1]) by ice.nodomain (8.12.8p1/8.12.8) with ESMTP id h8R6OBHt000842; Fri, 26 Sep 2003 23:24:12 -0700 (PDT) (envelope-from dan@ice.nodomain) Received: (from dan@localhost) by ice.nodomain (8.12.8p1/8.12.8/Submit) id h8R6OBjS000841; Fri, 26 Sep 2003 23:24:11 -0700 (PDT) Date: Fri, 26 Sep 2003 23:24:11 -0700 (PDT) From: Dan Strick Message-Id: <200309270624.h8R6OBjS000841@ice.nodomain> To: freebsd-hardware@freebsd.org cc: dan@ice.nodomain Subject: bad BIOS confuses boot0 X-BeenThere: freebsd-hardware@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: General discussion of FreeBSD hardware List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Sep 2003 06:24:09 -0000 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