#!/usr/bin/bash set -u # ------------------------------------------------------------------------------ # READ FIRMWARE LIST # ------------------------------------------------------------------------------ source $REVOLUTION_SDK_ROOT/x86/bin/ndrun_fwlist # ------------------------------------------------------------------------------ # SET FIRMWARE # ------------------------------------------------------------------------------ if [ $# -eq 0 ] then echo "usage: setfirmware " echo " Sets the firmware (standard or extention)." echo " * extention firmware : ${FW_FOR_EXTENSION}" echo " * standard firmware : ${FW_FOR_STANDARD}" exit 0 fi if [ "$NDEV" = "" ] then echo "NDEV is not found. Do nothing and exit." exit 0 fi echo "NDEV detected" SDK_ROOT=`cygpath -am ${REVOLUTION_SDK_ROOT}` FIRMWARE_VERSION=$1 case $FIRMWARE_VERSION in *.*.*.* ) echo "" echo "Setting firmware version to $FIRMWARE_VERSION ..." echo "" echo "Error: Worng version format. Do nothing and exit." exit 0 ;; *.*.* ) echo "" echo "Setting firmware version to $FIRMWARE_VERSION ..." echo "" make -C ${SDK_ROOT}/RVL/boot FIRMWARE_VERSION=$FIRMWARE_VERSION echo mv -f ${SDK_ROOT}/RVL/boot/apploader.${FIRMWARE_VERSION}.img ${SDK_ROOT}/RVL/boot/apploader${FIRMWARE_VERSION}.img FIRMWARE_VERSION_MEJOR=${FIRMWARE_VERSION//.*/} ;; * ) # ------------------------------------------------------------------------ # Based on the major version of the firmware as input, extract firmware # version information to be embedded in apploader.img # ------------------------------------------------------------------------ # First check ndrun_fwlist. If the information is not in the list, use # the name of the swupdate file. The reasoning for not using the swupdate # filename from the beginning is because the standard SDK contains two # firmwares, but privately released swupdates should only contain one firmware. # ------------------------------------------------------------------------ VER_STR=`cat ${SDK_ROOT}/X86/bin/ndrun_fwlist | grep =\"${1} |sed 's/.*=//'|sed 's/\r\n//g'|sed 's/\"//g'` if [ -z $VER_STR ] ; then VER_STR=`find ${SDK_ROOT}/RVL/bin/tools/swupdate*.gcm -type f | grep swupdate\.${1} |sed 's/.*swupdate\(.*\)_.*.gcm/\1/g'|sort -u|sed 's/\r\n//g'|sed 's/_/./g'` fi TMP_FW_VER="N/A" for TMP_FW_VER in $VER_STR ; do echo -n ;done echo "" echo "Setting firmware version to ${TMP_FW_VER} ..." echo "" if [ $TMP_FW_VER != "N/A" ] ; then make -C ${SDK_ROOT}/RVL/boot FIRMWARE_VERSION=$TMP_FW_VER mv -f ${SDK_ROOT}/RVL/boot/apploader.${TMP_FW_VER}.img ${SDK_ROOT}/RVL/boot/apploader${FIRMWARE_VERSION}.img echo fi FIRMWARE_VERSION_MEJOR=${FIRMWARE_VERSION} ;; esac # # change NDEV configuration # if cp -pf $REVOLUTION_SDK_ROOT/RVL/boot/apploader${FIRMWARE_VERSION}.img $REVOLUTION_SDK_ROOT/RVL/boot/apploader.img && $REVOLUTION_SDK_ROOT/X86/bin/rvlbinconv -f $REVOLUTION_SDK_ROOT/X86/bin/rvl.bin -i ${FIRMWARE_VERSION_MEJOR} then case $1 in `echo ${FW_FOR_EXTENSION}|sed s/.[^\.]*.[^\.]*$//`) echo "" echo "Successfully done. Set the firmware for EXTENSION." echo "" ;; `echo ${FW_FOR_STANDARD}|sed s/.[^\.]*.[^\.]*$//`) echo "" echo "Successfully done. Set the firmware for STANDARD." echo "" ;; *) echo "" echo "Successfully done. Set the unexpected firmware." echo "" ;; esac else echo "" echo "Failed to set the firmware version." exit 1 fi echo echo "**********************************************************************" echo "* If you make master data, you must execute ndrun before you do so!! *" echo "**********************************************************************" echo