From 0c13e14bbf922db0306d9b72285620c565554a34 Mon Sep 17 00:00:00 2001 From: Jordan Carlin Date: Mon, 22 Jan 2024 09:52:58 -0800 Subject: [PATCH] coverage improvements for mret when mpp = 3; update imperas config --- sim/imperas.ic | 2 ++ tests/coverage/priv.S | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/sim/imperas.ic b/sim/imperas.ic index 5de5935c6..b35166429 100644 --- a/sim/imperas.ic +++ b/sim/imperas.ic @@ -37,6 +37,8 @@ # SV39 and SV48 supported --override cpu/Sv_modes=768 +--override cpu/Svinval=T + # clarify #--override refRoot/cpu/mtvec_sext=F diff --git a/tests/coverage/priv.S b/tests/coverage/priv.S index 6b5260259..39b3a8aeb 100644 --- a/tests/coverage/priv.S +++ b/tests/coverage/priv.S @@ -309,7 +309,20 @@ sretdone: .word 0x102F8073 - j done + # cover mret when mpp = 3 and mprv = 1 + li a0, 3 + ecall # enter machine mode + bseti t0, zero, 17 + csrs mstatus, t0 # set MPRV + li t1, 0x00001800 + csrs mstatus, t1 # set MPP=3 + la t1, finished + csrr t0, mepc + csrw mepc, t1 # set mepc for mret to jump to + mret + + +finished: j done