riscv: cpu: set gp before board_init_f_init_reserve
authorNikita Shubin <n.shubin@yadro.com>
Fri, 20 May 2022 11:41:17 +0000 (14:41 +0300)
committerLeo Yu-Chi Liang <ycliang@andestech.com>
Thu, 11 Aug 2022 10:42:53 +0000 (18:42 +0800)
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>
arch/riscv/cpu/start.S

index f2ef556..ac81783 100644 (file)
@@ -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)