summaryrefslogtreecommitdiff
path: root/asm/start.s
diff options
context:
space:
mode:
authorMiguel <m.i@gmx.at>2018-09-02 00:08:42 +0200
committerMiguel <m.i@gmx.at>2018-09-02 00:08:42 +0200
commit8e3411139b27a3421e9ac75c13f14f99f6dd3137 (patch)
treecf8b53ab02863117c310bde11ee4683e134cf1b2 /asm/start.s
parent0fff2e6dc6fae82da1c7978918a490c25cc36f04 (diff)
syscalls
Diffstat (limited to 'asm/start.s')
-rw-r--r--asm/start.s23
1 files changed, 12 insertions, 11 deletions
diff --git a/asm/start.s b/asm/start.s
index bb12a7c..1d881b4 100644
--- a/asm/start.s
+++ b/asm/start.s
@@ -1,7 +1,9 @@
-# https://www.gnu.org/software/grub/manual/multiboot/multiboot.html#Boot-information-format
-# http://wiki.osdev.org/Bare_Bones
+.global _start
+.global _start_smp
+.global stack_top
+.global stack_bottom
-# Fill Multiboot Haeder, init stack and call kernel_main passing to params:
+# Fill Multiboot Haeder, init stack and call kernel_main passing two params:
# eax - magic number
# ebx - multiboot structure
@@ -16,7 +18,9 @@
# entry point for application processors at 0x7000
.section .smp
.code16
-call smp_go # TODO: align later before going C
+_start_smp:
+jmp .
+//call smp_go # TODO: align later before going C
# Declare a header as in the Multiboot Standard. We put this into a special
# section so we can force the header to be in the start of the final program.
@@ -56,12 +60,8 @@ stack_top:
# bootloader will jump to this position once the kernel has been loaded. It
# doesn't make sense to return from this function as the bootloader is gone.
.section .text
-.global _start
-.global stack_top
-.global stack_bottom
-.type _start, @function
-_start:
+_start:
# To set up a stack, we simply set the esp register to point to the top of
# our stack (as it grows downwards).
@@ -73,10 +73,11 @@ _start:
call kernel_main
- # should never be reached
-
+ # turn off interrupts and halt.
+ # this should never be reached
cli
hlt
+
.Lhang:
jmp .Lhang