summaryrefslogtreecommitdiff
path: root/kernel/header.S
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/header.S')
-rw-r--r--kernel/header.S43
1 files changed, 33 insertions, 10 deletions
diff --git a/kernel/header.S b/kernel/header.S
index 5a57741..bbcb9be 100644
--- a/kernel/header.S
+++ b/kernel/header.S
@@ -1,17 +1,40 @@
+// multiboot tags
+.set TAG_END, 0
+.set TAG_FRAMEBUFFER, 5
+
+// multiboot flags
+.set TAG_REQUIRED, 0
+.set TAG_OPTIONAL, 1
+
+# multiboot2 header constants
+.set MAGIC, 0xe85250d6
+.set ARCH, 0
+.set HEADER_LENGTH, (header_end - header_start)
+.set CHECKSUM, 0x100000000 - (MAGIC + ARCH + HEADER_LENGTH)
+
.section .multiboot_header, "a"
.align 4
header_start:
- # magic number
- .long 0xe85250d6 # multiboot2
- # architecture
- .long 0 # protected mode i386
- # header length
- .long (header_end - header_start)
- # checksum
- .long 0x100000000 - (0xe85250d6 + 0 + (header_end - header_start))
+ # magic
+ .align 8
+ .long MAGIC
+ .long ARCH
+ .long HEADER_LENGTH
+ .long CHECKSUM
+
+ # framebuffer
+ .align 8
+ .word TAG_FRAMEBUFFER
+ .word TAG_REQUIRED
+ .long 20
+ .long 1024
+ .long 768
+ .long 32
# end tag
- .word 0
- .word 0
+ .align 8
+ .word TAG_END
+ .word TAG_REQUIRED
.long 8
+
header_end: