`lla tp, _fw_end
mul a5, s7, s8
add tp, tp, a5
/ Keep a copy of tp /
add t3, tp, zero
/ Counter /
li t2, 1
/ hartid 0 is mandated by ISA /
li t1, 0
_scratch_init:
/*
The following registers hold values that are computed before
entering this block, and should remain unchanged.
t3 -> the firmware end address
s7 -> HART count
s8 -> HART stack size
*/
add tp, t3, zero
mul a5, s8, t1
sub tp, tp, a5
li a5, SBI_SCRATCH_SIZE
sub tp, tp, a5`
Here, when allocating the stack area, the size only calculates the size of the stack area,However, when using this space, we add the "scratch" area,Does the stack area and scratch area cover the code area?
`lla tp, _fw_end mul a5, s7, s8 add tp, tp, a5 / Keep a copy of tp / add t3, tp, zero / Counter / li t2, 1 / hartid 0 is mandated by ISA / li t1, 0 _scratch_init: /*