summaryrefslogtreecommitdiffstats
path: root/kernel/boot.s
diff options
context:
space:
mode:
authorAlexey Gavrilov <alexey.gavrilov@mail.com>2025-12-17 14:13:08 +0700
committerAlexey Gavrilov <alexey.gavrilov@mail.com>2025-12-20 14:16:47 +0700
commiteb6a12e18d45879ec383921f0c7378120b71d159 (patch)
tree1d6d6ed08f963c4bb9d48734f86504e6b9ca7139 /kernel/boot.s
parente3e68862bbc731802efc39cbfb1b6df7ab255204 (diff)
Linker script rework
`memory.ld` is a architecture-dependent ld config provides some general symbols which every `memory.ld` config must assign and memory regions associated with each output section. 'linker.ld' config file presents segments configuration. Multiboot section filling move in the 'linker.ld' file. Recommendation for further patches: controlled logic implementation for multiboot version and header/entries in build configuration tool (CMake or make). For instance, multiboot version and video mode selection through variable passing in build system: `cmake ... -DMULTIBOOT_VERSION=2 -DMULTIBOOT_VIDEO_MODE=TEXT_VIDEO_MODE` or 'export MULTIBOOT_VERSION=2; export MULTIBOOT_VIDEO_MODE=TEXT_VIDEO_MODE'. Then build system do proper filling of `.multiboot` section depends on passing variables. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
Diffstat (limited to 'kernel/boot.s')
-rw-r--r--kernel/boot.s29
1 files changed, 2 insertions, 27 deletions
diff --git a/kernel/boot.s b/kernel/boot.s
index 534beb6..281e1ca 100644
--- a/kernel/boot.s
+++ b/kernel/boot.s
@@ -1,36 +1,11 @@
-MBFLAGS equ 0
-MAGIC equ 0x1BADB002
-CHECKSUM equ -(MAGIC + MBFLAGS)
-
- section .multiboot
-align 4
- dd MAGIC
- dd MBFLAGS
- dd CHECKSUM
-
-section .bss
-resb 512
-align 16
-; align 16 bytes according to the System V ABI standard
-; Stack space
-stack_bottom:
-resb 16384 ; 16KiB
-stack_top:
-
section .text
extern main
+extern _estack
global _start:function (_start.end - _start)
_start:
- mov esp, stack_top
+ mov esp, _estack
call main
cli
.hang: hlt
jmp .hang
.end:
-
-section .kheap
-kheap_top:
-; Kernel heap space
-; Change this value together Kheap::size varibale (mem/Kheap.h file)
-resb 4096
-kheap_bottom: