1#!/usr/bin/bash
2
3set -u
4
5
6# ------------------------------------------------------------------------------
7# READ FIRMWARE LIST
8# ------------------------------------------------------------------------------
9source $REVOLUTION_SDK_ROOT/x86/bin/ndrun_fwlist
10
11# ------------------------------------------------------------------------------
12# SET FIRMWARE
13# ------------------------------------------------------------------------------
14if [ $# -eq 0 ]
15then
16    echo "usage: setfirmware <major version of firmware>"
17    echo " Sets the firmware (standard or extention)."
18	echo " * extention firmware     : ${FW_FOR_EXTENSION}"
19	echo " * standard firmware      : ${FW_FOR_STANDARD}"
20    exit 0
21fi
22
23if [ "$NDEV" = "" ]
24then
25    echo "NDEV is not found. Do nothing and exit."
26    exit 0
27fi
28
29echo "NDEV detected"
30
31SDK_ROOT=`cygpath -am ${REVOLUTION_SDK_ROOT}`
32FIRMWARE_VERSION=$1
33
34case $FIRMWARE_VERSION in
35*.*.*.* )
36		echo ""
37		echo "Setting firmware version to $FIRMWARE_VERSION ..."
38		echo ""
39	    echo "Error: Worng version format. Do nothing and exit."
40	    exit 0
41		;;
42
43*.*.* )
44		echo ""
45		echo "Setting firmware version to $FIRMWARE_VERSION ..."
46		echo ""
47		make -C ${SDK_ROOT}/RVL/boot FIRMWARE_VERSION=$FIRMWARE_VERSION
48		echo
49		mv -f ${SDK_ROOT}/RVL/boot/apploader.${FIRMWARE_VERSION}.img ${SDK_ROOT}/RVL/boot/apploader${FIRMWARE_VERSION}.img
50		FIRMWARE_VERSION_MEJOR=${FIRMWARE_VERSION//.*/}
51		;;
52
53	* )
54	# ------------------------------------------------------------------------
55	# Based on the major version of the firmware as input, extract firmware
56        # version information to be embedded in apploader.img
57	# ------------------------------------------------------------------------
58        # First check ndrun_fwlist.  If the information is not in the list, use
59        # the name of the swupdate file.  The reasoning for not using the swupdate
60        # filename from the beginning is because the standard SDK contains two
61        # firmwares, but privately released swupdates should only contain one firmware.
62	# ------------------------------------------------------------------------
63		VER_STR=`cat ${SDK_ROOT}/X86/bin/ndrun_fwlist | grep =\"${1} |sed 's/.*=//'|sed 's/\r\n//g'|sed 's/\"//g'`
64		if [ -z $VER_STR ] ; then
65			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'`
66		fi
67
68		TMP_FW_VER="N/A"
69		for TMP_FW_VER in $VER_STR ; do echo -n ;done
70		echo ""
71		echo "Setting firmware version to ${TMP_FW_VER} ..."
72		echo ""
73		if [ $TMP_FW_VER != "N/A" ] ; then
74			make -C ${SDK_ROOT}/RVL/boot FIRMWARE_VERSION=$TMP_FW_VER
75			mv -f ${SDK_ROOT}/RVL/boot/apploader.${TMP_FW_VER}.img ${SDK_ROOT}/RVL/boot/apploader${FIRMWARE_VERSION}.img
76			echo
77		fi
78
79		FIRMWARE_VERSION_MEJOR=${FIRMWARE_VERSION}
80		;;
81	esac
82
83#
84# change NDEV configuration
85#
86if 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}
87then
88	case $1 in
89    `echo ${FW_FOR_EXTENSION}|sed s/.[^\.]*.[^\.]*$//`)
90          echo ""
91		  echo "Successfully done. Set the firmware for EXTENSION."
92          echo ""
93        	;;
94     `echo ${FW_FOR_STANDARD}|sed s/.[^\.]*.[^\.]*$//`)
95          echo ""
96          echo "Successfully done. Set the firmware for STANDARD."
97          echo ""
98        	;;
99      *)
100          echo ""
101          echo "Successfully done. Set the unexpected firmware."
102          echo ""
103			;;
104	esac
105else
106	echo ""
107    echo "Failed to set the firmware version."
108    exit 1
109fi
110
111echo
112echo "**********************************************************************"
113echo "* If you make master data, you must execute ndrun before you do so!! *"
114echo "**********************************************************************"
115echo
116
117