mirror of
https://github.com/lowRISC/ibex.git
synced 2025-04-23 05:17:12 -04:00
added U-mode accesses in pmp_mseccfg directed test
This commit is contained in:
parent
e5fc3a6bab
commit
8efaef8dc1
4 changed files with 432 additions and 40 deletions
|
@ -98,20 +98,51 @@
|
|||
1 : addi t0, t0, 2; \
|
||||
csrw mepc, t0;
|
||||
|
||||
#Accesses at start, mid and end of PMP range
|
||||
#define RW_ACCESSES(pmp_addr, gran) \
|
||||
la s0, pmp_addr; \
|
||||
lw s1, 0(s0); \
|
||||
sw s1, 0(s0); \
|
||||
li s1, gran / 2; \
|
||||
add s2, s0, s1; \
|
||||
lw s1, 0(s2); \
|
||||
sw s1, 0(s2); \
|
||||
li s1, gran - 4; \
|
||||
add s2, s0, s1; \
|
||||
lw s1, 0(s2); \
|
||||
#define RW_ACCESSES_IN_M_MODE(pmp_addr, gran) \
|
||||
la s0, pmp_addr; \
|
||||
lw s1, 0(s0); \
|
||||
sw s1, 0(s0); \
|
||||
li s1, gran / 2; \
|
||||
add s2, s0, s1; \
|
||||
lw s1, 0(s2); \
|
||||
sw s1, 0(s2); \
|
||||
li s1, gran - 4; \
|
||||
add s2, s0, s1; \
|
||||
lw s1, 0(s2); \
|
||||
sw s1, 0(s2);
|
||||
|
||||
#define RW_ACCESSES_IN_U_MODE(pmp_addr, gran) \
|
||||
la s0, pmp_addr; \
|
||||
SWITCH_TO_U_MODE_LABEL(1f); \
|
||||
1 : lw s1, 0(s0); \
|
||||
SWITCH_TO_U_MODE_LABEL(1f); \
|
||||
1 : sw s1, 0(s0);
|
||||
|
||||
#Accesses at start, mid and end of PMP range
|
||||
|
||||
#ifdef U_MODE
|
||||
#define RW_ACCESSES(pmp_addr, gran) RW_ACCESSES_IN_U_MODE(pmp_addr, gran)
|
||||
#else
|
||||
#define RW_ACCESSES(pmp_addr, gran) RW_ACCESSES_IN_M_MODE(pmp_addr, gran)
|
||||
#endif
|
||||
|
||||
#define SET_MSECCFG(val) \
|
||||
li t1, val; \
|
||||
csrs CSR_MSECCFG, t1;
|
||||
|
||||
#define SWITCH_TO_U_MODE_LABEL(label) \
|
||||
li t0, MSTATUS_MPP; \
|
||||
csrc mstatus, t0; \
|
||||
la t0, label; \
|
||||
csrw mepc, t0; \
|
||||
la a0, 1f; \
|
||||
mret; \
|
||||
1:
|
||||
|
||||
#define SWITCH_TO_U_MODE_REG(reg) \
|
||||
li t0, MSTATUS_MPP; \
|
||||
csrc mstatus, t0; \
|
||||
csrw mepc, reg; \
|
||||
la a0, 1f; \
|
||||
mret; \
|
||||
1:
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
test_srcs: empty/empty.S
|
||||
config: riscv-tests
|
||||
|
||||
- test: pmp_mseccfg_test_rlb1_l0_0
|
||||
- test: pmp_mseccfg_test_rlb1_l0_0_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -72,7 +72,7 @@
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DPMP_REGION=4 -DRLB -DSET_PMP_L=0 -DSET_PMP_L_PREV=0
|
||||
|
||||
- test: pmp_mseccfg_test_rlb1_l0_1
|
||||
- test: pmp_mseccfg_test_rlb1_l0_1_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -84,7 +84,7 @@
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DPMP_REGION=4 -DRLB -DSET_PMP_L=1 -DSET_PMP_L_PREV=0
|
||||
|
||||
- test: pmp_mseccfg_test_rlb1_l1_0
|
||||
- test: pmp_mseccfg_test_rlb1_l1_0_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -96,7 +96,7 @@
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DPMP_REGION=4 -DRLB -DSET_PMP_L=0 -DSET_PMP_L_PREV=1
|
||||
|
||||
- test: pmp_mseccfg_test_rlb1_l1_1
|
||||
- test: pmp_mseccfg_test_rlb1_l1_1_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -108,7 +108,7 @@
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DPMP_REGION=4 -DRLB -DSET_PMP_L=1 -DSET_PMP_L_PREV=1
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_0
|
||||
- test: pmp_mseccfg_test_rlb0_l0_0_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -120,7 +120,7 @@
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DPMP_REGION=4 -DSET_PMP_L=0 -DSET_PMP_L_PREV=0
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -132,7 +132,7 @@
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -144,7 +144,7 @@
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_R1
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_w1
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_w1_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -156,7 +156,7 @@
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_W1
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_x1
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_x1_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -168,7 +168,7 @@
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_X1
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1_w1
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1_w1_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -180,7 +180,7 @@
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_R1_W1
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1_x1
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1_x1_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -192,7 +192,7 @@
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_R1_X1
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_w1_x1
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_w1_x1_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -204,7 +204,7 @@
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_W1_X1
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1_w1_x1
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1_w1_x1_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -216,6 +216,162 @@
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_R1_W1_X1
|
||||
|
||||
- test: pmp_mseccfg_test_rlb1_l0_0_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DPMP_REGION=4 -DRLB -DSET_PMP_L=0 -DSET_PMP_L_PREV=0 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb1_l0_1_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DPMP_REGION=4 -DRLB -DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb1_l1_0_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DPMP_REGION=4 -DRLB -DSET_PMP_L=0 -DSET_PMP_L_PREV=1 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb1_l1_1_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DPMP_REGION=4 -DRLB -DSET_PMP_L=1 -DSET_PMP_L_PREV=1 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_0_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DPMP_REGION=4 -DSET_PMP_L=0 -DSET_PMP_L_PREV=0 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_R1 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_w1_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_W1 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_x1_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_X1 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1_w1_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_R1_W1 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1_x1_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_R1_X1 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_w1_x1_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_W1_X1 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1_w1_x1_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_R1_W1_X1 -DU_MODE
|
||||
|
||||
- test: access_pmp_overlap
|
||||
desc: >
|
||||
PMP access basic test
|
||||
|
|
|
@ -80,7 +80,7 @@ def add_configs_and_handwritten_directed_tests():
|
|||
test_srcs: empty/empty.S
|
||||
config: riscv-tests
|
||||
|
||||
- test: pmp_mseccfg_test_rlb1_l0_0
|
||||
- test: pmp_mseccfg_test_rlb1_l0_0_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -92,7 +92,7 @@ def add_configs_and_handwritten_directed_tests():
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DPMP_REGION=4 -DRLB -DSET_PMP_L=0 -DSET_PMP_L_PREV=0
|
||||
|
||||
- test: pmp_mseccfg_test_rlb1_l0_1
|
||||
- test: pmp_mseccfg_test_rlb1_l0_1_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -104,7 +104,7 @@ def add_configs_and_handwritten_directed_tests():
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DPMP_REGION=4 -DRLB -DSET_PMP_L=1 -DSET_PMP_L_PREV=0
|
||||
|
||||
- test: pmp_mseccfg_test_rlb1_l1_0
|
||||
- test: pmp_mseccfg_test_rlb1_l1_0_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -116,7 +116,7 @@ def add_configs_and_handwritten_directed_tests():
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DPMP_REGION=4 -DRLB -DSET_PMP_L=0 -DSET_PMP_L_PREV=1
|
||||
|
||||
- test: pmp_mseccfg_test_rlb1_l1_1
|
||||
- test: pmp_mseccfg_test_rlb1_l1_1_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -128,7 +128,7 @@ def add_configs_and_handwritten_directed_tests():
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DPMP_REGION=4 -DRLB -DSET_PMP_L=1 -DSET_PMP_L_PREV=1
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_0
|
||||
- test: pmp_mseccfg_test_rlb0_l0_0_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -140,7 +140,7 @@ def add_configs_and_handwritten_directed_tests():
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DPMP_REGION=4 -DSET_PMP_L=0 -DSET_PMP_L_PREV=0
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -152,7 +152,7 @@ def add_configs_and_handwritten_directed_tests():
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -164,7 +164,7 @@ def add_configs_and_handwritten_directed_tests():
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_R1
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_w1
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_w1_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -176,7 +176,7 @@ def add_configs_and_handwritten_directed_tests():
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_W1
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_x1
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_x1_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -188,7 +188,7 @@ def add_configs_and_handwritten_directed_tests():
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_X1
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1_w1
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1_w1_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -200,7 +200,7 @@ def add_configs_and_handwritten_directed_tests():
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_R1_W1
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1_x1
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1_x1_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -212,7 +212,7 @@ def add_configs_and_handwritten_directed_tests():
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_R1_X1
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_w1_x1
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_w1_x1_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -224,7 +224,7 @@ def add_configs_and_handwritten_directed_tests():
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_W1_X1
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1_w1_x1
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1_w1_x1_u0
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
|
@ -236,6 +236,162 @@ def add_configs_and_handwritten_directed_tests():
|
|||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_R1_W1_X1
|
||||
|
||||
- test: pmp_mseccfg_test_rlb1_l0_0_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DPMP_REGION=4 -DRLB -DSET_PMP_L=0 -DSET_PMP_L_PREV=0 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb1_l0_1_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DPMP_REGION=4 -DRLB -DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb1_l1_0_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DPMP_REGION=4 -DRLB -DSET_PMP_L=0 -DSET_PMP_L_PREV=1 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb1_l1_1_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DPMP_REGION=4 -DRLB -DSET_PMP_L=1 -DSET_PMP_L_PREV=1 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_0_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DPMP_REGION=4 -DSET_PMP_L=0 -DSET_PMP_L_PREV=0 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_R1 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_w1_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_W1 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_x1_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_X1 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1_w1_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_R1_W1 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1_x1_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_R1_X1 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_w1_x1_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_W1_X1 -DU_MODE
|
||||
|
||||
- test: pmp_mseccfg_test_rlb0_l0_1_next_l1_r1_w1_x1_u1
|
||||
desc: >
|
||||
mseccfg test
|
||||
iterations: 1
|
||||
test_srcs: pmp_mseccfg_test/pmp_mseccfg_test.S
|
||||
config: riscv-tests
|
||||
gcc_opts: -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
|
||||
-I../../../vendor/riscv-test-env/
|
||||
-I../../../vendor/riscv-test-env/p/
|
||||
-I../../../vendor/riscv-tests/isa/macros/scalar/
|
||||
-DSET_PMP_L=1 -DSET_PMP_L_PREV=0 -DPMP_NEXT_L1_R1_W1_X1 -DU_MODE
|
||||
|
||||
- test: access_pmp_overlap
|
||||
desc: >
|
||||
PMP access basic test
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
# at start, mid and end of the PMP region.
|
||||
# Target of test is to achieve functional coverage for rewriting
|
||||
# permissions in PMP regions with RLB 0/1.
|
||||
# Test accesses in both M-mode and U-mode.
|
||||
|
||||
#include "riscv_test.h"
|
||||
#include "test_macros.h"
|
||||
|
@ -33,9 +34,32 @@
|
|||
SET_PMP_TOR(pmp_region_end, pmp_region_start, pmp_permissions | PMP_TOR, region_high, region_low) \
|
||||
RW_ACCESSES(pmp_region_start, PMP_GRAN)
|
||||
|
||||
#define ACCESS_REGION(region, offset) \
|
||||
la t0, region; \
|
||||
jalr a0, offset(t0);
|
||||
|
||||
#define EXEC_ACCESS_IN_M_MODE(region) \
|
||||
ACCESS_REGION(region, 0); \
|
||||
ACCESS_REGION(region, -2);
|
||||
|
||||
#define EXEC_ACCESS_IN_U_MODE(region) \
|
||||
SWITCH_TO_U_MODE_LABEL(region); \
|
||||
la s0, region; \
|
||||
addi s0, s0, -2; \
|
||||
SWITCH_TO_U_MODE_REG(s0);
|
||||
|
||||
#ifdef U_MODE
|
||||
#define EXEC_ACCESS(region) \
|
||||
EXEC_ACCESS_IN_U_MODE(region)
|
||||
#else
|
||||
#define EXEC_ACCESS(region) \
|
||||
EXEC_ACCESS_IN_M_MODE(region)
|
||||
#endif
|
||||
|
||||
#define SET_PMP_AND_ACCESS_NAPOT(pmp_permissions, region) \
|
||||
SET_PMP_NAPOT(pmp_region_start, PMP_GRAN, pmp_permissions | PMP_NAPOT, region) \
|
||||
RW_ACCESSES(pmp_region_start, PMP_GRAN)
|
||||
RW_ACCESSES(pmp_region_start, PMP_GRAN) \
|
||||
EXEC_ACCESS(pmp_region_start)
|
||||
|
||||
#define SET_DIFF_PMP_CFG(pmp_region, pmp_l, pmp_l_prev) \
|
||||
PREV_PMP_CFG(pmp_l_prev, pmp_region, pmp_l) \
|
||||
|
@ -123,6 +147,12 @@ RVTEST_CODE_BEGIN
|
|||
# resetting all PMP regions and mseccfg
|
||||
RESET_PMP
|
||||
|
||||
# placing 0xffffffff just before pmp_region_start so in
|
||||
# order to deal with boundary instsr as uncompressed
|
||||
li t0, 0xffffffff
|
||||
la t1, pmp_region_start
|
||||
sw t0, -4(t1)
|
||||
|
||||
#ifdef RLB
|
||||
SET_MSECCFG(MSECCFG_RLB)
|
||||
#endif
|
||||
|
@ -160,7 +190,24 @@ RVTEST_CODE_BEGIN
|
|||
|
||||
.balign 256
|
||||
mtvec_handler:
|
||||
csrr t0, mcause
|
||||
li t1, CAUSE_FETCH_ACCESS
|
||||
beq t0, t1, restore_to_pc_before_access_fault
|
||||
# jump to a valid PC if illegal instruction
|
||||
# which would be when PMP has execute permissions
|
||||
# in pmp_region_start
|
||||
li t1, CAUSE_ILLEGAL_INSTRUCTION
|
||||
beq t0, t1, restore_to_pc_before_access_fault
|
||||
SKIP_PC
|
||||
j ret_from_mhandler
|
||||
|
||||
restore_to_pc_before_access_fault:
|
||||
csrw mepc, a0
|
||||
|
||||
ret_from_mhandler:
|
||||
# always return to m-mode
|
||||
li t0, MSTATUS_MPP
|
||||
csrs mstatus, t0
|
||||
mret
|
||||
|
||||
RVTEST_CODE_END
|
||||
|
@ -169,7 +216,9 @@ RVTEST_CODE_END
|
|||
RVTEST_DATA_BEGIN
|
||||
|
||||
.balign PMP_GRAN
|
||||
pmp_region_start: .zero PMP_GRAN
|
||||
pmp_region_start:
|
||||
jr a0
|
||||
.zero (PMP_GRAN-4)
|
||||
pmp_region_end:
|
||||
TEST_DATA
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue