From owner-freebsd-bugs@FreeBSD.ORG Fri May 18 20:18:30 2007 Return-Path: X-Original-To: freebsd-bugs@freebsd.org Delivered-To: freebsd-bugs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5259216A401 for ; Fri, 18 May 2007 20:18:30 +0000 (UTC) (envelope-from ftu@fi.uu.nl) Received: from ftu.demon.nl (ftu.demon.nl [83.161.26.16]) by mx1.freebsd.org (Postfix) with ESMTP id E242B13C459 for ; Fri, 18 May 2007 20:18:29 +0000 (UTC) (envelope-from ftu@fi.uu.nl) X-face: 1(qSF/Pzjzp_euFvSOGi~qv|, z-.>Q*?[LOn2!@{QS.fPWa8nI*(V5Fy$Y*zzCTCK2xM6Wyli/Rm1zyxw^Y{ From: Dick Wesseling Subject: boot manager patch X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 May 2007 20:18:30 -0000 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 */