diff --git a/src/kernel/boot/boot.S b/src/kernel/boot/boot.S index 65ca0e6..1fcb671 100644 --- a/src/kernel/boot/boot.S +++ b/src/kernel/boot/boot.S @@ -1,25 +1,6 @@ #include .intel_syntax noprefix -.section .multiboot -.align 0x1000 -MultiBootHeader1: -.long MBOOT1_MAGIC -.long MBOOT1_FLAGS -.long MBOOT1_CS - -.align 0x1000 -MultiBootHeader2: -.long MBOOT2_MAGIC -.long MBOOT2_ARCH -.long MBOOT2_LENGTH -.long MBOOT2_CHECKSUM - -.short 0 -.short 0 -.long 8 -MultiBootHeader2End: - .section .text .global _start .code32 diff --git a/src/kernel/boot/multiboot_header.S b/src/kernel/boot/multiboot_header.S new file mode 100644 index 0000000..527b894 --- /dev/null +++ b/src/kernel/boot/multiboot_header.S @@ -0,0 +1,20 @@ +#include +.section .multiboot + +.align 0x4 +MultibootHeader1: +.long MBOOT1_MAGIC +.long MBOOT1_FLAGS +.long MBOOT1_CS + +.align 0x8 +MultibootHeader2: +.long MBOOT2_MAGIC +.long MBOOT2_ARCH +.long MBOOT2_LENGTH +.long MBOOT2_CHECKSUM + +.short 0 +.short 0 +.long 8 +MultibootHeader2End: diff --git a/src/kernel/include/multiboot.h b/src/kernel/include/multiboot.h index 298f3c0..f7bd32b 100644 --- a/src/kernel/include/multiboot.h +++ b/src/kernel/include/multiboot.h @@ -1,12 +1,14 @@ #pragma once #define MBOOT1_MAGIC 0x1BADB002 +#define MBOOT1_REPLY 0x2BADB002 #define MBOOT1_PALIGN 0x01 #define MBOOT1_MEMINFO 0x02 #define MBOOT1_FLAGS (MBOOT1_PALIGN | MBOOT1_MEMINFO) #define MBOOT1_CS -(MBOOT1_FLAGS + MBOOT1_MAGIC) #define MBOOT2_MAGIC 0xE85250D6 +#define MBOOT2_REPLY 0x36D76289 #define MBOOT2_ARCH 0 -#define MBOOT2_LENGTH (MultiBootHeader2End - MultiBootHeader2) +#define MBOOT2_LENGTH (MultibootHeader2End - MultibootHeader2) #define MBOOT2_CHECKSUM -(MBOOT2_MAGIC + MBOOT2_ARCH + MBOOT2_LENGTH)