#!/bin/sh

. /lib/functions.sh

usage() {
	echo "getmac <wl1|wl0|lan|wan>"
	echo "example: getmac"
	echo "         getmac wan"
}

# GMAC MAC address offset, as defined in raether.h
GMAC0_OFFSET=0xE000
GMAC2_OFFSET=0xE006

factory_mtd_name=Factory

ethaddr_lan=$(hexdump -C $(find_mtd_part $factory_mtd_name) -s $GMAC0_OFFSET -n 6 | awk 'NR<2 {print $2":"$3":"$4":"$5":"$6":"$7}')
ethaddr_wan=$(hexdump -C $(find_mtd_part $factory_mtd_name) -s $GMAC2_OFFSET -n 6 | awk 'NR<2 {print $2":"$3":"$4":"$5":"$6":"$7}')
wl1addr=$(hexdump -C $(find_mtd_part $factory_mtd_name) -s 4 -n 6 | awk 'NR<2 {print $2":"$3":"$4":"$5":"$6":"$7}')
wl0addr=$(hexdump -C $(find_mtd_part $factory_mtd_name) -s $((32768+4)) -n 6 | awk 'NR<2 {print $2":"$3":"$4":"$5":"$6":"$7}')

case $1 in
	-h)
		usage
		;;
	wl0)
		echo "$wl0addr"
		;;
	wl1)
		echo "$wl1addr"
		;;
	wan|eth)
		echo "$ethaddr_wan"
		;;
	lan)
		echo "$ethaddr_lan"
		;;
	*)
		echo "$ethaddr_wan,$wl1addr,$wl0addr"
		;;
esac
