1 ! Copyright 2005,2006,2007,2009 Imagination Technologies
3 #include <linux/init.h>
4 #include <generated/asm-offsets.h>
8 ! Setup the stack and get going into _metag_start_kernel
10 .type __start,function
12 ! D1Ar1 contains pTBI (ISTAT)
14 ! D1Ar3 contains __pTBISegs
15 ! D0Ar4 contains kernel arglist pointer
17 MOVT D0Re0,#HI(___pTBIs)
18 ADD D0Re0,D0Re0,#LO(___pTBIs)
19 SETL [D0Re0],D0Ar2,D1Ar1
20 MOVT D0Re0,#HI(___pTBISegs)
21 ADD D0Re0,D0Re0,#LO(___pTBISegs)
27 MOV D1Ar1,D0Ar4 !Store kernel boot params
30 #ifdef CONFIG_METAG_DSP
33 MOVT A0StP,#HI(_init_thread_union)
34 ADD A0StP,A0StP,#LO(_init_thread_union)
35 ADD A0StP,A0StP,#THREAD_INFO_SIZE
36 MOVT D1RtP,#HI(_metag_start_kernel)
37 CALL D1RtP,#LO(_metag_start_kernel)
38 .size __start,.-__start
44 XOR TXENABLE,D0Re0,D0Re0
48 .global _secondary_startup
49 .type _secondary_startup,function
51 MOVT A0StP,#HI(_secondary_data_stack)
52 ADD A0StP,A0StP,#LO(_secondary_data_stack)
54 ADD A0StP,A0StP,#THREAD_INFO_SIZE
55 B _secondary_start_kernel
56 .size _secondary_startup,.-_secondary_startup