#!/bin/bash
#
#  Board parameters....
#

# GPIO1-11 RESET
echo 11 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio11/direction

# GPIO1-13 RESET
echo 13 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio13/direction

# GPIO5-4 GIPO0_PLC
# echo 132 > /sys/class/gpio/export
# echo out > /sys/class/gpio/gpio132/direction

# echo 1 > /sys/class/gpio/gpio132/value

echo 1 > /sys/class/gpio/gpio11/value
echo 1 > /sys/class/gpio/gpio13/value

sleep 1

echo 0 > /sys/class/gpio/gpio11/value
echo 0 > /sys/class/gpio/gpio13/value

sleep 1

echo 1 > /sys/class/gpio/gpio11/value
echo 1 > /sys/class/gpio/gpio13/value

sleep 1


if [ "$1" != "start" ]; then
	exit 0
fi

TMP_CFG=0
PLC_MAC=""
ETH_MAC=""
CUR_PLC_MAC=""

insmod /ubi/local/modules/vc_ethspi.ko

sleep 2

# insmod /ubi/local/modules/vc_ethspi_1.ko

nanddump /dev/mtd3 -s 0x380000 -a -l 2048 --bb=skipbad  -f /tmp/board_config_tmp
#grep -e ".*=.*" /tmp/board_config_tmp  > /tmp/board_config
grep -E "^[0-9a-zA-Z_ ]{1,}=[0-9A-Za-z:_\. ]{1,}$" /tmp/board_config_tmp  > /tmp/board_config
rm /tmp/board_config_tmp -rf

[ -f /tmp/board_config ] && . /tmp/board_config


if [ -z $ETH_MAC ]; then
	RANDOM_V=`cat /proc/sys/kernel/random/uuid | cut -d '-' -f 1 | tr '[a-z]' '[A-Z]'`
	ETH_MAC="00:14:${RANDOM_V:0:2}:${RANDOM_V:2:2}:${RANDOM_V:4:2}:${RANDOM_V:6:2}"
	/bin/echo "ETH Mac not exists! RAMDOM MAC = $ETH_MAC"
	TMP_CFG=1
fi

ifconfig eth0 down
ifconfig eth0 hw ether $ETH_MAC up

if [ -z $PLC_MAC ]; then
	RANDOM_V=`cat /proc/sys/kernel/random/uuid | cut -d '-' -f 1 | tr '[a-z]' '[A-Z]'`
	PLC_MAC="20:9B:${RANDOM_V:0:2}:${RANDOM_V:2:2}:${RANDOM_V:4:2}:${RANDOM_V:6:2}"
	/bin/echo "PLC Mac not exists! RAMDOM MAC = $PLC_MAC"
	TMP_CFG=1
fi

ifconfig eth1 down
ifconfig eth1 hw ether $PLC_MAC up


#ifconfig eth2 down
#ifconfig eth2 hw ether $PLC_MAC up

#echo -n "Wait PLC module initialize"
#COUNT=1
#while [  ${COUNT} -le 5  -a -z $CUR_PLC_MAC ] ; do
#	sleep 1
#	echo -n "."
#	CUR_PLC_MAC=`/ubi/local/bin/open-plc/plctool -I | grep "MAC ..:..:..:..:..:.." | awk '{ print $2 }'`
#	COUNT=`expr ${COUNT} + 1`
#done
#echo ""
	
#CUR_PLC_VERSION=`/ubi/local/bin/open-plc/plctool -r | grep "QCA" | awk '{ print $4 }'`

#echo "QCA Mac: $PLC_MAC Cur Mac: $CUR_PLC_MAC Version: $CUR_PLC_VERSION"

#if   [  "$PLC_MAC" != "$CUR_PLC_MAC" ]  || [ "$CUR_PLC_VERSION" != "MAC-QCA7005-1.2.5.3207-00-20180927-CS"  ]  ; then
#	echo "Flash plc firmware..."
#	/ubi/conf/secc/flash_plc_1_2_5.sh $PLC_MAC >> /dev/null 2<&1
#fi


if [ $TMP_CFG == 1 ] ; then
	cat board_config | grep -v MAC > /tmp/board_config_tmp
	echo "ETH_MAC=$ETH_MAC" >> /tmp/board_config_tmp
	echo "PLC_MAC=$PLC_MAC" >> /tmp/board_config_tmp
	echo "Save temp addr to flash..."
	flash_erase /dev/mtd3 0x380000 4
	nandwrite /dev/mtd3 -s 0x380000 /tmp/board_config_tmp -p
	rm /tmp/board_config_tmp -rf
fi




