You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When write 0x01 to mseccfg(0x747), some unknown behavior happened: ibex jump to _vectors_start. I have tested some values, when we write 0x4 or 0x8, ibex is normal, any other value will jump to _vectors_start. See trace file for more information.
Expected Behavior
Ibex has supported Smepmp extension at PMP Enhancements. I have checked this extension, all mseccfg field, including mseccfg.MML and mseccfg.MMWP are WARL.
Build this test code like "hello_test.c", run build/lowrisc_ibex_ibex_simple_system_0/sim-verilator/Vibex_simple_system --meminit=ram,./PATH/TO/test.elf -c 300
I learned how to view waveform diagrams and discovered that when pc=0x1003cc, an exception occurred, and the program jumped to pc=0x100000, which is the location of _vectors_start.
According to the disassembly information, a write operation to the mseccfg register occurred at pc=0x1003cc, which triggered an exception. This exception violated the rules of the Smepmp extension because "All mseccfg fields defined in this proposal are WARL."
Hi @nbdd0121, thanks for your reply.
Actually, the test case shown in the picture above is a part of another test case. When I set PMP correctly, I want to change msecfg.MML to 0x1, a trap occurred and the mcause is zero. I have tested other values, such 0b110, 0b10, etc. All failed. I think the root cause is mseccfg is not writable in ibex.
Observed Behavior
When write 0x01 to
mseccfg
(0x747), some unknown behavior happened: ibex jump to_vectors_start
. I have tested some values, when we write 0x4 or 0x8, ibex is normal, any other value will jump to_vectors_start
. See trace file for more information.Expected Behavior
Ibex has supported Smepmp extension at PMP Enhancements. I have checked this extension, all
mseccfg
field, includingmseccfg.MML
andmseccfg.MMWP
are WARL.Steps to reproduce the issue
Build this test code like "hello_test.c", run
build/lowrisc_ibex_ibex_simple_system_0/sim-verilator/Vibex_simple_system --meminit=ram,./PATH/TO/test.elf -c 300
My Environment
fusesoc --cores-root=. run --target=sim --setup --build \ lowrisc:ibex:ibex_simple_system $(util/ibex_config.py opentitan fusesoc_opts)
EDA tool and version:
Verilator 4.210 2021-07-07 rev v4.210
Operating system:
Ubuntu Linux 18.04
Version of the Ibex source code:
The text was updated successfully, but these errors were encountered: