Try to hard-reboot on rerun of post even on emulators.
[seabios.git] / src / shadow.c
index 391257bfcf65cbfa107c0e17bcd707c25ffe09bf..ed530e0296548d768111db923601d0f53f27e96d 100644 (file)
@@ -136,3 +136,16 @@ make_bios_readonly(void)
         dprintf(1, "Unable to lock ram - bridge not found\n");
     }
 }
+
+void
+qemu_prep_reset(void)
+{
+    if (CONFIG_COREBOOT)
+        return;
+    // QEMU doesn't map 0xc0000-0xfffff back to the original rom on a
+    // reset, so do that manually before invoking a hard reset.
+    make_bios_writable();
+    extern u8 code32flat_start[], code32flat_end[];
+    memcpy(code32flat_start, code32flat_start + BIOS_SRC_OFFSET
+           , code32flat_end - code32flat_start);
+}