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: /* * 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?
Per-HART stack area covers both sbi_scratch and stack.
The sbi_scratch is at the top and stack decrements from end of sbi_scratch
None of the per-HART stack area cover code.
Regards, Anup