From owner-freebsd-hackers Thu Oct 16 22:13:25 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id WAA20188 for hackers-outgoing; Thu, 16 Oct 1997 22:13:25 -0700 (PDT) (envelope-from owner-freebsd-hackers) Received: from ns2.yahoo.com (ns2.yahoo.com [205.216.162.20]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id WAA20183 for ; Thu, 16 Oct 1997 22:13:23 -0700 (PDT) (envelope-from filo@yahoo.com) Received: (from filo@localhost) by ns2.yahoo.com (8.8.5/8.6.12) id WAA23150; Thu, 16 Oct 1997 22:12:16 -0700 (PDT) Date: Thu, 16 Oct 1997 22:12:16 -0700 (PDT) Message-Id: <199710170512.WAA23150@ns2.yahoo.com> From: David Filo To: mike@smith.net.au CC: freebsd-hackers@FreeBSD.ORG In-reply-to: <199710170339.NAA00494@word.smith.net.au> (message from Mike Smith on Fri, 17 Oct 1997 13:09:20 +0930) Subject: Re: biosboot/start.S needs fix for Intel AL440LX motherboard Reply-To: filo@yahoo.com Sender: owner-freebsd-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk > > > I should point out that, having just checked, their practice of passing > > > 0 in %dl to the bootstrap is in direct violation of the BIOS Boot > > > Specification version 1.01, 11 Jan 1997. Quoting: > ... > > > Do you have any idea who is responsible for this BIOS? (ie. is it an > > > Intel in-house job, or a third party like Phoenix or Award?) > > > > it's a phoenix bios. of course it's possible that i'm just being > > stupid and there's an option somewhere that needs to be changed. > > still looking.. > > I don't think so; I *honestly* can't think of any reason they would > deliberately blow off a standard they co-authored. > yeah, it definitely looks like the bios is simply not setting %dl correctly. i've moved the disk between machines and it works fine in every other config with 0x80 getting passed in. it is clearly 0x00 on the al440lx board. > Are you booting from a SCSI disk? If so what controller? Do you have > an IDE disk you can try booting from? > tried several different 2940 cards. i just tired an ide disk with the same results (%dl == 0x00). > I won't have my hands on one of those boards until mid-next week (this > is an "Atlantic", correct?), and probably not for very long then. > yep, i think it's called "atlanta" > Jordan, can you perhaps work something like this into the RELNOTES for > 2.2.5, in case we don't manage to track this one down: > > (Known bugs section maybe?) > > The Intel AL440LX "Atlantic" motherboard BIOS is incompatible with the > FreeBSD bootstrap. To work around this, the boot disk MUST NOT be > sliced using the "dedicated" mode, and the BootEasy boot manager MUST > be installed. > > Symptoms of this problem are a system which attempts to access the > floppy disk when booting from the hard disk, displaying an endless > succession of > > C:0 H:0 S:0 > > error messages. > > David; can you confirm that last paragraph? I'm just guessing there. > actually you get a single "Read error" message. and this is with the latest bios 4A4LL0X0.86A.0013.P03 dated 10/02/97. btw, i ended up doing something similar to bteasy and made the following changes to start.S. diff -c -r1.1 -r1.3 *** start.S 1997/06/06 05:24:26 1.1 --- start.S 1997/10/17 02:41:29 1.3 *************** *** 102,112 **** /* set up %es, (where we will load boot2 to) */ mov %ax, %es /* bootstrap passes us drive number in %dl */ ! cmpb $0x80, %dl data32 jae hd fd: /* --- 103,120 ---- /* set up %es, (where we will load boot2 to) */ mov %ax, %es /* bootstrap passes us drive number in %dl */ ! cmpb $0x81, %dl data32 jae hd + + /* the above assumption is not always true, so let's force it. */ + /* needed for the al440lx board. don't see much harm in it. */ + /* this used to fall through to floppy, but we know this is */ + /* a hd boot, right? */ + movb $0x80, %dl + data32 + jmp hd fd: /*