summaryrefslogtreecommitdiffstats
path: root/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
blob: 75c3d25ed9a9ca9c52a364fe43030b9eefb3fcc2 (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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
[ "$ACTION" == "add" ] || exit 0

PHYNBR=${DEVPATH##*/phy}

[ -n $PHYNBR ] || exit 0

. /lib/functions.sh
. /lib/functions/system.sh

board=$(board_name)

case "$board" in
	acer,predator-w6)
		key_path="/var/qcidata/data"
		[ "$PHYNBR" = "0" ] && cat $key_path/2gMAC > /sys${DEVPATH}/macaddress
		[ "$PHYNBR" = "1" ] && cat $key_path/6gMAC > /sys${DEVPATH}/macaddress
		[ "$PHYNBR" = "2" ] && cat $key_path/5gMAC > /sys${DEVPATH}/macaddress
		;;
	asus,rt-ax59u)
		CI_UBIPART="UBI_DEV"
		addr=$(mtd_get_mac_binary_ubi "Factory" 0x4)
		# Originally, phy1 is phy0 mac with LA and 28th bits set. However, this would conflict
		# addresses on multiple VIFs with the other radio when bit 28 is already set.
		# Set LA and 28 bits and increment mac-address instead.
		[ "$PHYNBR" = "1" ] && \
			macaddr_setbit_la $(macaddr_setbit $(macaddr_add $addr 1) 28) > \
			/sys${DEVPATH}/macaddress
		;;
	asus,tuf-ax4200|\
	asus,tuf-ax6000)
		CI_UBIPART="UBI_DEV"
		addr=$(mtd_get_mac_binary_ubi "Factory" 0x4)
		# Originally, phy0 is phy1 mac with LA bit set. However, this would conflict
		# addresses on multiple VIFs with the other radio. Set LA bit and increment
		# mac-address instead.
		[ "$PHYNBR" = "0" ] && macaddr_setbit_la $(macaddr_add $addr 1) > /sys${DEVPATH}/macaddress
		[ "$PHYNBR" = "1" ] && echo "$addr" > /sys${DEVPATH}/macaddress
		;;
	bananapi,bpi-r3|\
	bananapi,bpi-r3-mini)
		addr=$(cat /sys/class/net/eth0/address)
		[ "$PHYNBR" = "0" ] && macaddr_add $addr 2 > /sys${DEVPATH}/macaddress
		[ "$PHYNBR" = "1" ] && macaddr_add $addr 3 > /sys${DEVPATH}/macaddress
		;;
	bananapi,bpi-r4|\
	bananapi,bpi-r4-poe)
		addr=$(cat /sys/class/net/eth0/address)
		[ "$PHYNBR" = "0" ] && macaddr_add $addr 2 > /sys${DEVPATH}/macaddress
		[ "$PHYNBR" = "1" ] && macaddr_add $addr 3 > /sys${DEVPATH}/macaddress
		[ "$PHYNBR" = "2" ] && macaddr_add $addr 4 > /sys${DEVPATH}/macaddress
		;;
	cetron,ct3003)
		addr=$(mtd_get_mac_binary "art" 0)
		[ "$PHYNBR" = "0" ] && macaddr_add $addr 1 > /sys${DEVPATH}/macaddress
		[ "$PHYNBR" = "1" ] && macaddr_setbit_la $(macaddr_add $addr 2) > /sys${DEVPATH}/macaddress
		;;
	cmcc,rax3000m)
		case "$(cmdline_get_var root)" in
		/dev/mmc*)
			addr=$(mmc_get_mac_binary factory 0xa)
			;;
		*)
			addr=$(mtd_get_mac_binary factory 0xa)
			;;
		esac
		[ "$PHYNBR" = "1" ] && echo "$addr" > /sys${DEVPATH}/macaddress
		;;
	comfast,cf-e393ax)
		addr=$(mtd_get_mac_binary "Factory" 0x8000)
		[ "$PHYNBR" = "1" ] && macaddr_add $addr 1 > /sys${DEVPATH}/macaddress
		;;
	cudy,tr3000-v1|\
	cudy,re3000-v1)
		addr=$(mtd_get_mac_binary bdinfo 0xde00)
		[ "$PHYNBR" = "0" ] && echo "$addr" > /sys${DEVPATH}/macaddress
		[ "$PHYNBR" = "1" ] && macaddr_setbit_la $(macaddr_add $addr 1) > /sys${DEVPATH}/macaddress
		;;
	cudy,wr3000-v1)
		addr=$(mtd_get_mac_binary bdinfo 0xde00)
		# Originally, phy0 is phy1 mac with LA bit set. However, this would conflict
		# addresses on multiple VIFs with the other radio. Set LA bit and increment
		# mac-address instead.
		[ "$PHYNBR" = "0" ] && echo "$addr" > /sys${DEVPATH}/macaddress
		[ "$PHYNBR" = "1" ] && macaddr_setbit_la $(macaddr_add $addr 1) > /sys${DEVPATH}/macaddress
		;;
	dlink,aquila-pro-ai-m30-a1)
		addr=$(mtd_get_mac_binary "Odm" 0x81)
		[ "$PHYNBR" = "1" ] && macaddr_add $addr 3 > /sys${DEVPATH}/macaddress
		;;
	glinet,gl-mt6000|\
	glinet,gl-x3000|\
	glinet,gl-xe3000)
		addr=$(mmc_get_mac_binary factory 0x04)
		[ "$PHYNBR" = "0" ] && echo "$addr" > /sys${DEVPATH}/macaddress
		[ "$PHYNBR" = "1" ] && macaddr_add $addr 1 > /sys${DEVPATH}/macaddress
		;;
	h3c,magic-nx30-pro)
		addr=$(mtd_get_mac_ascii pdt_data_1 ethaddr)
		[ "$PHYNBR" = "0" ] && macaddr_add $addr 2 > /sys${DEVPATH}/macaddress
		[ "$PHYNBR" = "1" ] && macaddr_add $addr 3 > /sys${DEVPATH}/macaddress
		;;
	jcg,q30-pro|\
	netcore,n60)
		# Originally, phy1 is phy0 mac with LA bit set. However, this would conflict
		# addresses on multiple VIFs with the other radio. Use label mac to set LA bit.
		[ "$PHYNBR" = "1" ] && macaddr_setbit_la $(get_mac_label) > /sys${DEVPATH}/macaddress
		;;
	jdcloud,re-cp-03)
		[ "$PHYNBR" = "1" ] && mmc_get_mac_binary factory 0xa > /sys${DEVPATH}/macaddress
		;;
	mercusys,mr90x-v1)
		addr=$(get_mac_binary "/tmp/tp_data/default-mac" 0)
		[ "$PHYNBR" = "0" ] && echo "$addr" > /sys${DEVPATH}/macaddress
		[ "$PHYNBR" = "1" ] && macaddr_add $addr -1 > /sys${DEVPATH}/macaddress
		;;
	netgear,wax220)
		hw_mac_addr=$(mtd_get_mac_ascii u-boot-env mac)
		[ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
		[ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 3 > /sys${DEVPATH}/macaddress
		;;
	openembed,som7981)
		[ "$PHYNBR" = "1" ] && cat /sys/class/net/eth0/address > /sys${DEVPATH}/macaddress
		;;
	qihoo,360t7)
		addr=$(mtd_get_mac_ascii factory lanMac)
		[ "$PHYNBR" = "0" ] && macaddr_add $addr 2 > /sys${DEVPATH}/macaddress
		[ "$PHYNBR" = "1" ] && macaddr_add $addr 3 > /sys${DEVPATH}/macaddress
		;;
	smartrg,sdg-8612|\
	smartrg,sdg-8614|\
	smartrg,sdg-8622|\
	smartrg,sdg-8632)
		addr=$(mmc_get_mac_ascii mfginfo MFG_MAC)
		[ "$PHYNBR" = "0" ] && macaddr_add $addr 2 > /sys${DEVPATH}/macaddress
		[ "$PHYNBR" = "1" ] && macaddr_add $addr 3 > /sys${DEVPATH}/macaddress
		[ "$PHYNBR" = "2" ] && macaddr_add $addr 4 > /sys${DEVPATH}/macaddress
		;;
	tplink,tl-xdr4288|\
	tplink,tl-xdr6086|\
	tplink,tl-xdr6088)
		[ "$PHYNBR" = "0" ] && get_mac_label > /sys${DEVPATH}/macaddress
		;;
	ubnt,unifi-6-plus)
		addr=$(mtd_get_mac_binary EEPROM 0x6)
		[ "$PHYNBR" = "0" ] && echo "$addr" > /sys${DEVPATH}/macaddress
		[ "$PHYNBR" = "1" ] && macaddr_add $addr 1 > /sys${DEVPATH}/macaddress
		;;
	routerich,ax3000|\
	zbtlink,zbt-z8102ax|\
	zbtlink,zbt-z8103ax|\
	zyxel,ex5601-t0|\
	zyxel,ex5601-t0-ubootmod)
		addr=$(mtd_get_mac_binary "Factory" 0x4)
		[ "$PHYNBR" = "1" ] && macaddr_add $addr 1 > /sys${DEVPATH}/macaddress
		;;
	zyxel,nwa50ax-pro)
		hw_mac_addr="$(mtd_get_mac_binary mrd 0x1fff8)"
		[ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress
		[ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
		;;
esac