0001
0002
0003 #include <linux/linkage.h>
0004 #include <linux/init.h>
0005 #include <asm/page.h>
0006 #include <abi/entry.h>
0007
0008 __HEAD
0009 ENTRY(_start)
0010 SETUP_MMU
0011
0012
0013 lrw r6, init_thread_union + THREAD_SIZE
0014 mov sp, r6
0015
0016 jmpi csky_start
0017 END(_start)
0018
0019 #ifdef CONFIG_SMP
0020 .align 10
0021 ENTRY(_start_smp_secondary)
0022 SETUP_MMU
0023
0024 #ifdef CONFIG_PAGE_OFFSET_80000000
0025 lrw r6, secondary_msa1
0026 ld.w r6, (r6, 0)
0027 mtcr r6, cr<31, 15>
0028 #endif
0029
0030 lrw r6, secondary_pgd
0031 ld.w r6, (r6, 0)
0032 mtcr r6, cr<28, 15>
0033 mtcr r6, cr<29, 15>
0034
0035
0036 lrw r6, secondary_stack
0037 ld.w r6, (r6, 0)
0038 mov sp, r6
0039
0040 jmpi csky_start_secondary
0041 END(_start_smp_secondary)
0042 #endif