forked from BSB-WS23/mpstubs
34 lines
1.3 KiB
NASM
34 lines
1.3 KiB
NASM
; The first 8192 bytes of the kernel binary must contain a header with
|
|
; predefined (and sometimes "magic") values according to the Multiboot standard.
|
|
; Based on these values, the boot loader decides whether and how to load the
|
|
; kernel -- which is compiled and linked into an ELF file.
|
|
; To make this possible with your StuBS kernel, the linker places the following
|
|
; entry `multiboot_header` at the very beginning of the file thanks to the
|
|
; linker script (located in compiler/sections.ld).
|
|
|
|
[SECTION .multiboot_header]
|
|
|
|
; Include configuration
|
|
%include 'boot/multiboot/config.inc'
|
|
|
|
; Multiboot Header
|
|
ALIGN 4
|
|
multiboot_header:
|
|
dd MULTIBOOT_HEADER_MAGIC_OS ; Magic Header Value
|
|
dd MULTIBOOT_HEADER_FLAGS ; Flags (affects following entries)
|
|
dd MULTIBOOT_HEADER_CHKSUM ; Header Checksum
|
|
|
|
; Following fields would have been required to be defined
|
|
; if flag A_OUT KLUDGE was set (but we don't need this)
|
|
dd 0 ; Header address
|
|
dd 0 ; Begin of load address
|
|
dd 0 ; end of load address
|
|
dd 0 ; end of bss segment
|
|
dd 0 ; address of entry function
|
|
|
|
; Following fields are required for video mode (flag MULTIBOOT_VIDEO_MODE)
|
|
dd 0 ; Mode: 0 = Graphic / 1 = Text
|
|
dd MULTIBOOT_VIDEO_WIDTH ; Width (pixels / columns)
|
|
dd MULTIBOOT_VIDEO_HEIGHT ; Height (pixels / rows)
|
|
dd MULTIBOOT_VIDEO_BITDEPTH ; color depth / number of colors
|