Add ACPI shutdown sequence
authorPablo de Oliveira <pablo@sifflez.org>
Mon, 17 Mar 2014 18:01:59 +0000 (19:01 +0100)
committerBen Pfaff <blp@cs.stanford.edu>
Tue, 18 Mar 2014 15:33:10 +0000 (08:33 -0700)
On QEMU emulator version 1.7.0, the previous shutdown sequence (writing
`shutdown` to 0x8900), is not working properly.

This patch adds support for the ACPI shutdown code which works on qemu
1.7.0 and preserves the old sequence for compatibility.

src/devices/shutdown.c

index 7ff9a95adbe080893eef291ca96c937afdf8d44b..61c76f7b060d2746ae6fa1763feede4f895db200 100644 (file)
@@ -99,6 +99,9 @@ shutdown_power_off (void)
   printf ("Powering off...\n");
   serial_flush ();
 
+  /* ACPI power-off */
+  outw (0xB004, 0x2000);
+
   /* This is a special power-off sequence supported by Bochs and
      QEMU, but not by physical hardware. */
   for (p = s; *p != '\0'; p++)