Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 May 2007 21:20:06 +0200
From:      Dick Wesseling <ftu@fi.uu.nl>
To:        freebsd-bugs@freebsd.org
Subject:   boot manager patch
Message-ID:  <112592656.1179516006@fi.uu.nl>

next in thread | raw e-mail | index | archive | help

The PC ROM BIOS sets register si to the selected partition table
entry when invoking a bootstrap. The bootstrap can then use si to
retrieve its partition parameter.
This functionality used to work in the FreeBSD boot manager, but
it is broken in the current version of boot/i386/boot0/boot0.S


*** boot0.S.old	Fri May 18 20:42:32 2007
--- boot0.S	Fri May 18 21:04:47 2007
***************
*** 317,328 ****
  		movb $0x2,%ah			# Read sector
  		callw intx13			#  from disk
  		jc main.10			# If error
  		cmpw $MAGIC,0x1fe(%bx)		# Bootable?
  		jne main.10			# No
! 		movw $crlf,%si			# Leave some
! 		callw puts			#  space
  		jmp *%bx			# Invoke bootstrap
  
  /*
   * Display routines
   */
--- 317,329 ----
  		movb $0x2,%ah			# Read sector
  		callw intx13			#  from disk
  		jc main.10			# If error
  		cmpw $MAGIC,0x1fe(%bx)		# Bootable?
  		jne main.10			# No
! 		pushw %si                       # Leave some
! 		callw putn			#  space
! 		popw %si                        # Pointer to selected partition
  		jmp *%bx			# Invoke bootstrap
  
  /*
   * Display routines
   */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?112592656.1179516006>