Merge pull request #4019 from bj-wanghz/dev

fix long call linker error with 'jal', 'j' or conditional branch instruction in .S files for k210
This commit is contained in:
Bernard Xiong 2020-12-03 16:02:00 +08:00 committed by GitHub
commit a472656ee0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 6 deletions

View File

@ -48,7 +48,7 @@ rt_hw_context_switch_to:
#ifdef RT_USING_SMP #ifdef RT_USING_SMP
mv a0, a1 mv a0, a1
jal rt_cpus_lock_status_restore call rt_cpus_lock_status_restore
#endif #endif
LOAD a0, 2 * REGBYTES(sp) LOAD a0, 2 * REGBYTES(sp)
csrw mstatus, a0 csrw mstatus, a0
@ -161,7 +161,7 @@ save_mpie:
#ifdef RT_USING_SMP #ifdef RT_USING_SMP
mv a0, a2 mv a0, a2
jal rt_cpus_lock_status_restore call rt_cpus_lock_status_restore
#endif /*RT_USING_SMP*/ #endif /*RT_USING_SMP*/
j rt_hw_context_switch_exit j rt_hw_context_switch_exit

View File

@ -119,7 +119,7 @@ trap_entry:
mv sp, s0 mv sp, s0
mv a0, s0 mv a0, s0
call rt_scheduler_do_irq_switch call rt_scheduler_do_irq_switch
j rt_hw_context_switch_exit tail rt_hw_context_switch_exit
#else #else
@ -143,4 +143,4 @@ trap_entry:
#endif #endif
spurious_interrupt: spurious_interrupt:
j rt_hw_context_switch_exit tail rt_hw_context_switch_exit

View File

@ -116,18 +116,21 @@ _start:
/* other cpu core, jump to cpu entry directly */ /* other cpu core, jump to cpu entry directly */
bnez a0, secondary_cpu_entry bnez a0, secondary_cpu_entry
j primary_cpu_entry tail primary_cpu_entry
secondary_cpu_entry: secondary_cpu_entry:
#ifdef RT_USING_SMP #ifdef RT_USING_SMP
la a0, secondary_boot_flag la a0, secondary_boot_flag
ld a0, 0(a0) ld a0, 0(a0)
li a1, 0xa55a li a1, 0xa55a
beq a0, a1, secondary_cpu_c_start beq a0, a1, 1f
#endif #endif
j secondary_cpu_entry j secondary_cpu_entry
#ifdef RT_USING_SMP #ifdef RT_USING_SMP
1:
tail secondary_cpu_c_start
.data .data
.global secondary_boot_flag .global secondary_boot_flag
.align 3 .align 3