Hi,
I’ve added a security monitor to bbl, but the Linux does not boot even if I comment out every function call that belongs to the security monitor.
At the very beginning of the boot process, the kernel always gets stuck after getting this message:
... (truncated) ...
[ 0.000000] software IO TLB [mem 0xfbfff000-0xfffff000] (64MB) mapped at [ (ptrval)- (ptrval)]
[ 0.000000] CPU with hartid=0 has a non-okay status of "masked"
/home/ubuntu/freedom-u-sdk/riscv-pk/machine/mtrap.c:22: machine mode: unhandlable trap 4 @ 0x0000000080002950
trap # 4 is for misaligned load, and 0x80002950 contains “illegal_insn_trap” as follows
3668 0000000080002926 <illegal_insn_trap>:
3669 80002926: 8832 mv a6,a2
3670 80002928: 300028f3 csrr a7,mstatus
3671 8000292c: 34302773 csrr a4,mbadaddr
3672 80002930: 478d li a5,3
3673 80002932: 00377313 andi t1,a4,3
3674 80002936: 02f31263 bne t1,a5,8000295a <illegal_insn_trap+0x34>
3675 8000293a: 00480793 addi a5,a6,4
3676 8000293e: 34179073 csrw mepc,a5
3677 80002942: 00004697 auipc a3,0x4
3678 80002946: 50868693 addi a3,a3,1288 # 80006e4a <illegal_insn_trap_table>
3679 8000294a: 07c77793 andi a5,a4,124
3680 8000294e: 97b6 add a5,a5,a3
3681 80002950: 0007e303 lwu t1,0(a5)
3682 80002954: 86c6 mv a3,a7
But I have no idea why this trap is raised because the security monitor is never executed at all.
Moreover, the trap occurs during booting the kernel, which is not modified.
If I completely remove the security monitor, Linux boots okay.
Do you have any clues for the cause, or how to debug the problem?
Thank you for your help!