Commit b2f35c06 authored by Lucas Russo's avatar Lucas Russo

src/*,dev_io/*: improve decouple between infrastructure and applications

Now, when adding a new application (e.g., Photon BPM)
we just need to add a new folder inside src/apps and
adjust the src/apps/<app_name>/<app_name>.mk Makefile
parent d7940824
......@@ -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
......
#!/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"
......
......@@ -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);
}
......
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 =
......@@ -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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment