summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xriscv/reset_vec.binbin0 -> 28 bytes
-rw-r--r--riscv/riscv_platform.c2
-rwxr-xr-xtest/riscv/run_tests.sh19
3 files changed, 20 insertions, 1 deletions
diff --git a/riscv/reset_vec.bin b/riscv/reset_vec.bin
new file mode 100755
index 00000000..d2d3563c
--- /dev/null
+++ b/riscv/reset_vec.bin
Binary files differ
diff --git a/riscv/riscv_platform.c b/riscv/riscv_platform.c
index 6330ae4d..7f6ec470 100644
--- a/riscv/riscv_platform.c
+++ b/riscv/riscv_platform.c
@@ -62,7 +62,7 @@ void plat_insns_per_tick(sail_int *rop, unit u)
mach_bits plat_htif_tohost(unit u)
{
- return UINT64_C(0x2000000);
+ return UINT64_C(0x80001000);
}
unit memea(mach_bits len, sail_int n)
diff --git a/test/riscv/run_tests.sh b/test/riscv/run_tests.sh
index 006ed425..d73fa287 100755
--- a/test/riscv/run_tests.sh
+++ b/test/riscv/run_tests.sh
@@ -69,5 +69,24 @@ done
finish_suite "RISCV tests"
+if make -C $SAILDIR/riscv riscv_c;
+then
+ green "Building RISCV specification to C" "ok"
+else
+ red "Building RISCV specification to C" "fail"
+fi
+
+for test in $DIR/tests/*.elf; do
+ sail -elf $test -o ${test%.elf}.bin 2> /dev/null;
+ if timeout 5 $SAILDIR/riscv/riscv_c --binary=0x1000,reset_vec.bin --image=${test%.elf}.bin > ${test%.elf}.cout 2>&1 && grep -q SUCCESS ${test%.elf}.cout
+ then
+ green "$(basename $test)" "ok"
+ else
+ red "$(basename $test)" "fail"
+ fi
+done
+
+finish_suite "RISCV C tests"
+
printf "</testsuites>\n" >> $DIR/tests.xml