#/bin/bash


######################################
function Usage()
    {
    echo `basename $0`" <BOOT.bin>"
    exit 1
    }
######################################

[ -z $1 ] && Usage

UBOOT=$1

if [ ! -f "$UBOOT" ]
    then
    echo "ERROR : "$UBOOT" not found"
    exit 1
    fi

if [ -L "$UBOOT" ]
    then
    echo "ERROR : "$UBOOT" is a link"
    exit 1
    fi


UBOOT_SIZE=$(ls -l $UBOOT | awk '{ print $5 }')

MTD_UBOOT_BLK="mmcblk0"

dd if=/dev/mmcblk0 of=/var/volatile/uboot-flashed-red bs=1024 seek=33 count=500
dd if=$UBOOT of=/var/volatile/uboot-flashed-new bs=1024 seek=33 count=500
cmp /var/volatile/uboot-flashed-new /var/volatile/uboot-flashed-red
RTN=$?
rm -f /var/volatile/uboot-flashed-red
rm -f /var/volatile/uboot-flashed-new
if [ $RTN == 0 ]
   then
   echo "This Boot is already flashed, nothing to do"
   exit 0
   fi

echo "Writing "$UBOOT
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo "!!!!!!!!!!!!!!! DO NOT SWITCH OFF !!!!!!!!!!!!!!!!!!"
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo

dd if=$UBOOT bs=1024 seek=33  of=/dev/mmcblk0
echo 0 > /sys/block/mmcblk0boot0/force_ro
dd if=$UBOOT bs=1024 seek=33  of=/dev/mmcblk0boot0
echo 0 > /sys/block/mmcblk0boot1/force_ro
dd if=$UBOOT bs=1024 seek=33  of=/dev/mmcblk0boot1
sync

if [ $? != 0 ]
    then
    echo "ERROR : Unable to flash uboot"
    exit 1
    fi

echo "Boot successfully updated"

exit 0
