# !/bin/sh

UPGRADE_PATH=/media/mmcblk0p1/upgrade
REBOOT_FLAG=0
UPGRADE_SOURCE="SD"

# dtb
#
PACK_NAME=$UPGRADE_PATH/stm32mp151a-wb.dtb
if [ -f $PACK_NAME ]; then
	echo "#####################  Upgrade dtb from $UPGRADE_SOURCE card ######################"
    cp $PACK_NAME /media/mmcblk0p2/
	rm $PACK_NAME
	REBOOT_FLAG=1
fi

# uimage
#
PACK_NAME=$UPGRADE_PATH/uImage
if [ -f $PACK_NAME ]; then
	echo "#####################  Upgrade kernel from $UPGRADE_SOURCE card ######################"
    cp $PACK_NAME /media/mmcblk0p2/
	rm $PACK_NAME
	REBOOT_FLAG=1
fi

# logo
#
PACK_NAME=$UPGRADE_PATH/logo.bmp
if [ -f $PACK_NAME ]; then
	echo "#####################  Upgrade logo from $UPGRADE_SOURCE card ######################"
	rm $PACK_NAME
	REBOOT_FLAG=1
fi

# squashFS
#
PACK_NAME=$UPGRADE_PATH/strootfs.tar.gz
if [ -f $PACK_NAME ]; then
	echo "#####################  Upgrade squashFS from $UPGRADE_SOURCE card ######################"
    gzip -d $PACK_NAME -c | tar -x -C $UPGRADE_PATH/
    cp -r $UPGRADE_PATH/strootfs/* /media/mmcblk0p3/
	rm $PACK_NAME
	REBOOT_FLAG=1
fi

# ubi
#
PACK_NAME=$UPGRADE_PATH/ubi.tar.gz
if [ -f $PACK_NAME ]; then
	echo "#####################  Upgrade ubi from $UPGRADE_SOURCE card ######################"
	gzip -d $PACK_NAME -c | tar -x -C /ubi/
	rm $PACK_NAME
	touch /ubi/conf/update_success
	REBOOT_FLAG=1
fi

# tf-a
#
PACK_NAME=$UPGRADE_PATH/tf-a-stm32mp151a-wb-trusted.stm32
if [ -f $PACK_NAME ]; then
	echo "#####################  Upgrade tf-a from $UPGRADE_SOURCE card ######################"
	echo 0 > /sys/class/block/mmcblk0boot0/force_ro
	echo 0 > /sys/class/block/mmcblk0boot1/force_ro
	dd if=$PACK_NAME of=/dev/mmcblk0boot0 conv=fsync
	dd if=$PACK_NAME of=/dev/mmcblk0boot1 conv=fsync
	echo 1 > /sys/class/block/mmcblk0boot0/force_ro
	echo 1 > /sys/class/block/mmcblk0boot1/force_ro
	rm $PACK_NAME
	REBOOT_FLAG=1
fi

# m4 
#
PACK_NAME=$UPGRADE_PATH/StarCharge.out
if [ -f $PACK_NAME ]; then
	echo "#####################  Upgrade m4 from $UPGRADE_SOURCE card ######################"
    cp $PACK_NAME /lib/firmware/
    rm $PACK_NAME
	REBOOT_FLAG=1
fi


UPGRADE_PATH=/ubi/upgrade
UPGRADE_SOURCE="ubi"

# dtb
#
PACK_NAME=$UPGRADE_PATH/stm32mp151a-wb.dtb
if [ -f $PACK_NAME ]; then
	echo "#####################  Upgrade dtb from $UPGRADE_SOURCE card ######################"
    cp $PACK_NAME /media/mmcblk0p2/
	rm $PACK_NAME
	REBOOT_FLAG=1
fi

# uimage
#
PACK_NAME=$UPGRADE_PATH/uImage
if [ -f $PACK_NAME ]; then
	echo "#####################  Upgrade kernel from $UPGRADE_SOURCE card ######################"
    cp $PACK_NAME /media/mmcblk0p2/
	rm $PACK_NAME
	REBOOT_FLAG=1
fi

# logo
#
PACK_NAME=$UPGRADE_PATH/logo.bmp
if [ -f $PACK_NAME ]; then
	echo "#####################  Upgrade logo from $UPGRADE_SOURCE card ######################"
	rm $PACK_NAME
	REBOOT_FLAG=1
fi

# squashFS
#
PACK_NAME=$UPGRADE_PATH/strootfs.tar.gz
if [ -f $PACK_NAME ]; then
	echo "#####################  Upgrade squashFS from $UPGRADE_SOURCE card ######################"
    gzip -d $PACK_NAME -c | tar -x -C $UPGRADE_PATH/
    cp -r $UPGRADE_PATH/strootfs/* /media/mmcblk0p3/
	rm $PACK_NAME
	REBOOT_FLAG=1
fi

# ubi
#
PACK_NAME=$UPGRADE_PATH/ubi.tar.gz
if [ -f $PACK_NAME ]; then
	echo "#####################  Upgrade ubi from $UPGRADE_SOURCE card ######################"
	gzip -d $PACK_NAME -c | tar -x -C /ubi/
	rm $PACK_NAME
	touch /ubi/conf/update_success
	REBOOT_FLAG=1
fi

# tf-a
#
PACK_NAME=$UPGRADE_PATH/tf-a-stm32mp151a-wb-trusted.stm32
if [ -f $PACK_NAME ]; then
	echo "#####################  Upgrade tf-a from $UPGRADE_SOURCE card ######################"
	echo 0 > /sys/class/block/mmcblk0boot0/force_ro
	echo 0 > /sys/class/block/mmcblk0boot1/force_ro
	dd if=$PACK_NAME of=/dev/mmcblk0boot0 conv=fsync
	dd if=$PACK_NAME of=/dev/mmcblk0boot1 conv=fsync
	echo 1 > /sys/class/block/mmcblk0boot0/force_ro
	echo 1 > /sys/class/block/mmcblk0boot1/force_ro
	rm $PACK_NAME
	REBOOT_FLAG=1
fi

# m4 
#
PACK_NAME=$UPGRADE_PATH/StarCharge.out
if [ -f $PACK_NAME ]; then
	echo "#####################  Upgrade m4 from $UPGRADE_SOURCE card ######################"
    cp $PACK_NAME /lib/firmware/
    rm $PACK_NAME
	REBOOT_FLAG=1
fi

if [ $REBOOT_FLAG == 1 ]; then
	sync
	echo "########################## burning finished #################################"
	touch /tmp/rebootFlag
	reboot
fi

