未验证 提交 ed4b4ca9 编写于 作者: W Wayne 提交者: GitHub

[libcpu] [cortex-a] Revert RT_SMP_AUTO_BOOT. (#7549)

Co-authored-by: NWayne Lin <wclin@nuvoton.com>
上级 0cbb665a
......@@ -157,6 +157,38 @@ after_enable_mmu:
#endif /* RT_USING_SMART */
mcr p15, 0, r1, c1, c0, 0
#ifndef RT_USING_SMART
#ifdef RT_USING_SMP
/* Use spin-table to start secondary cores */
@ get cpu id, and subtract the offset from the stacks base address
bl rt_hw_cpu_id
mov r5, r0
cmp r5, #0 @ cpu id == 0
beq normal_setup
@ cpu id > 0, stop or wait
#ifdef RT_SMP_AUTO_BOOT
ldr r0, =secondary_cpu_entry
mov r1, #0
str r1, [r0] /* clean secondary_cpu_entry */
#endif /* RT_SMP_AUTO_BOOT */
secondary_loop:
@ cpu core 1 goes into sleep until core 0 wakeup it
wfe
#ifdef RT_SMP_AUTO_BOOT
ldr r1, =secondary_cpu_entry
ldr r0, [r1]
cmp r0, #0
blxne r0 /* if(secondary_cpu_entry) secondary_cpu_entry(); */
#endif /* RT_SMP_AUTO_BOOT */
b secondary_loop
normal_setup:
#endif /* RT_USING_SMP */
#endif /* RT_USING_SMART */
/* enable I cache + branch prediction */
mrc p15, 0, r0, c1, c0, 0
orr r0, r0, #(1<<12)
......@@ -208,7 +240,7 @@ bss_loop:
_rtthread_startup:
.word rtthread_startup
.weak rt_asm_cpu_id
.weak rt_asm_cpu_id
rt_asm_cpu_id:
mrc p15, 0, r0, c0, c0, 5
and r0, r0, #0xf
......@@ -222,7 +254,7 @@ stack_setup:
bl rt_asm_cpu_id
mov lr, r10
add r0, r0, #1
#else
mov r0, #1
#endif
......@@ -292,7 +324,7 @@ rt_hw_mmu_switch:
mov r0, #0
mcr p15, 0, r0, c8, c7, 0
mcr p15, 0, r0, c7, c5, 0 //iciallu
mcr p15, 0, r0, c7, c5, 6 //bpiall
mcr p15, 0, r0, c7, c5, 6 //bpiall
dsb
isb
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册