Bring in 1.33 from FreeBSD-5:
authorMatthew Dillon <dillon@dragonflybsd.org>
Thu, 24 Jun 2004 23:31:06 +0000 (23:31 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Thu, 24 Jun 2004 23:31:06 +0000 (23:31 +0000)
When rebooting the machine jump to 0xf000:0xfff0 instead of 0xffff:0x0.
While we end up the same place, we end up with two different CS register
values after the jump and 0xf000 is compatible with the hardware reset value.
This makes a difference if the BIOS does a near jump before a far jump.

Detective work and patch by:     Adrian Steinmann <ast@marabu.ch>

sys/boot/i386/btx/btx/btx.S
sys/boot/i386/btx/btx/btx.s
sys/boot/pc32/btx/btx/btx.S

index ba10baa..b122a10 100644 (file)
@@ -14,7 +14,7 @@
 #
 
 # $FreeBSD: src/sys/boot/i386/btx/btx/btx.s,v 1.32 2002/10/08 18:19:02 jhb Exp $
-# $DragonFly: src/sys/boot/i386/btx/btx/Attic/btx.S,v 1.3 2003/11/10 06:08:35 dillon Exp $
+# $DragonFly: src/sys/boot/i386/btx/btx/Attic/btx.S,v 1.4 2004/06/24 23:31:06 dillon Exp $
 
 #
 # Memory layout.
@@ -297,7 +297,7 @@ exit.2:     xor %ax,%ax                     # Real mode segment
                testb $0x1,btx_hdr+0x7          # Reboot?
 exit.3:                jz exit.3                       # No
                movw $0x1234, BDA_BOOT          # Do a warm boot
-               ljmp $0xffff,$0x0               # reboot the machine
+               ljmp $0xf000,$0xfff0            # reboot the machine
 #
 # Set IRQ offsets by reprogramming 8259A PICs.
 #
index 82f4dc7..27c08a4 100644 (file)
@@ -14,7 +14,7 @@
 #
 
 # $FreeBSD: src/sys/boot/i386/btx/btx/btx.s,v 1.32 2002/10/08 18:19:02 jhb Exp $
-# $DragonFly: src/sys/boot/i386/btx/btx/Attic/btx.s,v 1.3 2003/11/10 06:08:35 dillon Exp $
+# $DragonFly: src/sys/boot/i386/btx/btx/Attic/btx.s,v 1.4 2004/06/24 23:31:06 dillon Exp $
 
 #
 # Memory layout.
@@ -297,7 +297,7 @@ exit.2:     xor %ax,%ax                     # Real mode segment
                testb $0x1,btx_hdr+0x7          # Reboot?
 exit.3:                jz exit.3                       # No
                movw $0x1234, BDA_BOOT          # Do a warm boot
-               ljmp $0xffff,$0x0               # reboot the machine
+               ljmp $0xf000,$0xfff0            # reboot the machine
 #
 # Set IRQ offsets by reprogramming 8259A PICs.
 #
index d201c50..ad06f34 100644 (file)
@@ -14,7 +14,7 @@
 #
 
 # $FreeBSD: src/sys/boot/i386/btx/btx/btx.s,v 1.32 2002/10/08 18:19:02 jhb Exp $
-# $DragonFly: src/sys/boot/pc32/btx/btx/btx.S,v 1.3 2003/11/10 06:08:35 dillon Exp $
+# $DragonFly: src/sys/boot/pc32/btx/btx/btx.S,v 1.4 2004/06/24 23:31:06 dillon Exp $
 
 #
 # Memory layout.
@@ -297,7 +297,7 @@ exit.2:     xor %ax,%ax                     # Real mode segment
                testb $0x1,btx_hdr+0x7          # Reboot?
 exit.3:                jz exit.3                       # No
                movw $0x1234, BDA_BOOT          # Do a warm boot
-               ljmp $0xffff,$0x0               # reboot the machine
+               ljmp $0xf000,$0xfff0            # reboot the machine
 #
 # Set IRQ offsets by reprogramming 8259A PICs.
 #