summaryrefslogtreecommitdiffstats
path: root/arch/x86/boot
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/boot')
-rw-r--r--arch/x86/boot/kernel_entry.s12
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/x86/boot/kernel_entry.s b/arch/x86/boot/kernel_entry.s
new file mode 100644
index 0000000..e0fd132
--- /dev/null
+++ b/arch/x86/boot/kernel_entry.s
@@ -0,0 +1,12 @@
+# bootsect.s loads the kernel and transfers control to SYSSEG address.
+# We cannot be sure that the main() function will be exactly at this
+# address.
+
+# Therefore, we will use a small trick for entering the kernel correctly:
+# Locate this small assembly routine at the beginning of the SYSSEG
+# address => we can be sure that control will transfer to main()
+
+.code32
+.extern kernel_main
+ call kernel_main
+ jmp .