#!/bin/sh
case "$1" in
save)
	/etc/scripts/dbsave.sh
	;
freset)
	devconf del
	;
isfreset)
	SIZE=`devconf dump | scut -p "Data size :" -f 1`
	if [ "$SIZE" = "0" ]; then
		echo "YES"
	else
		echo "NO"
	fi
	;
init)
	if [ $# -lt 7 ]; then
		echo "Usage:"
		echo "  mfc init <lanmac> <wanmac> <hwrev> <countrycode> <deviceip> <pin> [lanmac2]"
		exit 1
	fi
	LANMAC=`echo -e $2 | tr [A-Z] [a-z]`
	WANMAC=`echo -e $3 | tr [A-Z] [a-z]`
	HWREV=`echo -e $4 | tr [A-Z] [a-z]`
	CCODE="$5"
	IP="$6"
	PIN="$7"
	LANMAC2=`echo -e $8 | tr [A-Z] [a-z]`
	[ "$LANMAC" != "" ] && DEVDATA="$DEVDATA -e lanmac=$LANMAC -e wlanmac=$LANMAC"
	[ "$WANMAC" != "" ] && DEVDATA="$DEVDATA -e wanmac=$WANMAC"
	[ "$CCODE" = "" ] && CCODE="US"
	[ "$PIN" != "" ] && DEVDATA="$DEVDATA -e pin=$PIN"
	[ "$LANMAC2" != "" ] && DEVDATA="$DEVDATA -e lanmac2=$LANMAC2"
	echo "devdata set -e countrycode=$CCODE -e hwrev=$HWREV $DEVDATA -f" > /dev/console
	devdata set -e countrycode=$CCODE -e hwrev=$HWREV $DEVDATA -f
	# Save wireless MAC address to EEPROM
	M1=`echo $LANMAC | cut -d: -f1`
	M2=`echo $LANMAC | cut -d: -f2`
	M3=`echo $LANMAC | cut -d: -f3`
	M4=`echo $LANMAC | cut -d: -f4`
	M5=`echo $LANMAC | cut -d: -f5`
	M6=`echo $LANMAC | cut -d: -f6`
	iwpriv ra0 e2p 04=$M2$M1
	iwpriv ra0 e2p 06=$M4$M3
	iwpriv ra0 e2p 08=$M6$M5
	# Set MAC Address and IP Address into u-boot config.
	[ "$LANMAC" != "" ] && UBCFG="$UBCFG ethaddr=$LANMAC"
	[ "$IP" != "" ] && UBCFG="$UBCFG ipaddr=$IP"
	echo "ubcfg set $UBCFG" > /dev/console
	ubcfg set $UBCFG
	# Show devdata and uboot data
	echo "-------- devdata dump ----------------------" > /dev/console
	devdata dump > /dev/console
	echo "-------- ubcfg get ethaddr ipaddr-----------" > /dev/console
	ubcfg get ethaddr ipaddr > /dev/console
	echo "--------------------------------------------" > /dev/console
	;
evm)
	if [ $# -ne 10 ]; then
		echo "Usage:"
		echo "  mfc evm <INF> <ATETXFREQOFFSET> <ATETXMODE> <ATETXMCS> <ATETXBW> <ATETXLEN> <ATECHANNEL> <ATETXANT> <ATETXPOW0>"
		exit 1
	fi
	INF=$2
	iwpriv $INF set ATE=ATESTART
	iwpriv $INF set ATEDA=FF:FF:FF:FF:FF:FF
	iwpriv $INF set ATETXGI=0
	iwpriv $INF set ATETXLEN=$7
	iwpriv $INF set ATETXCNT=1000000
	iwpriv $INF set ATETXANT=$9
	iwpriv $INF set ATECHANNEL=$8
	iwpriv $INF set ATETXMODE=$4
	iwpriv $INF set ATETXMCS=$5
	iwpriv $INF set ATETXBW=$6
	iwpriv $INF set ATETXPOW0=${10}
	iwpriv $INF set ATETXFREQOFFSET=$3
	iwpriv $INF set ATEIPG=200
	iwpriv $INF set ATE=TXFRAME

	;
wlan24)
	DATPATH="/var/run/RT2860.dat"
	cp /etc/scripts/mfc/RT2860_MFC.dat $DATPATH
	echo "" >> $DATPATH
	case "$4" in
	"HT20")
		echo "HT_BW=0" >> $DATPATH
		;
	"HT40")
		echo "HT_BW=1" >> $DATPATH
		echo "HT_EXTCHA=1" >> $DATPATH
		;
	esac
	echo "Channel=$3" >> $DATPATH
	echo "SSID=$2" >> $DATPATH
	killall hostapd
	ifconfig ra0 down
	brctl delif br0 ra0
	rmmod rt2860v2_ap
	insmod /lib/modules/rt2860v2_ap.ko
	ifconfig ra0 txqueuelen 1000
	ifconfig ra0 up
	brctl addif br0 ra0
	brctl setbwctrl br0 ra0 900
	echo 1 > /proc/net/br_forward_br0
	;
