aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/x86_64/boot/boot.asm3
-rw-r--r--arch/x86_64/boot/linker.ld12
2 files changed, 12 insertions, 3 deletions
diff --git a/arch/x86_64/boot/boot.asm b/arch/x86_64/boot/boot.asm
index 1abda41..3f85423 100644
--- a/arch/x86_64/boot/boot.asm
+++ b/arch/x86_64/boot/boot.asm
@@ -5,6 +5,7 @@ section .text
bits 32
start:
mov esp, stack_top
+ mov edi, ebx ;Move Multiboot info pointer to edi
call check_multiboot
call check_cpuid
@@ -150,7 +151,7 @@ p3_table:
p2_table:
resb 4096
stack_bottom:
- resb 4096
+ resb 4096 * 4
stack_top:
section .rodata
diff --git a/arch/x86_64/boot/linker.ld b/arch/x86_64/boot/linker.ld
index 5d788f1..0ad745e 100644
--- a/arch/x86_64/boot/linker.ld
+++ b/arch/x86_64/boot/linker.ld
@@ -6,11 +6,19 @@ SECTIONS {
.boot :
{
/* ensure that the multiboot header is at the beginning */
- *(.multiboot_header)
+ KEEP(*(.multiboot_header))
}
.text :
{
- *(.text)
+ *(.text .text.*)
+ }
+
+ .rodata : {
+ *(.rodata .rodata.*)
+ }
+
+ .data.rel.ro : {
+ *(.data.rel.ro.local*) *(.data.rel.ro .data.rel.ro.*)
}
}