1/*
2 * Copyright 2011, Fran��ois Revol <revol@free.fr>.
3 * All rights reserved. Distributed under the terms of the MIT License.
4 */
5
6#include <arch/arm/arch_cpu.h>
7
8#include <asm_defs.h>
9
10
11	.text
12
13/*	status_t arch_start_kernel(struct kernel_args *kernelArgs,
14		addr_t kernelEntry, addr_t kernelStackTop);
15
16	r0	- kernelArgs
17	r1	- kernelEntry
18	r2	- kernelStackTop
19*/
20FUNCTION(arch_start_kernel):
21
22	// set the kernel stack
23	mov		sp,r2
24
25	// set up kernel _start args
26	//mov	r0,r0	// kernelArgs
27	mov		r4,r1
28	mov		r1,#0	// currentCPU=0
29
30	// call the kernel
31	mov		pc,r4
32
33	// return
34	mov		r0,#-1	// B_ERROR
35	mov		pc,lr
36
37FUNCTION_END(arch_start_kernel)
38
39