realtek: add support for TP-Link T1600G-28TS v3
[openwrt/staging/jow.git] / target / linux / realtek / base-files / etc / board.d / 02_network
1
2 . /lib/functions.sh
3 . /lib/functions/uci-defaults.sh
4 . /lib/functions/system.sh
5
6 ucidef_set_poe() {
7 json_select_object poe
8 json_add_string "budget" "$1"
9 json_select_array ports
10 for port in $2; do
11 if [ -n "$3" -a -n "$(expr "$3" : "\(.\+[[:space:]]\)\{0,1\}$port\([[:space:]].*\|\$\)")" ]; then
12 continue # skip ports passed via $3
13 fi
14 json_add_string "" "$port"
15 done
16 json_select ..
17 json_select ..
18 }
19
20 board=$(board_name)
21 board_config_update
22
23 lan_list=$(ls -1 -v -d /sys/class/net/lan* | xargs -n1 basename | xargs)
24 lan_list_rev=$(ls -1 -v -d -r /sys/class/net/lan* | xargs -n1 basename | xargs)
25 ucidef_set_bridge_device switch
26 ucidef_set_interface_lan "$lan_list"
27
28 lan_mac=""
29 lan_mac_start=""
30 lan_mac_end=""
31 label_mac=""
32 case $board in
33 hpe,1920-8g|\
34 hpe,1920-8g-poe-65w|\
35 hpe,1920-8g-poe-180w|\
36 hpe,1920-16g|\
37 hpe,1920-24g)
38 label_mac=$(mtd_get_mac_binary factory 0x68)
39 lan_mac=$label_mac
40 mac_count1=$(hexdump -v -n 4 -s 0x110 -e '4 "%d"' $(find_mtd_part factory) 2>/dev/null)
41 mac_count2=$(hexdump -v -n 4 -s 0x114 -e '4 "%d"' $(find_mtd_part factory) 2>/dev/null)
42 lan_mac_start=$(macaddr_add $lan_mac 2)
43 lan_mac_end=$(macaddr_add $lan_mac $((mac_count2-mac_count1)))
44 ;;
45 tplink,sg2008p-v1|\
46 tplink,sg2210p-v3|\
47 tplink,sg2452p-v4|\
48 tplink,t1600g-28ts-v3)
49 label_mac=$(get_mac_label)
50 lan_mac="$label_mac"
51 ;;
52 *)
53 lan_mac=$(mtd_get_mac_ascii u-boot-env2 mac_start)
54 lan_mac_end=$(mtd_get_mac_ascii u-boot-env2 mac_end)
55 label_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
56 [ -z "$lan_mac" ] && lan_mac=$label_mac
57 ;;
58 esac
59
60 ucidef_set_interface_macaddr "lan" $lan_mac
61 ucidef_set_bridge_mac "$lan_mac"
62 ucidef_set_network_device_mac eth0 $lan_mac
63 [ -z "$lan_mac_start" ] && lan_mac_start=$lan_mac
64 for lan in $lan_list; do
65 ucidef_set_network_device_mac $lan $lan_mac_start
66 [ -z "$lan_mac_end" ] || [ "$lan_mac_start" == "$lan_mac_end" ] && lan_mac_start=$(macaddr_setbit_la $lan_mac_start)
67 lan_mac_start=$(macaddr_add $lan_mac_start 1)
68 done
69 [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
70
71 case $board in
72 hpe,1920-8g-poe-65w)
73 ucidef_set_poe 65 "$lan_list_rev" "lan9 lan10"
74 ;;
75 hpe,1920-8g-poe-180w)
76 ucidef_set_poe 180 "$lan_list_rev" "lan9 lan10"
77 ;;
78 netgear,gs110tpp-v1)
79 ucidef_set_poe 130 "$lan_list" "lan9 lan10"
80 ;;
81 netgear,gs310tp-v1)
82 ucidef_set_poe 55 "$lan_list" "lan9 lan10"
83 ;;
84 zyxel,gs1900-10hp)
85 ucidef_set_poe 77 "$lan_list" "lan9 lan10"
86 ;;
87 zyxel,gs1900-8hp-v1|\
88 zyxel,gs1900-8hp-v2)
89 ucidef_set_poe 70 "$lan_list"
90 ;;
91 zyxel,gs1900-24hp-v1|\
92 zyxel,gs1900-24hp-v2)
93 ucidef_set_poe 170 "$lan_list" "lan25 lan26"
94 ;;
95 esac
96
97 board_config_flush
98
99 exit 0