summaryrefslogtreecommitdiff
path: root/sys/arch/amd64/amd64/machdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/amd64/amd64/machdep.c')
-rw-r--r--sys/arch/amd64/amd64/machdep.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/sys/arch/amd64/amd64/machdep.c b/sys/arch/amd64/amd64/machdep.c
index 1000ebf..ec1d48f 100644
--- a/sys/arch/amd64/amd64/machdep.c
+++ b/sys/arch/amd64/amd64/machdep.c
@@ -80,6 +80,20 @@ processor_halt(void)
__ASMV("cli; hlt");
}
+/*
+ * Things set up before processor_init() call...
+ */
+void
+pre_init(void)
+{
+ /*
+ * These are critical things that need to be set up as soon as possible
+ * way before the processor_init() call.
+ */
+ interrupts_init();
+ gdt_load(&g_gdtr);
+}
+
void
processor_init(void)
{
@@ -88,9 +102,6 @@ processor_init(void)
struct cpu_info *cur_cpu = this_cpu();
- interrupts_init();
- gdt_load(&g_gdtr);
-
CPU_INFO_LOCK(cur_cpu);
init_tss(cur_cpu);
@@ -114,5 +125,4 @@ processor_init(void)
/* Use spectre mitigation if enabled */
if (try_spectre_mitigate != NULL)
try_spectre_mitigate();
-
}