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 <sam.obrien@ni.com>


Original-commit: 471de61e4d9e53a038942f21f61d4b481b5f9853
This commit is contained in:
Sam O'Brien
2021-06-10 08:33:22 -05:00
committed by Wade Fife
parent 3b1d62928d
commit 235703e806
+12 -4
View File
@@ -325,8 +325,8 @@ function viv_create_ip {
ip_name=$1 ip_name=$1
ip_dir=$(readlink -f $2) ip_dir=$(readlink -f $2)
ip_vlnv=$3 ip_vlnv=$3
part_name=$(python $REPO_BASE_PATH/tools/scripts/viv_gen_part_id.py "${PRODUCT_ID_MAP[$2]}") part_name=$(python $REPO_BASE_PATH/tools/scripts/viv_gen_part_id.py "${PRODUCT_ID_MAP[$4]}")
if [[ -z $part_name ]]; then if [[ $? -ne 0 ]]; then
echo "ERROR: Invalid product name $4. Supported: ${!PRODUCT_ID_MAP[@]}" echo "ERROR: Invalid product name $4. Supported: ${!PRODUCT_ID_MAP[@]}"
return 1 return 1
fi fi
@@ -376,6 +376,10 @@ function viv_modify_bd {
bd_path=$(readlink -f $1) bd_path=$(readlink -f $1)
part_name=$(python $REPO_BASE_PATH/tools/scripts/viv_gen_part_id.py "${PRODUCT_ID_MAP[$2]}") 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 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) $VIVADO_EXEC -mode gui -source $(resolve_viv_path $VIV_IP_UTILS) -nolog -nojournal -tclargs modify $part_name $(resolve_viv_path $bd_path)
else else
@@ -396,6 +400,10 @@ function viv_modify_tcl_bd {
src_path=$(readlink -f $1) src_path=$(readlink -f $1)
part_name=$(python $REPO_BASE_PATH/tools/scripts/viv_gen_part_id.py "${PRODUCT_ID_MAP[$2]}") 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" bd_ip_repo="${src_path%/top*}/lib/vivado_ipi"
if [[ -f $src_path ]]; then 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) $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 return 1
fi fi
part_name=$(python $REPO_BASE_PATH/tools/scripts/viv_gen_part_id.py "${PRODUCT_ID_MAP[$2]}") part_name=$(python $REPO_BASE_PATH/tools/scripts/viv_gen_part_id.py "${PRODUCT_ID_MAP[$1]}")
if [[ -z $part_name ]]; then if [[ $? -ne 0 ]]; then
echo "ERROR: Invalid product name $1. Supported: ${!PRODUCT_ID_MAP[@]}" echo "ERROR: Invalid product name $1. Supported: ${!PRODUCT_ID_MAP[@]}"
return 1 return 1
fi fi