diff --git a/config/rv64gc/config.vh b/config/rv64gc/config.vh index bb3e79659..04a674b47 100644 --- a/config/rv64gc/config.vh +++ b/config/rv64gc/config.vh @@ -41,7 +41,7 @@ localparam COUNTERS = 12'd32; localparam ZICNTR_SUPPORTED = 1; localparam ZIHPM_SUPPORTED = 1; localparam ZFH_SUPPORTED = 1; -localparam ZFA_SUPPORTED = 0; +localparam ZFA_SUPPORTED = 1; localparam SSTC_SUPPORTED = 1; localparam ZICBOM_SUPPORTED = 1; localparam ZICBOZ_SUPPORTED = 1; diff --git a/sim/imperas.ic b/sim/imperas.ic index b35166429..7e029be9b 100644 --- a/sim/imperas.ic +++ b/sim/imperas.ic @@ -21,6 +21,7 @@ --override cpu/Zcb=T --override cpu/Zicond=T --override cpu/Zfh=T +--override cpu/Zfa=T # Cache block operations --override cpu/Zicbom=T diff --git a/tests/coverage/WALLY-init-lib.h b/tests/coverage/WALLY-init-lib.h index f450409fe..fdf9be6cf 100644 --- a/tests/coverage/WALLY-init-lib.h +++ b/tests/coverage/WALLY-init-lib.h @@ -24,6 +24,8 @@ //////////////////////////////////////////////////////////////////////////////////////////////// // load code to initalize stack, handle interrupts, terminate +// The PMP tests are sensitive to the exact addresses in this code, so unfortunately +// modifying anything breaks those tests. .section .text.init .global rvtest_entry_point @@ -36,10 +38,11 @@ rvtest_entry_point: csrw mtvec, t0 # Initialize MTVEC to trap_handler csrw mideleg, zero # Don't delegate interrupts csrw medeleg, zero # Don't delegate exceptions - li t0, -1 # set mtimecmp to biggest number so it doesnt interrupt again - li t1, 0x02004000 # MTIMECMP in CLINT - sd t0, 0(t1) +# li t0, -1 # set mtimecmp to biggest number so it doesnt interrupt again +# li t1, 0x02004000 # MTIMECMP in CLINT +# sd t0, 0(t1) li t0, 0x80 +# li t0, 0x00 csrw mie, t0 # Enable machine timer interrupt la t0, topoftrapstack csrw mscratch, t0 # MSCRATCH holds trap stack pointer diff --git a/tests/coverage/fpu.S b/tests/coverage/fpu.S index 0a9d4b7c1..0e3fd80d7 100644 --- a/tests/coverage/fpu.S +++ b/tests/coverage/fpu.S @@ -139,7 +139,7 @@ main: .word 0xc5000007 // Attempting to toggle (Op7 != 7) to 0 on line 97 in fctrl, not sure what instruction this works out to .word 0xe0101053 // toggling (Rs2D == 0) to 0 on line 139 in fctrl. Illegal Intsr (like fclass but incorrect rs2) .word 0xe0100053 // toggling (Rs2D == 0) to 0 on line 141 in fctrl. Illegal Intsr (like fmv but incorrect rs2) - .word 0x40500053 // toggling (Rs2D[4:2] == 0) to 0 on line 145 in fctrl. + .word 0x40D00053 // toggling (Rs2D[4:2] == 0) to 0 on line 145 in fctrl. .word 0x40300053 // toggling SupportFmt2 to 0 on line 145 in fctrl. .word 0x42100053 // toggling (Rs2D[1:0] != 1) to 0 on line 147 in fctrl. Illegal Instr .word 0xf0100053 // toggling (Rs2D == 0) to 0 on line 143 in fctrl. Illegal Instr