From c0a8113ba0b7cd6984cc685ec63f79bef3bc9899 Mon Sep 17 00:00:00 2001 From: Aleksa Vuckovic Date: Tue, 2 Aug 2022 18:59:51 +0200 Subject: framebuffer multiboot2 --- kernel/header.S | 43 +++++++++++++++++++++++++++++++++---------- 1 file changed, 33 insertions(+), 10 deletions(-) (limited to 'kernel/header.S') 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: -- cgit v1.2.3