aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorNikita Shubin2022-05-20 14:41:17 +0300
committerLeo Yu-Chi Liang2022-08-11 18:42:53 +0800
commita5041e33e4f05efec8a412641243c9281cba47e9 (patch)
tree2863c733b1de90da6a6702324b979ef2fb913162 /arch
parentcdebee1fd9fa04cc4c972f826bae19b28c253eb0 (diff)
riscv: cpu: set gp before board_init_f_init_reserve
Restore global pointer before board_init_f_init_reserve call, as "a0" can be set in harts_early_init call and we end up with invalid global pointer. Signed-off-by: Nikita Shubin <n.shubin@yadro.com> Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/riscv/cpu/start.S1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/riscv/cpu/start.S b/arch/riscv/cpu/start.S
index f2ef5564a15..ac81783a902 100644
--- a/arch/riscv/cpu/start.S
+++ b/arch/riscv/cpu/start.S
@@ -143,6 +143,7 @@ call_harts_early_init:
bnez tp, secondary_hart_loop
#endif
+ mv a0, s0
jal board_init_f_init_reserve
SREG s1, GD_FIRMWARE_FDT_ADDR(gp)