xref: /XiangShan/src/main/scala/device/standalone/standalone_device.mk (revision e3da8bad334fc71ba0d72f0607e2e93245ddaece)
1720dd621STang Haojinifneq ($(DEVICE_PREFIX),)
2720dd621STang HaojinRELEASE_ARGS += --xstop-prefix $(DEVICE_PREFIX)
3720dd621STang HaojinDEBUG_ARGS += --xstop-prefix $(DEVICE_PREFIX)
4720dd621STang HaojinPLDM_ARGS += --xstop-prefix $(DEVICE_PREFIX)
5720dd621STang Haojinendif
6720dd621STang Haojin
7340ef6e7STang HaojinSTANDALONE_DEVICES = StandAloneCLINT StandAlonePLIC StandAloneDebugModule
8340ef6e7STang HaojinSTANDALONE_DEVICES_PATH = $(shell for module in $(STANDALONE_DEVICES); do echo $(RTL_DIR)/$$module/$(DEVICE_PREFIX)$$module.$(RTL_SUFFIX); done)
9340ef6e7STang Haojin
10720dd621STang Haojinifeq ($(DEVICE_TL),1)
11720dd621STang HaojinDEVICE_ARGS += --use-tl
12720dd621STang Haojinendif
13720dd621STang Haojinifeq ($(DEVICE_AXI4),1)
14720dd621STang HaojinDEVICE_ARGS += --use-axi4
15720dd621STang Haojinendif
16720dd621STang Haojin
17720dd621STang Haojinifneq ($(DEVICE_HART_NUM),)
18720dd621STang HaojinNUM_CORES = $(DEVICE_HART_NUM)
19720dd621STang Haojinendif
20720dd621STang Haojin
21720dd621STang HaojinDEVICE_BASE_ADDR ?= -1
22720dd621STang HaojinDEVICE_ADDR_WIDTH ?= -1
23720dd621STang HaojinDEVICE_DATA_WIDTH ?= 64
24720dd621STang Haojin
25340ef6e7STang Haojin$(STANDALONE_DEVICES): $(RTL_DIR)/$(GOALS)/$(DEVICE_PREFIX)$(GOALS).$(RTL_SUFFIX)
26720dd621STang Haojin
27720dd621STang Haojin$(STANDALONE_DEVICES_PATH): $(SCALA_FILE)
28720dd621STang Haojin	echo $@
29720dd621STang Haojin	echo $(notdir $(@D))
30720dd621STang Haojin	mkdir -p $(@D)
31*e3da8badSTang Haojin	$(TIME_CMD) mill -i xiangshan.runMain device.standalone.Main \
32720dd621STang Haojin		-td $(@D) --num-cores $(NUM_CORES) $(RELEASE_ARGS) $(DEVICE_ARGS) \
33720dd621STang Haojin		--standalone-device $(GOALS) --device-base-addr $(DEVICE_BASE_ADDR) \
34720dd621STang Haojin		--device-addr-width $(DEVICE_ADDR_WIDTH) --device-data-width $(DEVICE_DATA_WIDTH)
35720dd621STang Haojin	@git log -n 1 >> .__head__
36720dd621STang Haojin	@git diff >> .__diff__
37720dd621STang Haojin	@sed -i 's/^/\/\// ' .__head__
38720dd621STang Haojin	@sed -i 's/^/\/\//' .__diff__
39720dd621STang Haojin	@cat .__head__ .__diff__ $@ > .__out__
40720dd621STang Haojin	@mv .__out__ $@
41720dd621STang Haojin	@rm .__head__ .__diff__
42