-
Notifications
You must be signed in to change notification settings - Fork 678
Open
Labels
Type:BugBugsBugs
Description
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, including mseccfg.MML and mseccfg.MMWP are WARL.
Steps to reproduce the issue
#include "simple_system_common.h"
int main(void){
asm volatile("li t0, 0x1");
asm volatile("csrw 0x747, t0");
asm volatile("nop");
asm volatile("nop");
asm volatile("nop");
asm volatile("csrr a0, 0x747");
return 0;
}
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
- build ibex:
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:
- ibex version: 8f4c75c
Metadata
Metadata
Assignees
Labels
Type:BugBugsBugs