set_11n)
	case $2 in
	disable)
		devdata set -e bgonly=1
		;
	enable)
		devdata del -e bgonly
		;
	esac
	;
get_11n)
	BGONLY=`devdata get -e bgonly`
	if [ "$BGONLY" = "1" ]; then
		echo "disable"
	else
		echo "enable"
	fi
	;
dump)
	devdata dump
	;
ver)
	echo Ver `cat /etc/config/buildver` Build `cat /etc/config/buildno`
	;
get)
	[ "$2" != "" ] && devdata get -e $2
	;
test)
	case $2 in
	on)
		usockc /var/gpio_ctrl DEBUG
		;
	off)
		usockc /var/gpio_ctrl NODEBUG
		;
	esac
	;
layout)
	case $2 in
		router)
		brctl delif br0 eth2.2
		;
		bridge)
		brctl addif br0 eth2.2
		;
		esac
		;
button)
	case $2 in
	reset)
		usockc /var/gpio_ctrl GPIO_FRESET
		cat /var/gpio_ctrl_result
		;
	wps)
		usockc /var/gpio_ctrl GPIO_WPSPBC
		cat /var/gpio_ctrl_result
		;
	esac
	;
led)
	case "$2" in
	wps_blue)
		usockc /var/gpio_ctrl WPS_BLUE
		;
	wps_off)
		usockc /var/gpio_ctrl WPS_NONE
		;
#	wps_red)
#		usockc /var/gpio_ctrl WPS_RED
#		;
	status_green)
		usockc /var/gpio_ctrl STATUS_GREEN
		;
	status_off)
		usockc /var/gpio_ctrl STATUS_AMBER
		;
	esac
	;
*)
	echo "Usage: mfc {command} <params> [options]"
	echo "Commands:"
	echo "  init <lanmac> <wanmac> <hwrev> <countrycode> <deviceip> <pin> [lanmac2]"
	echo "                           Init flash"
	echo "  save                     Save current setting to flash"
	echo ""
	echo "  evm <INF> <ATETXFREQOFFSET> <ATETXMODE> <ATETXMCS> <ATETXBW> <ATETXLEN>"
	echo "       <ATECHANNEL> <ATETXANT> <ATETXPOW0> <ATETXPOW1>"
	echo "                           save ATE wireless parameters for 5GHz or 2.4GHz band"
	echo ""
	echo "  wlan24 <ssid> <channel> <bandwidth>"
	echo "                           Config the wireless setting for testing."
	echo "                           Where the 'bandwidth' should be the value of 'HT20' or 'HT40'."
	echo "  set_11n {enable|disable} Enable/disable 802.11n mode."
	echo "  get_11n                  Get 802.11n enabled or disabled."
	echo "  dump                     Dump environment vairables."
	echo "  ver                      Show firmware version"
	echo ""
	echo "  get <name>               Get current WAN mac address"
	echo "  freset                   Factory reset"
	echo "  isfreset                 Check if the device is reset to factory default."
	echo ""
	echo "  test on                  turn on test mode"
	echo "  test off                 turn off test mode"
	echo ""
	echo "  button {reset|wps}"
	echo "      reset                Get factory reset button status."
	echo "      wps                  Get WPS button status."
	echo ""
	echo "  led {wps_blue|status_green|status_amber|inet_green|inet_amber}"
	echo "      wps_blue             Turn on WPS blue led."
	echo "      wps_off	             Turn off WPS blue led."
#	echo "      wps_red              Turn on WPS red led."
	echo "      status_green         Turn on power/status green led."
	echo "      status_off	         Turn off power/status green led."
	;
esac