Skip to content

Commit

Permalink
demo of template that supporting arbitrary user paramters passing dow…
Browse files Browse the repository at this point in the history
…n from toplevel.

the submodule developer decide how to use it
  • Loading branch information
Sunfe authored and FelixWongSiewAn committed Mar 28, 2024
1 parent 1c61340 commit 7f17459
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 9 deletions.
4 changes: 1 addition & 3 deletions sm_soc_devkit_ghrd/Makefile
Expand Up @@ -293,9 +293,7 @@ MODULES := $(shell cat $(MODULES_FILE))
MODULE_BUILD := $(foreach n, $(MODULES), $(n).build)

$(MODULE_BUILD): quartus_generate_qsf_qpf quartus_generate_top
$(info to send qsys_tcl_arg is $(QSYS_TCL_ARGS))
$(info to send user_config_update is $(USER_CONFIG_UPDATE))
@$(MAKE) QSYS_ARGS='$(QSYS_ARGS)' QSYS_TCL_ARGS='$(QSYS_TCL_ARGS)' $(USER_CONFIG_UPDATE) -C $(subst .build,,$@) generate_from_tcl
@$(MAKE) QSYS_ARGS='$(QSYS_ARGS)' QSYS_TCL_ARGS='$(QSYS_TCL_ARGS)' USER_CONFIG='$(USER_CONFIG_UPDATE)' $(USER_CONFIG_UPDATE) -C $(subst .build,,$@) generate_from_tcl

.PHONY: generate_submodule
generate_submodule: $(MODULE_BUILD)
Expand Down
32 changes: 26 additions & 6 deletions sm_soc_devkit_ghrd/hps_subsys/Makefile
@@ -1,5 +1,4 @@
########################################################################
# copyright
######################################################################## # copyright
#
#
########################################################################
Expand All @@ -21,6 +20,13 @@
# HPS_HBME_EN :
# - 0: disable [default]
# - 1: enable
# hps_other_var0 :
# - val00: val00_description [default]
# - val01: val01_description
# hps_other_var1 :
# - val10: val10_description [default]
# - val11: val11_description
#
# ->
#
#########################################################################
Expand All @@ -33,21 +39,35 @@ ENABLE := 1
DISABLE := 0
SPACE :=
SLASH := /
EQ := =

CURRENT_FOLDER := $(lastword $(subst $(SLASH), $(SPACE),$(PWD)))
PROJECT_ROOT := $(PWD)/../
GHRD_CONFIG_FILE := $(PROJECT_ROOT)/build/config.$(CURRENT_FOLDER)
GHRD_HELP_FILE := $(PROJECT_ROOT)/build/help.$(CURRENT_FOLDER)
GHRD_SCRIPT_FILE := $(PROJECT_ROOT)/scripts/config_parzer.awk

$(info folder name is $(CURRENT_FOLDER))
$(info received qsys_tcl_arg is $(QSYS_TCL_ARGS))

QSYS_ARGS_SUB := $(QSYS_ARGS)
QSYS_TCL_ARGS_SUB := $(QSYS_TCL_ARGS)

define filter_userval
$(strip $(foreach param, $(USER_CONFIG), $(if $(findstring $(strip $1),$(param)), $(param),$(EMPTY))))
endef

define append_args
QSYS_TCL_ARGS_SUB += set $(word 1, $(subst $(EQ), $(EMPTY), $(call filter_userval,$1))) $(word 2, $(subst $(EQ), $(EMPTY), $(call filter_userval,$1)));
endef

ifneq ($(USER_CONFIG),)
$(eval $(call append_args, hps_other_var0))
$(eval $(call append_args, hps_other_var1))
endif

.PHONY: generate_from_tcl
generate_from_tcl:
ifeq ($(HPS_EN), $(ENABLE))
@qsys-script $(shell echo $(QSYS_ARGS) | sed 's/quartus-project=/quartus-project=..\//g') --script=./construct_subsys_hps.tcl --cmd="$(QSYS_TCL_ARGS)"
else
@qsys-script $(shell echo $(QSYS_ARGS) | sed 's/quartus-project=/quartus-project=..\//g') --script=./construct_subsys_hps.tcl --cmd="$(QSYS_TCL_ARGS_SUB)"
@echo "$(CURRENT_FOLDER) does not be enabled, skip."
endif
@echo "generate_from_tcl for $(CURRENT_FOLDER) done!"
Expand Down

0 comments on commit 7f17459

Please sign in to comment.