Subject: Booting 1.3 with Phoenix BIOS
To: None <port-i386@NetBSD.ORG>
From: Kirk Corey <kirk-corey@uiowa.edu>
List: port-i386
Date: 01/27/1998 10:43:43
Back when I installed 1.2 on a certain machine of mine, I needed to recompile the boot code with a special fix (thanks to Bruce Walker -- see below) in order to get around an attitude problem between the Phoenix BIOS and NetBSD.  I'm about to upgrade the machine to 1.3, and I'm wondering whether sysinst is going to install new, non-working boot blocks, or whether the problem has been fixed.  My guess is the former, but I'm willing to be wrong.  :)

If I still need to recompile, will the same patch work?  Is there an update to the BIOS that I haven't found yet, that would fix the problem?

BTW, I want to voice my appreciation for the continued efforts of the folks writing the code.  I've upgraded 3 other machines from 1.2 to 1.3, and I really like some of the new features.  

Thanks,

Kirk Corey
kirk-corey@uiowa.edu

--------------- Text of ancient message ---------------
From: Bruce Walker <bmw@visgen.com>
Subject: Re: Problem booting NetBSD
To: kcorey@mail.dsp.uiowa.edu
Date: Sat, 29 Mar 1997 18:32:18 -0500 (EST)
Cc: netbsd-help@NetBSD.ORG

Kirk Corey writes:
> 
> 1.  Works fine on an HP Vectra XM Series 3 (Pentium 75 MHz) machine,
> 
> 2.  Won't boot from either of these disks in either an HP Vectra VL Series
> 4 (Pentium 100 MHz) or HP Vectra VA (Pentium Pro 200 MHz).  When I try to
> boot, I get a message ("read error") and the machine hangs.  
> 
> Does anyone have any ideas about this?  I couldn't find anything in the
> FAQ about this.

I hit this in February; no, there's nothing in the FAQ.  I queried
the list and got the important clue:  some BIOSes (notably Phoenix)
return a bogus drive value just before the boot code.  So NetBSD
tries to boot from the floppy drive, even though it read the boot
record from the hd.  The fd isn't ready, so the machine halts.

The Series 3 HPs don't use the Phoenix BIOS, that's why *they* work.

Here's the brute-force patch I made to force the hd boot to succeed:
apply this to /usr/src/sys/arch/i386/boot/start.S, remake the boot
code and reinstall it with disklabel -B ...

*** usr/src/sys/arch/i386/boot/start.S  Wed Jan 18 12:34:18 1995
--- /usr/src/sys/arch/i386/boot/start.S Mon Feb 10 08:40:59 1997
***************
*** 110,115 ****
--- 110,117 ----
  #endif
  
        # bootstrap passes us drive number in %dl
+       movb    $0x80, %dl      # force hd0; PhoenixBIOS bug (bmw)
+       addr32                  # (bmw)
        cmpb    $0x80, %dl
        data32
        jae     hd


-bmw