aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/scripts
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-09-09 23:14:30 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-09-09 23:14:30 +0200
commitda6cf94fc47f38cab580e9df1c6e6a46894aded5 (patch)
tree1f7a4534926a79ee6376770c63cccd2aa9e37442 /arch/x86_64/scripts
parent0467dc8f98ccef42290f7f7bd95060bfe198c035 (diff)
parentb99b79d8080cc1491f96069677d9ce0b7775a4f0 (diff)
downloadkernel-da6cf94fc47f38cab580e9df1c6e6a46894aded5.tar.xz
kernel-da6cf94fc47f38cab580e9df1c6e6a46894aded5.zip
Merge branch 'fmorgner/x86-64-double-fault-handling' into 'develop'
x86_64: handle double faults See merge request teachos/kernel!59
Diffstat (limited to 'arch/x86_64/scripts')
-rw-r--r--arch/x86_64/scripts/kernel.ld22
1 files changed, 18 insertions, 4 deletions
diff --git a/arch/x86_64/scripts/kernel.ld b/arch/x86_64/scripts/kernel.ld
index e6ae3425..3b2fd898 100644
--- a/arch/x86_64/scripts/kernel.ld
+++ b/arch/x86_64/scripts/kernel.ld
@@ -52,7 +52,7 @@ SECTIONS
PROVIDE_HIDDEN(__init_array_end = .);
} :boot_data
- .boot_bss ALIGN(4K) :
+ .boot_bss ALIGN(4K) (NOLOAD) :
{
KEEP(*(.boot_stack .boot_bss*))
} :boot_data
@@ -98,9 +98,23 @@ SECTIONS
. += 4K;
- .kernel_bss ALIGN(4K) : AT (ADDR (.kernel_bss) - TEACHOS_VMA)
+ .kernel_stack ALIGN(4K) (NOLOAD) : AT (ADDR (.kernel_stack) - TEACHOS_VMA)
{
- *(.stack .bss*)
+ PROVIDE_HIDDEN(__kernel_stack_bottom = .);
+ *(.stack)
+ } :kernel_data
+
+ . += 4K;
+
+ .kernel_ist1_stack ALIGN(4K) (NOLOAD) : AT (ADDR (.kernel_ist1_stack) - TEACHOS_VMA)
+ {
+ PROVIDE_HIDDEN(__ist1_stack_bottom = .);
+ *(.ist1_stack)
+ } :kernel_data
+
+ .kernel_bss ALIGN(4K) (NOLOAD) : AT (ADDR (.kernel_bss) - TEACHOS_VMA)
+ {
+ *(.bss*)
} :kernel_data
.kernel_text ALIGN(4K) : AT(ADDR (.kernel_text) - TEACHOS_VMA)
@@ -124,7 +138,7 @@ SECTIONS
. += 4K;
- .user_bss ALIGN(4K) : AT(ADDR (.user_bss) - TEACHOS_VMA)
+ .user_bss ALIGN(4K) (NOLOAD) : AT(ADDR (.user_bss) - TEACHOS_VMA)
{
KEEP(*(.user_bss*))
} :user_data