Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
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     /* set stack point */
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     /* set stack point */
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