diff options
| author | Aleksa Vuckovic <aleksav013@gmail.com> | 2022-08-02 18:59:51 +0200 |
|---|---|---|
| committer | Aleksa Vuckovic <aleksav013@gmail.com> | 2022-08-02 19:39:10 +0200 |
| commit | c0a8113ba0b7cd6984cc685ec63f79bef3bc9899 (patch) | |
| tree | 8fc1095310e3624c9db85254396ebdbf62e7b79e /kernel/header.S | |
| parent | 132510156e1b907498dd83724f12ca101ae32f88 (diff) | |
framebuffer multiboot2
Diffstat (limited to 'kernel/header.S')
| -rw-r--r-- | kernel/header.S | 43 |
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: |
