[ibex/dv] Add several PMP tests

Signed-off-by: Udi <udij@google.com>
This commit is contained in:
Udi 2020-05-26 10:31:42 -07:00 committed by udinator
parent 13135e2e70
commit 976e7edcda

View file

@ -575,17 +575,72 @@
sim_opts: >
+require_signature_addr=1
- test: riscv_pmp_test
- test: riscv_pmp_basic_test
desc: >
Random PMP settings
iterations: 1
Basic PMP test - all PMP regions will be configured to default setting,
enabling all forms of accesses, expect that no exception will be thrown.
Randomize mstatus.mprv.
iterations: 10
gen_test: riscv_rand_instr_test
gen_opts: >
+instr_cnt=6000
+pmp_randomize=0
+pmp_allow_addr_overlap=0
+pmp_max_offset=00021000
+boot_mode=u
+pmp_max_offset=00024000
rtl_test: core_ibex_base_test
- test: riscv_pmp_disable_all_regions_test
desc: >
Disable all permissions from PMP regions, randomize the boot mode,
and randomize mstatus.mprv.
Expect that all appropriate faults are taken, and that the core
finishes executing successfully.
iterations: 20
gen_test: riscv_rand_instr_test
gen_opts: >
+instr_cnt=6000
+pmp_max_offset=00024000
+pmp_region_1=X:0,W:0,R:0
+pmp_region_2=X:0,W:0,R:0
+pmp_region_3=X:0,W:0,R:0
+pmp_region_4=X:0,W:0,R:0
+pmp_region_5=X:0,W:0,R:0
+pmp_region_6=X:0,W:0,R:0
+pmp_region_7=X:0,W:0,R:0
+pmp_region_8=X:0,W:0,R:0
+pmp_region_9=X:0,W:0,R:0
+pmp_region_10=X:0,W:0,R:0
+pmp_region_11=X:0,W:0,R:0
+pmp_region_12=X:0,W:0,R:0
+pmp_region_13=X:0,W:0,R:0
+pmp_region_14=X:0,W:0,R:0
+pmp_region_15=X:0,W:0,R:0
rtl_test: core_ibex_base_test
- test: riscv_pmp_out_of_bounds_test
desc: >
Default PMP settings - enable all regions with full permissions.
Randomize mstatus.mprv and the boot mode.
Insert streams of memory instructions that access addresses out of PMP boundaries.
iterations: 25
gen_test: riscv_rand_instr_test
gen_opts: >
+instr_cnt=6000
+pmp_max_offset=00024000
+directed_instr_0=riscv_load_store_rand_addr_instr_stream,50
rtl_test: core_ibex_base_test
- test: riscv_pmp_full_random_test
desc: >
Completely randomize the boot mode, mstatus.mprv, and all PMP configuration,
and allow PMP regions to overlap.
A large number of iterations will be required since this introduces a huge
state space of configurations.
iterations: 100
gen_test: riscv_rand_instr_test
gen_opts: >
+instr_cnt=6000
+pmp_max_offset=00024000
+pmp_randomize=1
+pmp_allow_addr_overlap=1
rtl_test: core_ibex_base_test
- test: riscv_bitmanip_test