summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/sys/arch/amd64/boot/boot_chip.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/sys/arch/amd64/boot/boot_chip.c b/src/sys/arch/amd64/boot/boot_chip.c
index 01d090c..679a759 100644
--- a/src/sys/arch/amd64/boot/boot_chip.c
+++ b/src/sys/arch/amd64/boot/boot_chip.c
@@ -33,6 +33,20 @@
#include <machine/boot.h>
#include <machine/i8259.h>
#include <machine/ioapic.h>
+#include <stdbool.h>
+
+static void
+chipset_init(void)
+{
+ static bool once = false;
+
+ if (once) {
+ return;
+ }
+
+ once = true;
+ ioapic_init();
+}
void
platform_boot(void)
@@ -40,6 +54,6 @@ platform_boot(void)
gdt_load();
i8259_disable();
- ioapic_init();
+ chipset_init();
uart_init();
}