Merge pull request #1041 from gsomlo/gls-vex-smp-fix
cpu/vexriscv_smp/crt0.S: only boot core should run data_init
This commit is contained in:
commit
1d302c56da
|
@ -63,23 +63,9 @@ crt_init:
|
||||||
csrw mtvec, a0
|
csrw mtvec, a0
|
||||||
sw x0, smp_lottery_lock, a1
|
sw x0, smp_lottery_lock, a1
|
||||||
|
|
||||||
data_init:
|
|
||||||
la a0, _fdata
|
|
||||||
la a1, _edata
|
|
||||||
la a2, _fdata_rom
|
|
||||||
data_loop:
|
|
||||||
beq a0,a1,data_done
|
|
||||||
lw a3,0(a2)
|
|
||||||
sw a3,0(a0)
|
|
||||||
add a0,a0,4
|
|
||||||
add a2,a2,4
|
|
||||||
j data_loop
|
|
||||||
data_done:
|
|
||||||
|
|
||||||
smp_tyranny:
|
smp_tyranny:
|
||||||
csrr a0, mhartid
|
csrr a0, mhartid
|
||||||
beqz a0, bss_init
|
beqz a0, data_init
|
||||||
call smp_slave
|
|
||||||
|
|
||||||
smp_slave:
|
smp_slave:
|
||||||
lw a0, smp_lottery_lock
|
lw a0, smp_lottery_lock
|
||||||
|
@ -93,6 +79,19 @@ smp_slave:
|
||||||
lw x13, smp_lottery_target
|
lw x13, smp_lottery_target
|
||||||
jr x13
|
jr x13
|
||||||
|
|
||||||
|
data_init:
|
||||||
|
la a0, _fdata
|
||||||
|
la a1, _edata
|
||||||
|
la a2, _fdata_rom
|
||||||
|
data_loop:
|
||||||
|
beq a0,a1,data_done
|
||||||
|
lw a3,0(a2)
|
||||||
|
sw a3,0(a0)
|
||||||
|
add a0,a0,4
|
||||||
|
add a2,a2,4
|
||||||
|
j data_loop
|
||||||
|
data_done:
|
||||||
|
|
||||||
bss_init:
|
bss_init:
|
||||||
la a0, _fbss
|
la a0, _fbss
|
||||||
la a1, _ebss
|
la a1, _ebss
|
||||||
|
|
Loading…
Reference in New Issue