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>
This commit is contained in:
Poul-Henning Kamp 2003-11-16 18:24:23 +00:00
parent ef7da08509
commit 5c391f4d6b
2 changed files with 2 additions and 2 deletions

View File

@ -296,7 +296,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.
#

View File

@ -296,7 +296,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.
#