2018-09-05 14:25:07 +08:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0 */
|
|
|
|
|
|
|
|
#include <linux/linkage.h>
|
|
|
|
#include <linux/init.h>
|
|
|
|
#include <asm/page.h>
|
|
|
|
#include <abi/entry.h>
|
|
|
|
|
|
|
|
__HEAD
|
|
|
|
ENTRY(_start)
|
2019-04-12 19:08:34 +08:00
|
|
|
SETUP_MMU
|
2018-09-05 14:25:07 +08:00
|
|
|
|
|
|
|
/* set stack point */
|
2019-04-12 19:08:34 +08:00
|
|
|
lrw r6, init_thread_union + THREAD_SIZE
|
|
|
|
mov sp, r6
|
2018-09-05 14:25:07 +08:00
|
|
|
|
|
|
|
jmpi csky_start
|
|
|
|
END(_start)
|
|
|
|
|
|
|
|
#ifdef CONFIG_SMP
|
|
|
|
.align 10
|
|
|
|
ENTRY(_start_smp_secondary)
|
2019-04-12 19:08:34 +08:00
|
|
|
SETUP_MMU
|
2018-09-05 14:25:07 +08:00
|
|
|
|
2020-09-07 14:20:18 +08:00
|
|
|
#ifdef CONFIG_PAGE_OFFSET_80000000
|
|
|
|
lrw r6, secondary_msa1
|
2020-03-28 19:14:37 +08:00
|
|
|
ld.w r6, (r6, 0)
|
|
|
|
mtcr r6, cr<31, 15>
|
2020-09-07 14:20:18 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
lrw r6, secondary_pgd
|
|
|
|
ld.w r6, (r6, 0)
|
|
|
|
mtcr r6, cr<28, 15>
|
|
|
|
mtcr r6, cr<29, 15>
|
2020-03-28 19:14:37 +08:00
|
|
|
|
2018-09-05 14:25:07 +08:00
|
|
|
/* set stack point */
|
2019-04-12 19:08:34 +08:00
|
|
|
lrw r6, secondary_stack
|
|
|
|
ld.w r6, (r6, 0)
|
|
|
|
mov sp, r6
|
2018-09-05 14:25:07 +08:00
|
|
|
|
|
|
|
jmpi csky_start_secondary
|
|
|
|
END(_start_smp_secondary)
|
|
|
|
#endif
|