diff --git a/Makefile b/Makefile index 34a6f320c4ad059fc7926ba387136591df547445..6765abae73f083237ff35ea0773ba6bda1ea88f8 100644 --- a/Makefile +++ b/Makefile @@ -13,6 +13,8 @@ MAKE ?= make # Select board in which we will work. Options are: ml605 or afcv3 BOARD ?= ml605 +# Select which application we want to generate. Options are: ebpm +APP ?= ebpm # Select if we want to have the AFCv3 DDR memory shrink to 2^28 or the full size 2^32. Options are: (y)es ot (n)o. # This is a TEMPORARY fix until the AFCv3 FPGA firmware is fixed. If unsure, select (y)es. SHRINK_AFCV3_DDR_SIZE ?= y @@ -29,10 +31,10 @@ FMC130M_4CH_EEPROM_PROGRAM ?= WITH_DEV_MNGR ?= y # Selects the AFE RFFE version. Options are: 2 AFE_RFFE_TYPE ?= 2 -# Selects if we want to compile DEVIO Config. Options are: y(es) or n(o). +# Selects if we want to compile specfic APP Config. Options are: y(es) or n(o). # If selected, the FPGA firmware must have the AFC diagnostics module # synthesized. -WITH_DEVIO_CFG ?= y +WITH_APP_CFG ?= y # Selects the install location of the config file PREFIX ?= /usr/local export PREFIX @@ -117,9 +119,9 @@ ifeq ($(AFE_RFFE_TYPE),2) CFLAGS_USR += -D__AFE_RFFE_V2__ endif -# Compile DEVIO Config or not -ifeq ($(WITH_DEVIO_CFG),y) -CFLAGS_USR += -D__WITH_DEVIO_CFG__ +# Compile APP Config or not +ifeq ($(WITH_APP_CFG),y) +CFLAGS_USR += -D__WITH_APP_CFG__ endif ifneq ($(CFG_DIR),) @@ -189,6 +191,7 @@ include $(SRC_DIR)/dev_io/dev_io.mk include $(SRC_DIR)/msg/msg.mk include $(SRC_DIR)/revision/revision.mk include $(SRC_DIR)/boards/$(BOARD)/board.mk +include $(SRC_DIR)/apps/$(APP)/$(APP).mk # Project boards boards_INCLUDE_DIRS = -Iinclude/boards/$(BOARD) @@ -205,32 +208,26 @@ override CFLAGS += $(CFLAGS_USR) $(CFLAGS_PLATFORM) $(CFLAGS_DEBUG) $(CPPFLAGS) override LDFLAGS += $(LDFLAGS_PLATFORM) # Output modules -OUT = $(dev_mngr_OUT) $(dev_io_OUT) +OUT = $(dev_mngr_OUT) $($(APP)_OUT) # All possible output modules -ALL_OUT = $(dev_mngr_all_OUT) $(dev_io_all_OUT) +ALL_OUT = $(dev_mngr_all_OUT) $($(APP)_all_OUT) # Out objects dev_mngr_OBJS += $(dev_mngr_core_OBJS) $(debug_OBJS) \ $(exp_ops_OBJS) $(thsafe_msg_zmq_OBJS) \ $(ll_io_utils_OBJS) $(dev_io_core_utils_OBJS) -dev_io_OBJS += $(dev_io_core_OBJS) $(ll_io_OBJS) \ +$(APP)_OBJS += $(dev_io_core_OBJS) $(ll_io_OBJS) \ $(sm_io_OBJS) $(msg_OBJS) $(board_OBJS) -dev_io_cfg_OBJS += $(dev_io_core_OBJS) $(ll_io_OBJS) \ - $(sm_io_OBJS) $(msg_OBJS) $(board_OBJS) +$(APP)_cfg_OBJS += $(dev_io_core_OBJS) $(ll_io_OBJS) \ + $(sm_io_OBJS) $(msg_OBJS) $(board_OBJS) # Specific libraries for OUT targets dev_mngr_LIBS = dev_mngr_STATIC_LIBS = -dev_io_LIBS = -lbsmp -dev_io_STATIC_LIBS = - -dev_io_cfg_LIBS = -lbsmp -dev_io_cfg_STATIC_LIBS = - .SECONDEXPANSION: # Save a git repository description @@ -242,8 +239,8 @@ OBJS_all = $(ll_io_OBJS) \ $(sm_io_OBJS) \ $(msg_OBJS) \ $(dev_mngr_OBJS) \ - $(dev_io_OBJS) \ - $(dev_io_cfg_OBJS) \ + $($(APP)_OBJS) \ + $($(APP)_cfg_OBJS) \ $(revision_OBJS) # Sources diff --git a/compile.sh b/compile.sh index 9e451637a139846c1dd1c0772cfb7b86cff92bce..982db0d1ad5e097ce8426727624ef4f053bb01e3 100755 --- a/compile.sh +++ b/compile.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash VALID_BOARDS_STR="Valid values are: \"ml605\" and \"afcv3\"." +VALID_APPS_STR="Valid values are: \"ebpm\"." VALID_WITH_EXAMPLES_STR="Valid values are: \"with_examples\" or \"without_examples\"." VALID_WITH_LIBS_LINK_STR="Valid values are: \"with_libs_link\" or \"without_libs_link\"." @@ -21,14 +22,27 @@ if [ "$BOARD" != "afcv3" ] && [ "$BOARD" != "ml605" ]; then exit 1 fi -WITH_EXAMPLES=$2 +# Select board in which we will work. Options are: ml605 or afcv3 +APP=$2 + +if [ -z "$APP" ]; then + echo "\"APP\" variable unset. "$VALID_APPS_STR + exit 1 +fi + +if [ "$APP" != "ebpm" ]; then + echo "Unsupported application. "$VALID_APPS_STR + exit 1 +fi + +WITH_EXAMPLES=$3 if [ -n "$WITH_EXAMPLES" ] && [ "$WITH_EXAMPLES" != "with_examples" ] && [ "$WITH_EXAMPLES" != "without_examples" ]; then echo "Wrong variable value. "$VALID_WITH_EXAMPLES_STR exit 1 fi -WITH_LIBS_LINK=$3 +WITH_LIBS_LINK=$4 if [ -n "$WITH_LIBS_LINK" ] && [ "$WITH_LIBS_LINK" != "with_libs_link" ] && [ "$WITH_LIBS_LINK" != "without_libs_link" ]; then echo "Wrong variable value. "$VALID_WITH_LIBS_LINK_STR @@ -37,7 +51,7 @@ fi EXTRA_FLAGS=() # Get all other arguments -for item in "${@:4}" +for item in "${@:5}" do EXTRA_FLAGS+=("${item}") done @@ -65,7 +79,7 @@ AFE_RFFE_TYPE=2 # Selects if we want to compile DEVIO Config. Options are: y(es) or n(o). # If selected, the FPGA firmware must have the AFC diagnostics module # synthesized. -WITH_DEVIO_CFG=y +WITH_APP_CFG=y # Selects the install location of the config file CFG_FILENAME=/etc/bpm_sw/bpm_sw.cfg # Selects the install location of the config file @@ -93,6 +107,7 @@ COMMAND_HAL="\ make \ ${EXTRA_FLAGS[@]} \ BOARD=${BOARD} \ + APP=${APP} \ SHRINK_AFCV3_DDR_SIZE=${SHRINK_AFCV3_DDR_SIZE} \ ERRHAND_DBG=${ERRHAND_DBG} \ ERRHAND_MIN_LEVEL=${ERRHAND_MIN_LEVEL} \ @@ -102,7 +117,7 @@ COMMAND_HAL="\ FMC130M_4CH_EEPROM_PROGRAM=${FMC130M_4CH_EEPROM_PROGRAM} \ WITH_DEV_MNGR=${WITH_DEV_MNGR} \ AFE_RFFE_TYPE=${AFE_RFFE_TYPE} \ - WITH_DEVIO_CFG=${WITH_DEVIO_CFG} \ + WITH_APP_CFG=${WITH_APP_CFG} \ CFG_DIR=${CFG_DIR} && \ make CFG=${CFG} ${EXTRA_FLAGS[@]} install" diff --git a/src/dev_io/dev_io.c b/src/apps/ebpm/dev_io.c similarity index 99% rename from src/dev_io/dev_io.c rename to src/apps/ebpm/dev_io.c index 60b05440b531fa03d13bd702d76bbff34196bae1..51d5638ae15a35d8b11193b290eaf9665acbe74e 100644 --- a/src/dev_io/dev_io.c +++ b/src/apps/ebpm/dev_io.c @@ -261,7 +261,7 @@ int main (int argc, char *argv[]) /* Spawn the Configure DEVIO to get the uTCA slot number. This is only * available in AFCv3 */ -#if defined (__BOARD_AFCV3__) && (__WITH_DEVIO_CFG__) +#if defined (__BOARD_AFCV3__) && (__WITH_APP_CFG__) int child_devio_cfg_pid = 0; if (llio_type == PCIE_DEV) { /* Argument options are "process name", "device type" and @@ -455,7 +455,7 @@ err_devio_log_filename_alloc: hutils_wait_chld (); devio_destroy (&devio); err_card_slot: -#if defined (__BOARD_AFCV3__) && (__WITH_DEVIO_CFG__) +#if defined (__BOARD_AFCV3__) && (__WITH_APP_CFG__) if (client_cfg != NULL) { bpm_client_destroy (&client_cfg); } diff --git a/src/dev_io/dev_io_cfg.c b/src/apps/ebpm/dev_io_cfg.c similarity index 100% rename from src/dev_io/dev_io_cfg.c rename to src/apps/ebpm/dev_io_cfg.c diff --git a/src/apps/ebpm/ebpm.mk b/src/apps/ebpm/ebpm.mk new file mode 100644 index 0000000000000000000000000000000000000000..3a45a2250a6ed26e3db8714d5d063b6503052e84 --- /dev/null +++ b/src/apps/ebpm/ebpm.mk @@ -0,0 +1,23 @@ +ebpm_DIR = $(SRC_DIR)/apps/ebpm + +ebpm_OBJS = $(ebpm_DIR)/dev_io.o + +ebpm_OUT = ebpm + +ifeq ($(WITH_APP_CFG),y) +ebpm_cfg_OBJS = $(ebpm_DIR)/dev_io_cfg.o +ebpm_cfg_OUT = ebpm_cfg +else +ebpm_cfg_OBJS = +ebpm_cfg_OUT = +endif + +ebpm_OUT += $(ebpm_cfg_OUT) + +ebpm_all_OUT = ebpm ebpm_cfg + +ebpm_LIBS = -lbsmp +ebpm_STATIC_LIBS = + +ebpm_cfg_LIBS = -lbsmp +ebpm_cfg_STATIC_LIBS = diff --git a/src/dev_io/dev_io.mk b/src/dev_io/dev_io.mk index 7232d923257cfe568a3a5369e9d16f78354843f6..65e2e572cef911c3d7270b23c62e7385aba684e1 100644 --- a/src/dev_io/dev_io.mk +++ b/src/dev_io/dev_io.mk @@ -9,18 +9,3 @@ dev_io_core_OBJS = $(dev_io_DIR)/dev_io_core.o \ $(dev_io_DIR)/dev_io_err.o \ $(dev_io_core_utils_OBJS) -dev_io_OBJS = $(dev_io_DIR)/dev_io.o - -dev_io_OUT = dev_io - -ifeq ($(WITH_DEVIO_CFG),y) -dev_io_cfg_OBJS = $(dev_io_DIR)/dev_io_cfg.o -dev_io_cfg_OUT = dev_io_cfg -else -dev_io_cfg_OBJS = -dev_io_cfg_OUT = -endif - -dev_io_OUT += $(dev_io_cfg_OUT) - -dev_io_all_OUT = dev_io dev_io_cfg