summaryrefslogtreecommitdiff
path: root/i386/i386at/model_dep.c
diff options
context:
space:
mode:
Diffstat (limited to 'i386/i386at/model_dep.c')
-rw-r--r--i386/i386at/model_dep.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/i386/i386at/model_dep.c b/i386/i386at/model_dep.c
index e0995c96..173b99f5 100644
--- a/i386/i386at/model_dep.c
+++ b/i386/i386at/model_dep.c
@@ -129,6 +129,9 @@ extern char version[];
/* Realmode temporary GDT */
extern struct pseudo_descriptor gdt_descr_tmp;
+/* Realmode relocated jmp */
+extern uint32_t apboot_jmp_offset;
+
/* If set, reboot the system on ctrl-alt-delete. */
boolean_t rebootflag = FALSE; /* exported to kdintr */
@@ -221,9 +224,11 @@ void machine_init(void)
assert (apboot_addr < 0x100000);
/*
- * Patch the realmode gdt with the correct offset
+ * Patch the realmode gdt with the correct offset and the first jmp to
+ * protected mode with the correct target.
*/
gdt_descr_tmp.linear_base += apboot_addr;
+ apboot_jmp_offset += apboot_addr;
#endif
}