From 235703e8062fd7e4b0209a3b97025c2069023f00 Mon Sep 17 00:00:00 2001 From: Sam O'Brien Date: Wed, 9 Jun 2021 09:28:22 -0500 Subject: [PATCH] fpga: tools: Fix part selection in setupenv The script setupenv_base.sh, which is used to setup the development environmnet in the open source toolchain, adds some functions to the shell that are used to interact with vivado. Some of the functions were looking in the wrong argument for the product name. This commit fixes the bug. In addition, supplying an incorrect part name returned a rather opaque error message. This commit also fixes the error handling so that the intended error message is displayed. Signed-off-by: Sam O'Brien Original-commit: 471de61e4d9e53a038942f21f61d4b481b5f9853 --- tools/scripts/setupenv_base.sh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/tools/scripts/setupenv_base.sh b/tools/scripts/setupenv_base.sh index 6ca9ff6..cb0c546 100644 --- a/tools/scripts/setupenv_base.sh +++ b/tools/scripts/setupenv_base.sh @@ -325,8 +325,8 @@ function viv_create_ip { ip_name=$1 ip_dir=$(readlink -f $2) ip_vlnv=$3 - part_name=$(python $REPO_BASE_PATH/tools/scripts/viv_gen_part_id.py "${PRODUCT_ID_MAP[$2]}") - if [[ -z $part_name ]]; then + part_name=$(python $REPO_BASE_PATH/tools/scripts/viv_gen_part_id.py "${PRODUCT_ID_MAP[$4]}") + if [[ $? -ne 0 ]]; then echo "ERROR: Invalid product name $4. Supported: ${!PRODUCT_ID_MAP[@]}" return 1 fi @@ -376,6 +376,10 @@ function viv_modify_bd { bd_path=$(readlink -f $1) part_name=$(python $REPO_BASE_PATH/tools/scripts/viv_gen_part_id.py "${PRODUCT_ID_MAP[$2]}") + if [[ $? -ne 0 ]]; then + echo "ERROR: Invalid product name $2. Supported: ${!PRODUCT_ID_MAP[@]}" + return 1 + fi if [[ -f $bd_path ]]; then $VIVADO_EXEC -mode gui -source $(resolve_viv_path $VIV_IP_UTILS) -nolog -nojournal -tclargs modify $part_name $(resolve_viv_path $bd_path) else @@ -396,6 +400,10 @@ function viv_modify_tcl_bd { src_path=$(readlink -f $1) part_name=$(python $REPO_BASE_PATH/tools/scripts/viv_gen_part_id.py "${PRODUCT_ID_MAP[$2]}") + if [[ $? -ne 0 ]]; then + echo "ERROR: Invalid product name $2. Supported: ${!PRODUCT_ID_MAP[@]}" + return 1 + fi bd_ip_repo="${src_path%/top*}/lib/vivado_ipi" if [[ -f $src_path ]]; then $VIVADO_EXEC -mode gui -source $(resolve_viv_path $VIV_IP_UTILS) -nolog -nojournal -tclargs modify_bdtcl $part_name $(resolve_viv_path $src_path) $(resolve_viv_path $bd_ip_repo) @@ -416,8 +424,8 @@ function viv_ls_ip { return 1 fi - part_name=$(python $REPO_BASE_PATH/tools/scripts/viv_gen_part_id.py "${PRODUCT_ID_MAP[$2]}") - if [[ -z $part_name ]]; then + part_name=$(python $REPO_BASE_PATH/tools/scripts/viv_gen_part_id.py "${PRODUCT_ID_MAP[$1]}") + if [[ $? -ne 0 ]]; then echo "ERROR: Invalid product name $1. Supported: ${!PRODUCT_ID_MAP[@]}" return 1 fi