Ticket #10164 (closed defect: wontfix)

Opened 6 years ago

Last modified 6 years ago

jumping to the BIOS power-on reset vector causes a CPU loop instead of a reboot

Reported by: robohack Owned by:
Priority: major Component: other
Version: VirtualBox 4.1.8 Keywords: bios,reboot,hang
Cc: Guest type: other
Host type: Mac OS X

Description (last modified by frank) (diff)

Apparently it should be possible to reboot a PC by jumping to the BIOS "power on restart" vector.

I.e. "ljmp $0xf000, $0xfff0", with the CPU in real mode, perhaps after clearing the warm-boot flag in 0040h:0072h.

This works fine on real PCs, including recent HP laptops, etc.

However with VirtualBox since at least 4.0.4, and up to and including 4.1.8, this just puts the VM into an endless loop chewing CPU cycles.


biosreboot.S Download (6.2 KB) - added by robohack 6 years ago.
example code (from NetBSD) with lots of new comments explaining what I've learned

Change History

Changed 6 years ago by robohack

example code (from NetBSD) with lots of new comments explaining what I've learned

comment:1 Changed 6 years ago by michaln

Jumping to ffff:0 has not been a reliable method of rebooting a PC for the last 25 years or so because the BIOS does not and cannot fully reset the hardware state in all situations.

The comments in the attached biosreboot.S are what I can only call "folklore". Lots of half-truths and many misconceptions, very few actual facts.

For a test whether this kind of reboot works at all, I recommend the following:

  • Boot MS-DOS 6.22 from a floppy
  • Hit F5 to skip any automatic setup
  • Run DEBUG
  • Type the following: a <Enter> jmp ffff:0 <Enter> <Enter> g <Enter>

That successfully reboots a VM here.

comment:2 Changed 6 years ago by frank

  • Status changed from new to closed
  • Resolution set to wontfix
  • Description modified (diff)
Note: See TracTickets for help on using tickets.
ContactPrivacy policyTerms of Use