summaryrefslogtreecommitdiff
path: root/asm/asm_start.h
diff options
context:
space:
mode:
authorMiguel <m.i@gmx.at>2018-09-03 15:18:16 +0200
committerMiguel <m.i@gmx.at>2018-09-03 15:18:16 +0200
commit7eb87bf3f3fa6226657a7106eb255cbfa97758d2 (patch)
tree2d7d2280d32180d18796999bf7687ebe5bf208df /asm/asm_start.h
parent76b3da6022310dd8edbbbfdf4f73f1696a559853 (diff)
big renaming
Diffstat (limited to 'asm/asm_start.h')
-rw-r--r--asm/asm_start.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/asm/asm_start.h b/asm/asm_start.h
new file mode 100644
index 0000000..4b2db16
--- /dev/null
+++ b/asm/asm_start.h
@@ -0,0 +1,34 @@
+/**
+ * @file
+ * Defines the following sections/functions, some are linked at
+ * specific addresses in the final ELF kernel binary.
+ * This is specified in the _linker.ld_ file.
+ *
+ * TODO: THIS IS NOT TRUE ANYMORE (SINCE IT KILLED THE MEMORY IN BETWEEN PROABBLY)
+ * * 0x007000 .smp - entry point for application processors (16bit code)
+ * * 0x100000 .multiboot - the multiboot header
+ *
+ * * .text
+ * * .bootstrap_stack
+ * * _start() - main entry point for booting cpu, calls kernel_main().
+ *
+ * The addresses for .smp and .multiboot are based on the assumption:
+ * * 0x00000500 - 0x00007BFF : guaranteed free to use
+ * * 0x00100000 - 0x00EFFFFF : free for use (if it exists)
+ *
+ * References
+ * ----------
+ * * https://www.gnu.org/software/grub/manual/multiboot/multiboot.html#Boot-information-format
+ * * http://wiki.osdev.org/Bare_Bones
+ */
+
+/** This will be called by a multiboot compilant boot-loader (i.e. grub2).
+ * Calls kernel_main() passing through eax and ebx:
+ * * eax - magic number
+ * * ebx - multiboot structure
+ * */
+void _start();
+
+/** 16-bit entry point for application processors */
+void _start_smp();
+