mirror of
https://github.com/justinian/jsix.git
synced 2025-12-10 00:14:32 -08:00
[kernel] Update kernel binary's header structure
The kernel's file header has not been verified for a long time. This change returns file verification to the bootloader to make sure the ELF loaded in position 0 is actually the kernel.
This commit is contained in:
@@ -1,16 +1,18 @@
|
||||
MAGIC equ 0x600db007 ; jsix OS header magic number
|
||||
MAGIC equ 'j6KERNEL' ; jsix kernel header magic number
|
||||
|
||||
section .header
|
||||
align 4
|
||||
global _header
|
||||
_header:
|
||||
dd MAGIC ; Kernel header magic
|
||||
dw 1 ; Header version 1
|
||||
dw 16 ; Kernel header length
|
||||
db VERSION_MAJOR ; Kernel version
|
||||
db VERSION_MINOR
|
||||
align 8
|
||||
global _kernel_header
|
||||
_kernel_header:
|
||||
dq MAGIC ; Kernel header magic
|
||||
dw 32 ; Kernel header length
|
||||
dw 2 ; Header version 2
|
||||
dw VERSION_MAJOR ; Kernel version
|
||||
dw VERSION_MINOR
|
||||
dw VERSION_PATCH
|
||||
dw 0 ; reserved
|
||||
dd VERSION_GITSHA
|
||||
dq 0 ; Flags
|
||||
|
||||
section .text
|
||||
align 16
|
||||
|
||||
@@ -92,6 +92,9 @@ kernel_main(init::args *args)
|
||||
|
||||
cpu_validate();
|
||||
|
||||
kassert(args->magic == init::args_magic,
|
||||
"Bad kernel args magic number");
|
||||
|
||||
log::debug(logs::boot, "jsix init args are at: %016lx", args);
|
||||
log::debug(logs::boot, " Memory map is at: %016lx", args->mem_map);
|
||||
log::debug(logs::boot, "ACPI root table is at: %016lx", args->acpi_table);
|
||||
|
||||
Reference in New Issue
Block a user