#
# Copyright (C) 2011 OpenWrt.org
#

preinit_set_mac_address() {
	local mac

	. /lib/ramips.sh

	case $(ramips_board_name) in
	3g-6200n |\
	wl-330n |\
	wl-330n3g)
		mac=$(ramips_get_mac_binary factory 4)
		ifconfig eth0 hw ether $mac 2>/dev/null
		;;
	bc2 |\
	dir-620-a1 |\
	esr-9753 |\
	freestation5 |\
	nw718 |\
	psr-680w |\
	rt-n56u |\
	sl-r7205)
		mac=$(ramips_get_mac_binary factory 4)
		mac=$(maccalc or "$mac" "02:00:00:00:00:00")
		ifconfig eth0 hw ether $mac 2>/dev/null
		;;
	dir-300-b1 |\
	dir-300-b2 |\
	dir-600-b1)
                mac=$(ramips_get_mac_binary devdata 16388)
                ifconfig eth0 hw ether $mac 2>/dev/null
                ;;
	dir-645)
		mac=$(ramips_get_mac_nvram nvram lanmac)
		mac=$(maccalc or "$mac" "02:00:00:00:00:00")
		ifconfig eth0 hw ether $mac 2>/dev/null
		;;
	dap-1350)
		mac=$(ramips_get_mac_binary devdata 46)
		ifconfig eth0 hw ether $mac 2>/dev/null
                ;;
	all0239-3g |\
	all0256n |\
	all5002 |\
	carambola |\
	dir-615-h1 |\
	fonera20n |\
	hw550-3g |\
	nbg-419n |\
	omni-emb |\
	tew-691gr |\
	tew-692gr |\
	w306r-v20 |\
	w502u    |\
	wr6202 |\
	xdxrn502j)
		mac=$(ramips_get_mac_binary factory 40)
		ifconfig eth0 hw ether $mac 2>/dev/null
		;;
	wl341v3)
		mac=$(ramips_get_mac_binary board-nvram 65440)
		ifconfig eth0 hw ether $mac 2>/dev/null
		;;
	rt-n10-plus)
		mac=$(ramips_get_mac_binary devconf 4)
		ifconfig eth0 hw ether $mac 2>/dev/null
		;;
	esac
}

boot_hook_add preinit_main preinit_set_mac_address
