summaryrefslogtreecommitdiff
path: root/boot/simple.c
diff options
context:
space:
mode:
authorBobby Bingham <koorogi@koorogi.info>2015-07-19 17:17:06 -0500
committerBobby Bingham <koorogi@koorogi.info>2015-09-15 22:43:32 -0500
commitf3885c4b23b0e13d7fe9ef4674a07e746acca320 (patch)
treebaece81713adf89b3c162be7c06dce3a8764747f /boot/simple.c
parente3cbe8f7712fe97d90ff1fb5c675df9a1632eb45 (diff)
build bootloaders from code
This adds the infrastructure for building from source the bootloaders which will go into the application initial program, in the boot sector. As a simple test case, it includes a simple bootloader which merely jumpts to the code address specified in the AIP, with the stack address specified there.
Diffstat (limited to 'boot/simple.c')
-rw-r--r--boot/simple.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/boot/simple.c b/boot/simple.c
new file mode 100644
index 0000000..ca3e796
--- /dev/null
+++ b/boot/simple.c
@@ -0,0 +1,10 @@
+#include "bootloader.h"
+
+_Noreturn void bootloader(struct systemid *boot)
+{
+ if (!boot->load_addr) fail();
+
+ long *stack = (long*) (boot->stack_master ? boot->stack_master : 0x06002000);
+ jump((void*) boot->load_addr, stack);
+}
+