When calling '_reset_regs', it'll reset all registers except some
specific registers (ra, a0, a1, and a2).
Both boot HART and non-boot HARTs will execute the '_start_warm'
function. Therefore, when '_reset_regs' is called in '_start_warm', it
will reset all registers except some specific registers (ra, a0, a1 and
a2) for both boot HART and non-boot HARTs.
Signed-off-by: Zhang Runmin <fmrt19zrmin@163.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
/* At this point we are running from link address */
- /* Reset all registers for boot HART */
+ /* Reset all registers except ra, a0, a1 and a2 for boot HART */
li ra, 0
call _reset_regs
bne t0, t1, _wait_for_boot_hart
_start_warm:
- /* Reset all registers for non-boot HARTs */
+ /* Reset all registers except ra, a0, a1 and a2 for non-boot HARTs */
li ra, 0
call _reset_regs