Subject: Re: 1.2 i386 bootstrap 'read error' problem (Help).
To: Mike Long <mike.long@analog.com>
From: Matt Beal <beal@umiacs.umd.edu>
List: port-i386
Date: 10/18/1996 22:04:43
 > >The problem is when
 > >attempting to boot off the hard drive.  Instead of booting I get a "Read
 > >Error.", so it appears to be a problem with the bootstraping.
 >
 > Is the drive set up correctly in your machine's BIOS?  The i386 boot
 > loader uses BIOS disk I/O routines to load the kernel into memory; if
 > the BIOS can't figure out how to talk to the disk, you're hosed.

Actually the problem here (wasn't there a FAQ on this?) is a flaw in many
BIOS's where they don't pass the boot drive number in DL like they're
supposed to. I used the attached patch to create some alternate boot
blocks to get my system to boot.

I'm unable to compile anything right now, else I'd put a new block up
so you could ftp it, but perhaps some other kind soul could help you out.

matt

------<snip>------

*** /usr/src/sys/arch/i386/boot/start.S	Mon Oct 14 12:07:26 1996
--- start.S	Fri Oct 18 21:57:32 1996
***************
*** 110,118 ****
  #endif /* DEBUG */
  
  	# bootstrap passes us drive number in %dl
- 	cmpb	$0x80, %dl
  	data32
! 	jae	hd
  
  fd:
  #	reset the disk system
--- 110,117 ----
  #endif /* DEBUG */
  
  	# bootstrap passes us drive number in %dl
  	data32
! 	jmp	hd
  
  fd:
  #	reset the disk system