Index: src/main/main.c
===================================================================
--- src/main/main.c	(revision 7f1bfceb9210d208482652a9028d8dc7c11acd79)
+++ src/main/main.c	(revision 7dcbc0a15d01ecc817038f477547f10fd2937e75)
@@ -28,5 +28,5 @@
 
 #include <arch/asm.h>
-#include <arch/context.h>
+#include <context.h>
 #include <print.h>
 #include <panic.h>
@@ -95,6 +95,5 @@
 
 	context_save(&ctx);
-	ctx.sp = config.base + config.kernel_size - SP_DELTA;
-	ctx.pc = FADDR(main_bsp_separated_stack);
+	context_set(&ctx, FADDR(main_bsp_separated_stack), config.base + hardcoded_ktext_size + hardcoded_kdata_size + CONFIG_HEAP_SIZE, CONFIG_STACK_SIZE);
 	context_restore(&ctx);
 	/* not reached */
@@ -193,6 +192,5 @@
 	 * switch to this cpu's private stack prior to waking kmp up.
 	 */
-	CPU->saved_context.sp = (__address) &CPU->stack[CPU_STACK_SIZE-SP_DELTA];
-	CPU->saved_context.pc = FADDR(main_ap_separated_stack);
+	context_set(&CPU->saved_context, FADDR(main_ap_separated_stack), CPU->stack, CPU_STACK_SIZE);
 	context_restore(&CPU->saved_context);
 	/* not reached */
