diff --git a/.gitmodules b/.gitmodules index 672ec445f..5a35f04a3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -33,3 +33,6 @@ path = addins/berkeley-testfloat-3 url = https://github.com/ucb-bar/berkeley-testfloat-3 ignore = untracked +[submodule "addins/cvw-riscv-arch-test"] + path = addins/cvw-riscv-arch-test + url = https://github.com/jordancarlin/riscv-arch-test diff --git a/addins/cvw-riscv-arch-test b/addins/cvw-riscv-arch-test new file mode 160000 index 000000000..44832a9d3 --- /dev/null +++ b/addins/cvw-riscv-arch-test @@ -0,0 +1 @@ +Subproject commit 44832a9d3bea991b099c6beb4c962e5b7c1ad3a3 diff --git a/bin/regression-wally b/bin/regression-wally index f037d804b..8bb0cd5fb 100755 --- a/bin/regression-wally +++ b/bin/regression-wally @@ -484,10 +484,10 @@ def selectTests(args, sims, coverStr): addTestsByDir(f"{WALLY}/tests/riscof/work/riscv-arch-test/rv32i_m/vm_sv32", "rv32gc", coveragesim, coverStr, configs, lockstepMode=1) # addTestsByDir(f"{WALLY}/tests/riscof/work/riscv-arch-test/rv32i_m/pmp32", "rv32gc", coveragesim, coverStr, configs, lockstepMode=1) TODO: Add when working in lockstep # addTestsByDir(f"{WALLY}/tests/riscof/work/riscv-arch-test/rv64i_m/pmp", "rv64gc", coveragesim, coverStr, configs, lockstepMode=1) TODO: Add when working in lockstep - # run riscv-arch-test tests in functional coverage mode + # run cvw-riscv-arch-test tests in functional coverage mode if args.fcov_act: - addTestsByDir(f"{WALLY}/tests/riscof/work/riscv-arch-test/rv32i_m", "rv32gc", coveragesim, coverStr, configs, lockstepMode=1) - addTestsByDir(f"{WALLY}/tests/riscof/work/riscv-arch-test/rv64i_m", "rv64gc", coveragesim, coverStr, configs, lockstepMode=1) + addTestsByDir(f"{WALLY}/tests/riscof/work/cvw-riscv-arch-test/rv32i", "rv32gc", coveragesim, coverStr, configs, lockstepMode=1) + addTestsByDir(f"{WALLY}/tests/riscof/work/cvw-riscv-arch-test/rv64i", "rv64gc", coveragesim, coverStr, configs, lockstepMode=1) # run branch predictor tests if args.branch: addTests(bpredtests, defaultsim, coverStr, configs) diff --git a/tests/riscof/Makefile b/tests/riscof/Makefile index 131d724c4..59ec8ca84 100644 --- a/tests/riscof/Makefile +++ b/tests/riscof/Makefile @@ -5,17 +5,20 @@ nproc := $(shell nproc --ignore=1) # Directories arch_dir := $(WALLY)/addins/riscv-arch-test +cvw_arch_dir := $(WALLY)/addins/cvw-riscv-arch-test wally_dir := $(WALLY)/tests/wally-riscv-arch-test work_dir := ./riscof_work work := ./work arch_workdir := $(work)/riscv-arch-test +cvw_arch_workdir := $(work)/cvw-riscv-arch-test wally_workdir := $(work)/wally-riscv-arch-test current_dir := $(shell pwd) # General make rules -.PHONY: all riscv-arch-test wally-riscv-arch-test quad64 clean +.PHONY: all riscv-arch-test wally-riscv-arch-test clean all: riscv-arch-test wally-riscv-arch-test riscv-arch-test: arch32e arch32 arch64 +cvw-riscv-arch-test: cvw-arch32e cvw-arch32 cvw-arch64 wally-riscv-arch-test: wally32 wally64 # Generate config.ini files @@ -28,22 +31,25 @@ arch%: config$$*.ini | $(work_dir) $(arch_workdir) $(MAKE) -f makefile-memfile WORKDIR=$(work_dir)/$@ BITWIDTH=$(patsubst %32e,%32,$*) rsync -a $(work_dir)/$@/rv*/* $(arch_workdir)/rv$(patsubst %64,%64i,$(patsubst %32,%32i,$*))_m || echo "error suppressed" +# Generate cvw-riscv-arch-test targets +# Generate riscv-arch-test targets +cvw-arch%: config$$*.ini | $(work_dir) $(cvw_arch_workdir) + riscof run --work-dir=$(work_dir)/$@ --config=$< --suite=$(cvw_arch_dir)/riscv-test-suite/ --env=$(cvw_arch_dir)/riscv-test-suite/env --no-browser + $(MAKE) -f makefile-memfile WORKDIR=$(work_dir)/$@ BITWIDTH=$(patsubst %32e,%32,$*) + rsync -a $(work_dir)/$@/rv*/* $(cvw_arch_workdir)/rv$(patsubst %64,%64i,$(patsubst %32,%32i,$*)) || echo "error suppressed" + # Generate wally-riscv-arch-test targets wally%: config$$*.ini | $(work_dir) $(wally_workdir) riscof run --work-dir=$(work_dir)/$@ --config=$< --suite=$(wally_dir)/riscv-test-suite/ --env=$(wally_dir)/riscv-test-suite/env --no-browser --no-dut-run $(MAKE) -f makefile-memfile WORKDIR=$(work_dir)/$@ rsync -a $(work_dir)/$@/rv*/* $(wally_workdir)/rv$(patsubst %64,%64i,$(patsubst %32,%32i,$*))_m || echo "error suppressed" -quad64: config64.ini $(wally_dir)/riscv-test-suite/rv64i_m/Q/riscv-ctg/tests | $(work_dir) - riscof run --work-dir=$(work_dir)/$@ --config=$< --suite=$(wally_dir)/riscv-test-suite/rv64i_m/Q/riscv-ctg/tests/ --env=$(wally_dir)/riscv-test-suite/env - $(MAKE) -f makefile-memfile WORKDIR=$(work_dir)/$@ - clean: rm -f config??*.ini rm -rf $(work_dir) rm -rf $(wally_workdir) rm -rf $(arch_workdir) - rm -rf $(submodule_wor_dir) + rm -rf $(cvw_arch_workdir) -$(work_dir) $(arch_workdir) $(wally_workdir): +$(work_dir) $(arch_workdir) $(wally_workdir) $(cvw_arch_workdir): mkdir -p $@