aboutsummaryrefslogtreecommitdiff
path: root/target/linux/ixp4xx/base-files/lib/preinit/05_set_ether_mac_ixp4xx
blob: 9e7ff46298301d8815c844fefe599ab3200c28ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/sh
. /lib/functions.sh
. /lib/functions/system.sh

set_from_redboot () {
	for npe in eth0 eth1 eth2
	do
		if ip link show dev $npe > /dev/null 2>&1; then
			ip link set dev $npe address $(fconfig -s -r -d /dev/$1 -n npe_"$npe"_esa)
		fi
	done

	# Devices with MAC address set blank: set a dummy value.
	if [ "$(ip link show dev eth0 2>/dev/null | grep -c 00:00:00:00:00:00)" = "1" ]; then
		ip link set dev eth0 address 00:11:22:33:44:55
	fi
	if [ "$(ip link show dev eth1 2>/dev/null | grep -c 00:00:00:00:00:00)" = "1" ]; then
		ip link set dev eth0 address 00:11:22:33:44:56
	fi
}

set_from_sysconf () {
	ip link set dev eth0 address $(mtd_get_mac_ascii SysConf hw_addr)
}

set_ether_mac () {
	RBC="$(grep "RedBoot config" /proc/mtd | cut -d: -f1)"
	if [ ! -z $RBC ] ; then
		set_from_redboot $RBC
	else
		SYSC="$(grep "SysConf" /proc/mtd | cut -d: -f1)"
		if [ ! -z $SYSC ] ; then
			set_from_sysconf
		fi
	fi
}

boot_hook_add preinit_main set_ether_mac