[oe] [meta-xilinx 1/2] xilinx-boot: Refactor recipe to add support for Xilinx ISE 14.1.

Elvis Dowson elvis.dowson at gmail.com
Sun Jun 24 16:54:17 UTC 2012


Hi Khem,

On Jun 24, 2012, at 8:32 PM, Khem Raj wrote:

>> Ensure that you reconfigure your shell to use bash instead of dash while
>> building with Ubuntu 12.04 LTS.
> 
> why is this needed? may be you can fix the scripts to not have bashism

I tired to use a . (dot) instead of the source keyword, but ran into some errors, perhaps because of the xilinx settings64.sh script. I posted the errors in an earlier email, I'll reproduce that mail below, along with the xilinx settings64.sh script

Error message

For the following code snippet:

	if   [ "${XILINX_VER}" \> "14" ]; then
		bbnote "XILINX_VER ${XILINX_VER}, script location ${XILINX_LOC}/${EDK_SCRIPT}"
		source ${XILINX_LOC}/${EDK_SCRIPT} ${XILINX_LOC}
	fi

I get the following error:

DEBUG: Executing python function sstate_task_prefunc
DEBUG: Python function sstate_task_prefunc finished
DEBUG: Executing shell function do_deploy
ERROR: Function failed: do_deploy (see /tool/yocto/poky/build/tmp/work/ppc440-poky-linux/u-boot-xilinx-v2012.04.01-r16/temp/log.do_deploy.15616 for further information)
NOTE: Deploying uboot elf image to /project/xilinx-ml507
NOTE: Xilinx design tools installed in /tool/xilinx/14.1/ISE_DS
NOTE: Generate system ace image
NOTE: EDK_SCRIPT settings64.sh
NOTE: XILINX_VER 14.1, script location /tool/xilinx/14.1/ISE_DS/settings64.sh
/tool/yocto/poky/build/tmp/work/ppc440-poky-linux/u-boot-xilinx-v2012.04.01-r16/temp/run.do_deploy.15616: 129: /tool/yocto/poky/build/tmp/work/ppc440-poky-linux/u-boot-xilinx-v2012.04.01-r16/temp/run.do_deploy.15616: source: not found

if I replace the source keyword with a . (dot) 

	if   [ "${XILINX_VER}" \> "14" ]; then
		bbnote "XILINX_VER ${XILINX_VER}, script location ${XILINX_LOC}/${EDK_SCRIPT}"
		. ${XILINX_LOC}/${EDK_SCRIPT} ${XILINX_LOC}
	fi

it executes the scripts but gives the following error:

NOTE: XILINX_VER 14.1, script location /tool/xilinx/14.1/ISE_DS/settings64.sh
/tool/yocto/poky/build/tmp/work/ppc440-poky-linux/u-boot-xilinx-v2012.04.01-r16/temp/run.do_deploy.7879: 12: [: /tool/yocto/poky/build/tmp/work/ppc440-poky-linux/u-boot-xilinx-v2012.04.01-r16/temp/run.do_deploy.7879: unexpected operator
. /tool/xilinx/14.1/ISE_DS/common/.settings64.sh /tool/xilinx/14.1/ISE_DS/common
. /tool/xilinx/14.1/ISE_DS/EDK/.settings64.sh /tool/xilinx/14.1/ISE_DS/EDK
. /tool/xilinx/14.1/ISE_DS/common/CodeSourcery/.settings64.sh /tool/xilinx/14.1/ISE_DS/common/CodeSourcery
. /tool/xilinx/14.1/ISE_DS/PlanAhead/.settings64.sh /tool/xilinx/14.1/ISE_DS/PlanAhead
. /tool/xilinx/14.1/ISE_DS/../../Vivado/2012.1/.settings64.sh /tool/xilinx/14.1/ISE_DS/../../Vivado/2012.1
. /tool/xilinx/14.1/ISE_DS/ISE/.settings64.sh /tool/xilinx/14.1/ISE_DS/ISE
. /tool/xilinx/14.1/ISE_DS/SysGen/.settings64.sh /tool/xilinx/14.1/ISE_DS/SysGen

Xilinx settings64.sh script

# Copyright (c) 1995-2012 Xilinx, Inc.  All rights reserved.

XIL_ARG_=$_
SETTINGS_FILE=.settings64.sh
XIL_SCRIPT_LOC="/tool/xilinx/14.1/ISE_DS"
if [ $# != 0 ]; then
   # The first argument is the location of Xilinx Installation.
   # Don't detect the installation location.
   XIL_SCRIPT_LOC="$1"
else
   #  XIL_SCRIPT_LOC should point to script location
   if [ "$0" == "ksh" ]; then
      XIL_SCRIPT_LOC_TMP_UNI=`readlink -f ${XIL_ARG_}`
   else
      XIL_SCRIPT_LOC_TMP_UNI=$BASH_SOURCE
   fi
   XIL_SCRIPT_LOC_TMP_UNI=${XIL_SCRIPT_LOC_TMP_UNI%/*}
   if [ "$XIL_SCRIPT_LOC_TMP_UNI" != "" ]; then
      if [ "$XIL_SCRIPT_LOC_TMP_UNI" == "settings64.sh" ]; then
         XIL_SCRIPT_LOC_TMP_UNI="./"
      fi
      XIL_SCRIPT_LOC_TMP_UNI=`readlink -f ${XIL_SCRIPT_LOC_TMP_UNI}`
      if [ $? == 0 ]; then
         XIL_SCRIPT_LOC=${XIL_SCRIPT_LOC_TMP_UNI}
      fi
   fi
   unset XIL_SCRIPT_LOC_TMP_UNI
fi


xlnxInstLocList=""

xlnxInstLocList="${xlnxInstLocList} common"
xlnxInstLocList="${xlnxInstLocList} EDK"
xlnxInstLocList="${xlnxInstLocList} common/CodeSourcery"
xlnxInstLocList="${xlnxInstLocList} PlanAhead"
xlnxInstLocList="${xlnxInstLocList} ../../Vivado/2012.1"
xlnxInstLocList="${xlnxInstLocList} ISE"
xlnxInstLocList="${xlnxInstLocList} SysGen"
XIL_SCRIPT_LOC_TMP_UNI=${XIL_SCRIPT_LOC}
for i in $xlnxInstLocList
do
	d="${XIL_SCRIPT_LOC_TMP_UNI}/$i"
	sfn="$d/$SETTINGS_FILE"
	if [ -e  "$sfn" ]; then
		echo . "$sfn" "$d"
		. "$sfn" "$d"
	fi
done

Best regards,

Elvis Dowson


More information about the Openembedded-devel mailing list