summaryrefslogtreecommitdiff
path: root/lume-legacy/src/boot/entry.S
diff options
context:
space:
mode:
authorRichard Qin <richard.qin.x@gmail.com>2026-07-10 11:31:46 +0800
committerRichard Qin <richard.qin.x@gmail.com>2026-07-10 11:31:46 +0800
commite90b72ec3082588b296956730bd2930cf8d5d671 (patch)
tree36ff6916af9b4176ea5a9662219d11e721f0b691 /lume-legacy/src/boot/entry.S
parent1767d390fbf3d0c65389de46caf0b6d43ef3b6ad (diff)
downloadlume-e90b72ec3082588b296956730bd2930cf8d5d671.tar.gz
lume-e90b72ec3082588b296956730bd2930cf8d5d671.tar.xz
refactor: promote new architecture to repository root
Archive the deprecated implementation under lume-legacy, make the new kernel the default root-level build, and update repository entry points without changing kernel behavior.
Diffstat (limited to 'lume-legacy/src/boot/entry.S')
-rw-r--r--lume-legacy/src/boot/entry.S47
1 files changed, 47 insertions, 0 deletions
diff --git a/lume-legacy/src/boot/entry.S b/lume-legacy/src/boot/entry.S
new file mode 100644
index 0000000..8910ddc
--- /dev/null
+++ b/lume-legacy/src/boot/entry.S
@@ -0,0 +1,47 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (C) 2026 Richard Qin
+
+.section .text.entry
+.global _start
+
+_start:
+ mv tp, a0
+
+ la t0, stack_base
+ li t1, 4096
+ addi t2, a0, 1
+ mul t1, t1, t2
+ add sp, t0, t1
+
+ bnez a0, .L_jump_main
+
+ la t0, sbss
+ la t1, ebss
+.L_clear_bss:
+ bge t0, t1, .L_save_dtb
+ sd zero, 0(t0)
+ addi t0, t0, 8
+ j .L_clear_bss
+
+.L_save_dtb:
+ la t0, g_dtb_addr
+ sd a1, 0(t0)
+
+.L_jump_main:
+ call kernel_main
+
+.L_park:
+ wfi
+ j .L_park
+
+.section .bss
+.align 4
+.global stack_top
+stack_base:
+ .space 4096 * 8
+stack_top:
+
+.align 8
+.global g_dtb_addr
+g_dtb_addr:
+ .space 8 \ No newline at end of file