Add in a SimJTAG to connect to OpenOCD's remote-bitbang interface.
This is simpler than JTAGVPI and is supported better by Verilor. It is also the same thing Spike uses.
This commit is contained in:
@ -62,8 +62,9 @@ CONFIGS=AMBAUnitTestConfig TLSimpleUnitTestConfig TLWidthUnitTestConfig
|
||||
endif
|
||||
|
||||
ifeq ($(SUITE), JtagDtmSuite)
|
||||
CONFIGS_32=WithJtagDTM_DefaultRV32Config
|
||||
CONFIGS_64=WithJtagDTM_DefaultConfig
|
||||
PROJECT=freechips.rocketchip.system
|
||||
CONFIGS_32=WithJtagDTMSystem_DefaultRV32Config
|
||||
CONFIGS_64=WithJtagDTMSystem_DefaultConfig
|
||||
CONFIGS += $(CONFIGS_32)
|
||||
CONFIGS += $(CONFIGS_64)
|
||||
endif
|
||||
@ -208,44 +209,68 @@ stamps/%/emulator-torture-$(TORTURE_CONFIG).stamp: stamps/%/emulator-debug.stamp
|
||||
|
||||
# Targets for JTAG DTM full-chain simulation
|
||||
|
||||
OPENOCD_DIR ?= $(RISCV)
|
||||
|
||||
# If this is defined empty, then all tests would run.
|
||||
JTAG_DTM_TEST ?= MemTest64
|
||||
|
||||
ifdef DEBUG
|
||||
JTAG_STAMP_SUFFIX=-debug
|
||||
JTAG_DEBUG_SUFFIX=-debug
|
||||
JTAG_VCDPLUS_32= +vcdplusfile=regression32.vcd
|
||||
JTAG_VCDPLUS_64= +vcdplusfile=regression64.vcd
|
||||
VSIM_JTAG_VCDPLUS_32= +vcdplusfile=regression32.vcd
|
||||
VSIM_JTAG_VCDPLUS_64= +vcdplusfile=regression64.vcd
|
||||
EMULATOR_JTAG_VCDPLUS_32= -v regression32.vcd
|
||||
EMULATOR_JTAG_VCDPLUS_64= -v regression64.vcd
|
||||
OPENOCD_DEBUG= -d
|
||||
else
|
||||
JTAG_STAMP_SUFFIX=-ndebug
|
||||
endif
|
||||
|
||||
stamps/%/jtag-dtm-32-$(JTAG_DTM_TEST).stamp: stamps/%/vsim$(JTAG_STAMP_SUFFIX).stamp
|
||||
stamps/%/vsim-jtag-dtm-32-$(JTAG_DTM_TEST).stamp: stamps/%/vsim$(JTAG_STAMP_SUFFIX).stamp
|
||||
export RISCV=$(RISCV) && $(abspath $(TOP))/riscv-tools/riscv-tests/debug/gdbserver.py \
|
||||
--sim_cmd "$(abspath $(TOP))/vsim/simv-$(PROJECT)-$*$(JTAG_DEBUG_SUFFIX) +verbose $(JTAG_VCDPLUS_32)" \
|
||||
--server_cmd="$(OPENOCD_DIR)/bin/openocd $(OPENOCD_DEBUG) \
|
||||
--s $(OPENOCD_DIR)/share/openocd/scripts" \
|
||||
--freedom-e300-sim \
|
||||
--sim_cmd="$(abspath $(TOP))/vsim/simv-$(PROJECT)-$*$(JTAG_DEBUG_SUFFIX) +verbose $(VSIM_JTAG_VCDPLUS_32)" \
|
||||
--server_cmd="$(RISCV)/bin/openocd $(OPENOCD_DEBUG) \
|
||||
--s $(RISCV)/share/openocd/scripts" \
|
||||
$(abspath $(TOP))/scripts/FreedomSim.py \
|
||||
$(JTAG_DTM_TEST)
|
||||
date > $@
|
||||
|
||||
stamps/%/jtag-dtm-64-$(JTAG_DTM_TEST).stamp: stamps/%/vsim$(JTAG_STAMP_SUFFIX).stamp
|
||||
stamps/%/vsim-jtag-dtm-64-$(JTAG_DTM_TEST).stamp: stamps/%/vsim$(JTAG_STAMP_SUFFIX).stamp
|
||||
export RISCV=$(RISCV) && $(abspath $(TOP))/riscv-tools/riscv-tests/debug/gdbserver.py \
|
||||
--sim_cmd "$(abspath $(TOP))/vsim/simv-$(PROJECT)-$*$(JTAG_DEBUG_SUFFIX) +verbose $(JTAG_VCDPLUS_64)" \
|
||||
--sim_cmdrun "$(abspath $(TOP))/vsim/simv-$(PROJECT)-$*$(JTAG_DEBUG_SUFFIX) +verbose $(VSIM_JTAG_VCDPLUS_64)" \
|
||||
--server_cmd="$(OPENOCD_INSTALL)_$(OPENOCD_VERSION)/bin/openocd $(OPENOCD_DEBUG) \
|
||||
--s $(OPENOCD_INSTALL)_$(OPENOCD_VERSION)/share/openocd/scripts" \
|
||||
--freedom-u500-sim \
|
||||
$(abspath $(TOP))/scripts/FreedomSim.py \
|
||||
$(JTAG_DTM_TEST)
|
||||
date > $@
|
||||
|
||||
JTAG_DTM_32_TEST_STAMPS=$(foreach config,$(CONFIGS_32),stamps/$(config)/jtag-dtm-32-$(JTAG_DTM_TEST).stamp)
|
||||
JTAG_DTM_64_TEST_STAMPS=$(foreach config,$(CONFIGS_64),stamps/$(config)/jtag-dtm-64-$(JTAG_DTM_TEST).stamp)
|
||||
stamps/%/emulator-jtag-dtm-32-$(JTAG_DTM_TEST).stamp: stamps/%/emulator$(JTAG_STAMP_SUFFIX).stamp
|
||||
export RISCV=$(RISCV) && $(abspath $(TOP))/riscv-tools/riscv-tests/debug/gdbserver.py \
|
||||
--sim_cmd "$(abspath $(TOP))/emulator/emulator-$(PROJECT)-$*$(JTAG_DEBUG_SUFFIX) +verbose $(EMULATOR_JTAG_VCDPLUS_32) dummybin | tee emulator.log" \
|
||||
--server_cmd="$(RISCV)/bin/openocd $(OPENOCD_DEBUG) \
|
||||
--s $(RISCV)/share/openocd/scripts" \
|
||||
$(abspath $(TOP))/scripts/FreedomSim.py \
|
||||
$(JTAG_DTM_TEST)
|
||||
date > $@
|
||||
|
||||
jtag-dtm-tests-32 : $(JTAG_DTM_32_TEST_STAMPS)
|
||||
jtag-dtm-tests-64 : $(JTAG_DTM_64_TEST_STAMPS)
|
||||
stamps/%/emulator-jtag-dtm-64-$(JTAG_DTM_TEST).stamp: stamps/%/emulator$(JTAG_STAMP_SUFFIX).stamp
|
||||
export RISCV=$(RISCV) && $(abspath $(TOP))/riscv-tools/riscv-tests/debug/gdbserver.py \
|
||||
--sim_cmd "$(abspath $(TOP))/emulator/emulator-$(PROJECT)-$*$(JTAG_DEBUG_SUFFIX) +verbose $(EMULATOR_JTAG_VCDPLUS_64) dummybin | tee emulator.log" \
|
||||
--server_cmd="$(RISCV)/bin/openocd $(OPENOCD_DEBUG) \
|
||||
--s $(RISCV)/share/openocd/scripts" \
|
||||
$(abspath $(TOP))/scripts/FreedomSim.py \
|
||||
$(JTAG_DTM_TEST)
|
||||
date > $@
|
||||
|
||||
VSIM_JTAG_DTM_32_TEST_STAMPS=$(foreach config,$(CONFIGS_32),stamps/$(config)/vsim-jtag-dtm-32-$(JTAG_DTM_TEST).stamp)
|
||||
VSIM_JTAG_DTM_64_TEST_STAMPS=$(foreach config,$(CONFIGS_64),stamps/$(config)/vsim-jtag-dtm-64-$(JTAG_DTM_TEST).stamp)
|
||||
|
||||
EMULATOR_JTAG_DTM_32_TEST_STAMPS=$(foreach config,$(CONFIGS_32),stamps/$(config)/emulator-jtag-dtm-32-$(JTAG_DTM_TEST).stamp)
|
||||
EMULATOR_JTAG_DTM_64_TEST_STAMPS=$(foreach config,$(CONFIGS_64),stamps/$(config)/emulator-jtag-dtm-64-$(JTAG_DTM_TEST).stamp)
|
||||
|
||||
vsim-jtag-dtm-tests-32 : $(VSIM_JTAG_DTM_32_TEST_STAMPS)
|
||||
vsim-jtag-dtm-tests-64 : $(VSIM_JTAG_DTM_64_TEST_STAMPS)
|
||||
|
||||
emulator-jtag-dtm-tests-32 : $(EMULATOR_JTAG_DTM_32_TEST_STAMPS)
|
||||
emulator-jtag-dtm-tests-64 : $(EMULATOR_JTAG_DTM_64_TEST_STAMPS)
|
||||
|
||||
# Targets for JTAG DTM full-chain simulation
|
||||
jtag-dtm-regression: jtag-dtm-tests-32 jtag-dtm-tests-64
|
||||
vsim-jtag-dtm-regression: vsim-jtag-dtm-tests-32 vsim-jtag-dtm-tests-64
|
||||
emulator-jtag-dtm-regression: emulator-jtag-dtm-tests-32 emulator-jtag-dtm-tests-64
|
||||
|
Reference in New Issue
Block a user