aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ramips/base-files
diff options
context:
space:
mode:
authorJames <>2015-11-04 11:49:21 +0000
committerJames <>2015-11-04 11:49:21 +0000
commit716ca530e1c4515d8683c9d5be3d56b301758b66 (patch)
tree700eb5bcc1a462a5f21dcec15ce7c97ecfefa772 /target/linux/ramips/base-files
downloadtrunk-47381-master.tar.gz
trunk-47381-master.tar.bz2
trunk-47381-master.zip
trunk-47381HEADmaster
Diffstat (limited to 'target/linux/ramips/base-files')
-rwxr-xr-xtarget/linux/ramips/base-files/etc/board.d/01_leds275
-rwxr-xr-xtarget/linux/ramips/base-files/etc/board.d/02_network381
-rw-r--r--target/linux/ramips/base-files/etc/diag.sh203
-rw-r--r--target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom67
-rw-r--r--target/linux/ramips/base-files/etc/hotplug.d/usb/10-motion1
-rw-r--r--target/linux/ramips/base-files/etc/inittab3
-rw-r--r--target/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header22
-rw-r--r--target/linux/ramips/base-files/lib/preinit/03_preinit_do_ramips.sh9
-rw-r--r--target/linux/ramips/base-files/lib/preinit/04_handle_checksumming56
-rw-r--r--target/linux/ramips/base-files/lib/preinit/07_set_preinit_iface_ramips34
-rwxr-xr-xtarget/linux/ramips/base-files/lib/ramips.sh484
-rwxr-xr-xtarget/linux/ramips/base-files/lib/upgrade/platform.sh211
12 files changed, 1746 insertions, 0 deletions
diff --git a/target/linux/ramips/base-files/etc/board.d/01_leds b/target/linux/ramips/base-files/etc/board.d/01_leds
new file mode 100755
index 0000000..5627c8c
--- /dev/null
+++ b/target/linux/ramips/base-files/etc/board.d/01_leds
@@ -0,0 +1,275 @@
+#!/bin/sh
+
+. /lib/functions/uci-defaults-new.sh
+. /lib/ramips.sh
+
+set_usb_led() {
+ ucidef_set_led_usbdev "usb" "USB" "$1" "1-1"
+}
+
+set_wifi_led() {
+ ucidef_set_led_netdev "wifi_led" "wifi" "$1" "wlan0"
+}
+
+
+board=$(ramips_board_name)
+
+board_config_update
+
+case $board in
+3g150b|\
+3g300m)
+ set_usb_led "$board:blue:3g"
+ ;;
+3g-6200n)
+ set_wifi_led "$board:amber:wlan"
+ set_usb_led "$board:blue:3g"
+ ;;
+3g-6200nl|\
+br-6475nd|\
+mzk-w300nh2)
+ set_wifi_led "$board:amber:wlan"
+ ;;
+a5-v11)
+ ucidef_set_led_default "power" "POWER" "$board:red:power" "1"
+ ;;
+ai-br100)
+ ucidef_set_led_netdev "wan" "wan" "$board:blue:wan" "eth0.2"
+ set_wifi_led "$board:blue:wlan"
+ ;;
+air3gii)
+ set_wifi_led "$board:green:wlan"
+ set_usb_led "$board:green:mobile"
+ ;;
+all0239-3g|\
+hw550-3g|\
+mofi3500-3gn|\
+sap-g3200u3)
+ set_usb_led "$board:green:usb"
+ ;;
+all0256n)
+ ucidef_set_rssimon "wlan0" "40000" "1"
+ ucidef_set_led_rssi "rssilow" "RSSILOW" "$board:green:rssilow" "wlan0" "1" "40" "0" "6"
+ ucidef_set_led_rssi "rssimedium" "RSSIMEDIUM" "$board:green:rssimed" "wlan0" "30" "80" "-29" "5"
+ ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "$board:green:rssihigh" "wlan0" "70" "100" "-69" "8"
+ set_wifi_led "rt2800pci-phy0::radio"
+ ;;
+ar670w|\
+ar725w|\
+awapn2403)
+ set_wifi_led "rt2800soc-phy0::radio"
+ ;;
+asl26555)
+ ucidef_set_led_default "power" "POWER" "$board:green:power" "1"
+ ucidef_set_led_netdev "eth" "ETH" "$board:green:eth" "eth0"
+ set_wifi_led "$board:green:wlan"
+ set_usb_led "$board:green:3g"
+ ;;
+bc2)
+ set_usb_led "$board:blue:usb"
+ ;;
+br-6425)
+ set_wifi_led "$board:orange:wlan"
+ ;;
+broadway)
+ set_usb_led "$board:red:diskmounted"
+ set_wifi_led "$board:red:wps_active"
+ ;;
+cf-wr800n)
+ ucidef_set_led_netdev "lan" "lan" "$board:white:ethernet" eth0.1
+ set_wifi_led "$board:white:wifi"
+ ;;
+cy-swr1100)
+ ucidef_set_led_default "wps" "WPS" "$board:blue:wps" "0"
+ set_usb_led "$board:blue:usb"
+ ;;
+d105)
+ ucidef_set_led_default "power" "POWER" "$board:red:power" "1"
+ set_usb_led "$board:green:usb"
+ ;;
+db-wrt01)
+ ucidef_set_led_default "power" "power" "$board:orange:power" "1"
+ ;;
+dcs-930l-b1)
+ ucidef_set_led_default "power" "POWER" "$board:red:power" "1"
+ ucidef_set_led_netdev "wifi" "WiFi" "$board:blue:wps"
+ ;;
+dir-300-b1|\
+dir-600-b1|\
+dir-600-b2|\
+dir-620-a1)
+ ucidef_set_led_default "wan" "WAN LED (amber)" "$board:amber:wan" "1"
+ set_wifi_led "rt2800pci-phy0::radio"
+ ;;
+dir-300-b7|\
+dir-320-b1|\
+dir-610-a1|\
+esr-9753|\
+hlk-rm04|\
+sl-r7205|\
+v11st-fe|\
+w306r-v20|\
+wt1520)
+ set_wifi_led "rt2800pci-phy0::radio"
+ ;;
+dir-615-d|\
+dir-615-h1)
+ ucidef_set_led_default "status" "Status LED (amber)" "$board:amber:status" "0"
+ set_wifi_led "rt2800pci-phy0::radio"
+ ;;
+dir-620-d1)
+ set_wifi_led "$board:green:wifi"
+ ;;
+dir-810l|\
+mzk-dp150n)
+ ucidef_set_led_default "power" "power" "$board:green:power" "1"
+ ;;
+f5d8235-v1|\
+f5d8235-v2)
+ set_usb_led "$board:blue:storage"
+ ;;
+fonera20n)
+ set_usb_led "$board:orange:usb"
+ set_wifi_led "$board:orange:wifi"
+ ;;
+hc5661)
+ ucidef_set_led_default "system" "system" "$board:blue:system" "1"
+ ucidef_set_led_netdev "internet" "internet" "$board:blue:internet" "eth0.2"
+ set_wifi_led "$board:blue:wlan2g"
+ ;;
+hc5761)
+ ucidef_set_led_default "system" "system" "$board:blue:system" "1"
+ ucidef_set_led_netdev "internet" "internet" "$board:blue:internet" "eth0.2"
+ set_wifi_led "$board:blue:wlan2g"
+ ucidef_set_led_netdev "wifi5g" "wifi5g" "$board:blue:wlan5g" "rai0"
+ ;;
+hc5861)
+ ucidef_set_led_default "system" "system" "$board:blue:system" "1"
+ ucidef_set_led_netdev "internet" "internet" "$board:blue:internet" "eth0.2"
+ set_wifi_led "$board:blue:wlan2g"
+ ucidef_set_led_netdev "wifi5g" "wifi5g" "$board:blue:wlan5g" "rai0"
+ ucidef_set_led_default "turbo" "turbo" "$board:blue:turbo" "0"
+ ;;
+hg255d)
+ set_wifi_led "$board:green:wlan"
+ set_usb_led "$board:green:usb"
+ ucidef_set_led_interface "lan" "$board:green:internet"
+ ;;
+hpm)
+ ucidef_set_led_default "power" "POWER" "$board:orange:power" "1"
+ ucidef_set_led_netdev "eth" "ETH" "$board:green:eth" "eth0"
+ set_wifi_led "$board:green:wifi"
+ ;;
+ht-tm02)
+ ucidef_set_led_netdev "eth" "Ethernet" "$board:green:lan" "eth0"
+ set_wifi_led "$board:blue:wlan"
+ ;;
+m2m)
+ set_wifi_led "$board:blue:wifi"
+ ucidef_set_led_netdev "eth" "Ethernet" "$board:green:wan" "eth0"
+ ;;
+miniembplug)
+ set_wifi_led "$board:red:wlan"
+ set_usb_led "$board:green:mobile"
+ ;;
+miwifi-mini)
+ ucidef_set_led_default "power" "power" "$board:red:status" "1"
+ ;;
+mlw221|\
+mlwg2)
+ set_wifi_led "$board:blue:wifi"
+ ucidef_set_led_default "system" "system" "$board:blue:system" "1"
+ ;;
+mpr-a1|\
+mpr-a2)
+ set_wifi_led "$board:blue:system"
+ ;;
+mr-102n)
+ set_wifi_led "$board:green:wlan"
+ set_usb_led "$board:green:usb"
+ ;;
+na930)
+ set_usb_led "$board:blue:status"
+ ;;
+nw718)
+ set_usb_led "$board:amber:usb"
+ ;;
+oy-0001)
+ ucidef_set_led_default "power" "power" "$board:green:power" "1"
+ set_wifi_led "$board:green:wifi"
+ ;;
+pbr-m1)
+ ucidef_set_led_netdev "internet" "internet" "$board:green:internet" "eth0.2"
+ ucidef_set_led_default "power" "power" "$board:green:power" "1"
+ ucidef_set_led_default "sys" "sys" "$board:green:sys" "1"
+ ;;
+px-4885)
+ set_wifi_led "$board:orange:wifi"
+ set_usb_led "$board:blue:storage"
+ ;;
+re6500)
+ ucidef_set_led_default "power" "power" "$board:white:power" "1"
+ ucidef_set_led_default "wifi" "wifi" "$board:orange:wifi" "1"
+ ;;
+rp-n53)
+ ucidef_set_led_netdev "eth" "Network" "$board:white:back" "eth0"
+ set_wifi_led "$board:blue:wifi"
+ ;;
+rt-n14u)
+ ucidef_set_led_default "power" "power" "$board:blue:power" "1"
+ ucidef_set_led_netdev "lan" "lan" "$board:blue:lan" eth0.1
+ ucidef_set_led_netdev "wan" "wan" "$board:blue:wan" eth0.2
+ set_wifi_led "$board:blue:air"
+ set_usb_led "$board:blue:usb"
+ ;;
+tiny-ac)
+ set_wifi_led "$board:orange:wifi"
+ set_usb_led "$board:green:usb"
+ ;;
+vocore)
+ ucidef_set_led_netdev "eth" "ETH" "$board:orange:eth" "eth0"
+ set_wifi_led "$board:green:status"
+ ;;
+w502u)
+ set_usb_led "$board:blue:usb"
+ set_wifi_led "rt2800pci-phy0::radio"
+ ;;
+wcr-150gn)
+ set_usb_led "$board:amber:user"
+ ;;
+whr-1166d|\
+whr-300hp2|\
+whr-600d)
+ ucidef_set_led_default "power" "power" "$board:green:power" "1"
+ ucidef_set_led_default "router" "router" "$board:green:router" "1"
+ ;;
+wnce2001)
+ set_wifi_led "$board:green:wlan"
+ ;;
+wt3020)
+ ucidef_set_led_default "power" "power" "$board:blue:power" "0"
+ ;;
+y1|\
+y1s)
+ ucidef_set_led_default "power" "power" "$board:blue:power" "1"
+ set_usb_led "$board:blue:usb"
+ set_wifi_led "$board:blue:wifi"
+ ;;
+zbt-wa05)
+ ucidef_set_led_default "power" "power" "$board:blue:power" "1"
+ set_wifi_led "$board:blue:air"
+ set_usb_led "$board:blue:usb"
+ ;;
+zbt-wr8305rt)
+ ucidef_set_led_default "power" "power" "$board:green:sys" "1"
+ set_usb_led "$board:green:usb"
+ set_wifi_led "$board:green:wifi"
+ ;;
+zte-q7)
+ set_wifi_led "$board:blue:status"
+ ;;
+esac
+
+board_config_flush
+
+exit 0
diff --git a/target/linux/ramips/base-files/etc/board.d/02_network b/target/linux/ramips/base-files/etc/board.d/02_network
new file mode 100755
index 0000000..3821742
--- /dev/null
+++ b/target/linux/ramips/base-files/etc/board.d/02_network
@@ -0,0 +1,381 @@
+#!/bin/sh
+
+. /lib/functions.sh
+. /lib/ramips.sh
+. /lib/functions/uci-defaults-new.sh
+. /lib/functions/system.sh
+
+ramips_setup_rt3x5x_vlans()
+{
+ if [ ! -x /sbin/swconfig ]; then
+ # legacy default
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ return
+ fi
+ local wanports=""
+ local lanports=""
+ for port in 5 4 3 2 1 0; do
+ if [ `swconfig dev rt305x port $port get disable` = "1" ]; then
+ continue
+ fi
+ if [ `swconfig dev rt305x port $port get lan` = "0" ]; then
+ wanports="$port $wanports"
+ else
+ lanports="$port $lanports"
+ fi
+ done
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ucidef_add_switch "rt305x" "1" "1"
+ ucidef_add_switch_vlan "rt305x" "1" "$lanports 6t"
+ ucidef_add_switch_vlan "rt305x" "2" "$wanports 6t"
+}
+
+ramips_setup_interfaces()
+{
+ local board="$1"
+
+ ucidef_set_interface_loopback
+
+ case $board in
+ 3g150b|\
+ 3g300m|\
+ all0256n|\
+ all5002|\
+ all5003|\
+ broadway|\
+ dcs-930|\
+ dcs-930l-b1|\
+ ht-tm02|\
+ linkits7688 | \
+ linkits7688d | \
+ microwrt|\
+ ncs601w|\
+ w150m|\
+ wnce2001|\
+ zte-q7)
+ ucidef_add_switch "switch0" "1" "0"
+ ucidef_set_interface_lan "eth0"
+ ;;
+ 3g-6200nl|\
+ mlw221|\
+ mr-102n)
+ ucidef_set_interface_lan "eth0.2"
+ ;;
+ 3g-6200n|\
+ ai-br100|\
+ db-wrt01|\
+ dir-300-b7|\
+ dir-320-b1|\
+ dir-610-a1|\
+ dir-615-h1|\
+ firewrt|\
+ hlk-rm04|\
+ miwifi-mini|\
+ mt7621|\
+ mt7628|\
+ mzk-750dhp|\
+ mzk-w300nh2|\
+ oy-0001|\
+ pbr-m1|\
+ sap-g3200u3|\
+ whr-300hp2|\
+ whr-600d|\
+ wsr-1166|\
+ wsr-600|\
+ wt1520|\
+ y1|\
+ zbt-wg2626)
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 6t"
+ ucidef_add_switch_vlan "switch0" "2" "4 6t"
+ ;;
+ a5-v11)
+ ucidef_set_interface_lan "eth0.1"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "0 6t"
+ ;;
+ ar670w|\
+ ar725w|\
+ rt-n15|\
+ wl-351)
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 5t"
+ ucidef_add_switch_vlan "switch0" "2" "4 5t"
+ ;;
+ asl26555|\
+ re6500|\
+ rp-n53)
+ ucidef_set_interface_lan "eth0.1"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 6t"
+ ;;
+ atp-52b|\
+ awm002-evb|\
+ awm003-evb|\
+ dir-645|\
+ dir-860l-b1|\
+ f5d8235-v1|\
+ f5d8235-v2|\
+ hg255d|\
+ rt-n14u|\
+ ur-326n4g|\
+ wrtnode|\
+ wt3020|\
+ zbt-wa05)
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 6t"
+ ucidef_add_switch_vlan "switch0" "2" "0 6t"
+ ;;
+ awapn2403)
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "0 6t"
+ ucidef_add_switch_vlan "switch0" "2" "1 6t"
+ ;;
+ b2c|\
+ nw718|\
+ psr-680w|\
+ sl-r7205|\
+ ur-336un|\
+ w502u|\
+ wr6202)
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ;;
+ br-6475nd)
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 9t"
+ ucidef_add_switch_vlan "switch0" "2" "0 9t"
+ ;;
+ cf-wr800n)
+ ucidef_set_interface_lan "eth0.1"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "4 6t"
+ ;;
+ cy-swr1100)
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 9t"
+ ucidef_add_switch_vlan "switch0" "2" "4 9t"
+ ;;
+ d105|\
+ hpm|\
+ na930|\
+ wli-tx4-ag300n)
+ ucidef_set_interface_lan "eth0"
+ ;;
+ e1700|\
+ mt7620a_mt7530)
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ucidef_add_switch "switch1" "1" "1"
+ ucidef_add_switch_vlan "switch1" "1" "0 1 2 3 6t"
+ ucidef_add_switch_vlan "switch1" "2" "4 6t"
+ ;;
+ hc5*61|\
+ y1s)
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 5 6t"
+ ucidef_add_switch_vlan "switch0" "2" "0 6t"
+ ;;
+ m2m)
+ ucidef_add_switch "switch0" "4"
+ ucidef_set_interface_lan "eth0"
+ ;;
+ mlwg2|\
+ wizard8800|\
+ wl-330n|\
+ wmr-300)
+ ucidef_set_interface_lan "eth0.1"
+ ;;
+ mzk-dp150n|\
+ vocore)
+ ucidef_set_interface_lan "eth0.1"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "0 4 6t"
+ ;;
+ rt-n56u)
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 8t"
+ ucidef_add_switch_vlan "switch0" "2" "4 8t"
+ ;;
+ tew-691gr|\
+ tew-692gr)
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "0t 1 2 3 4"
+ ucidef_add_switch_vlan "switch0" "2" "0t 5"
+ ;;
+ v11st-fe|\
+ wzr-agl300nh)
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 5t"
+ ucidef_add_switch_vlan "switch0" "2" "0 5t"
+ ;;
+ wcr-150gn)
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "0 6t"
+ ucidef_add_switch_vlan "switch0" "2" "6t"
+ ;;
+ whr-1166d)
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 6t"
+ ucidef_add_switch_vlan "switch0" "2" "5 6t"
+ ;;
+ wizfi630a)
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "1 2 6t"
+ ucidef_add_switch_vlan "switch0" "2" "0 6t"
+ ;;
+ zbt-wr8305rt)
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 4 6t"
+ ucidef_add_switch_vlan "switch0" "2" "4 6t"
+ ;;
+ *)
+ RT3X5X=`cat /proc/cpuinfo | egrep "(RT3.5|RT5350)"`
+ if [ -n "${RT3X5X}" ]; then
+ ramips_setup_rt3x5x_vlans
+ else
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ fi
+ ;;
+ esac
+}
+
+ramips_setup_macs()
+{
+ local board="$1"
+ local lan_mac=""
+ local wan_mac=""
+
+ case $board in
+ a5-v11|\
+ bc2|\
+ broadway|\
+ d105|\
+ dir-300-b7|\
+ dir-320-b1|\
+ dir-620-a1|\
+ esr-9753|\
+ freestation5|\
+ hlk-rm04|\
+ mpr-a1|\
+ mpr-a2|\
+ psr-680w|\
+ sl-r7205|\
+ y1|\
+ y1s)
+ lan_mac=$(cat /sys/class/net/eth0/address)
+ lan_mac=$(macaddr_setbit_la "$lan_mac")
+ wan_mac=$(macaddr_add "$lan_mac" 1)
+ ;;
+ all0239-3g|\
+ carambola|\
+ freestation5|\
+ w502u|\
+ wnce2001)
+ wan_mac=$(mtd_get_mac_binary factory 46)
+ ;;
+ br-6475nd)
+ lan_mac=$(cat /sys/class/net/eth0/address)
+ wan_mac=$(mtd_get_mac_binary devdata 7)
+ ;;
+ cy-swr1100|\
+ dir-645)
+ lan_mac=$(mtd_get_mac_ascii nvram lanmac)
+ wan_mac=$(mtd_get_mac_ascii nvram wanmac)
+ ;;
+ e1700)
+ wan_mac=$(mtd_get_mac_ascii config WAN_MAC_ADDR)
+ ;;
+ hc5*61)
+ lan_mac=`mtd_get_mac_ascii bdinfo "Vfac_mac "`
+ [ -n "$lan_mac" ] || lan_mac=$(cat /sys/class/net/eth0/address)
+ wan_mac=$(macaddr_add "$lan_mac" 1)
+ ;;
+ ht-tm02)
+ lan_mac=$(cat /sys/class/net/eth0/address)
+ ;;
+ linkits7688 | \
+ linkits7688d)
+ wan_mac=$(mtd_get_mac_binary factory 4)
+ lan_mac=$(mtd_get_mac_binary factory 46)
+ ;;
+ m3|\
+ m4|\
+ x5|\
+ x8)
+ lan_mac=$(cat /sys/class/net/eth0/address)
+ lan_mac=$(macaddr_add "$lan_mac" -2)
+ ;;
+ oy-0001)
+ lan_mac=$(mtd_get_mac_binary factory 40)
+ wan_mac=$(mtd_get_mac_binary factory 46)
+ ;;
+ rt-n56u)
+ lan_mac=$(cat /sys/class/net/eth0/address)
+ lan_mac=$(macaddr_setbit_la "$lan_mac")
+ wan_mac=$(mtd_get_mac_binary factory 32772)
+ ;;
+ tew-691gr)
+ lan_mac=$(cat /sys/class/net/eth0/address)
+ wan_mac=$(macaddr_add "$lan_mac" 3)
+ ;;
+ tew-692gr)
+ lan_mac=$(cat /sys/class/net/eth0/address)
+ wan_mac=$(macaddr_add "$lan_mac" 4)
+ ;;
+ tiny-ac)
+ lan_mac=$(mtd_get_mac_ascii u-boot-env LAN_MAC_ADDR)
+ wan_mac=$(mtd_get_mac_ascii u-boot-env WAN_MAC_ADDR)
+ ;;
+ w306r-v20)
+ lan_mac=$(cat /sys/class/net/eth0/address)
+ wan_mac=$(macaddr_add "$lan_mac" 5)
+ ;;
+ wcr-150gn)
+ wan_mac=$(mtd_get_mac_binary factory 40)
+ ;;
+ whr-1166d|\
+ whr-300hp2|\
+ whr-600d|\
+ wsr-600)
+ wan_mac=$(mtd_get_mac_binary factory 4)
+ lan_mac=$wan_mac
+ ;;
+ wizfi630a)
+ lan_mac=$(mtd_get_mac_binary factory 4)
+ wan_mac=$(mtd_get_mac_binary factory 40)
+ ;;
+ wsr-1166)
+ local index="$(find_mtd_index "board_data")"
+ wan_mac="$(grep -m1 mac= "/dev/mtd${index}" | cut -d= -f2)"
+ lan_mac=$wan_mac
+ ;;
+ *)
+ lan_mac=$(cat /sys/class/net/eth0/address)
+ wan_mac=$(macaddr_add "$lan_mac" 1)
+ ;;
+ esac
+
+ [ -n "$lan_mac" ] && ucidef_set_interface_macaddr lan $lan_mac
+ [ -n "$wan_mac" ] && ucidef_set_interface_macaddr wan $wan_mac
+}
+
+board_config_update
+board=$(ramips_board_name)
+ramips_setup_interfaces $board
+ramips_setup_macs $board
+board_config_flush
+
+exit 0
diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh
new file mode 100644
index 0000000..3013d24
--- /dev/null
+++ b/target/linux/ramips/base-files/etc/diag.sh
@@ -0,0 +1,203 @@
+#!/bin/sh
+# Copyright (C) 2010-2013 OpenWrt.org
+
+. /lib/functions/leds.sh
+. /lib/ramips.sh
+
+get_status_led() {
+ board=$(ramips_board_name)
+
+ case $board in
+ 3g150b|\
+ 3g300m|\
+ w150m)
+ status_led="$board:blue:ap"
+ ;;
+ 3g-6200n|\
+ ar670w|\
+ ar725w|\
+ asl26555|\
+ br-6425|\
+ br-6475nd|\
+ e1700|\
+ fonera20n|\
+ mzk-dp150n|\
+ mzk-w300nh2|\
+ nbg-419n|\
+ pwh2004|\
+ wnce2001|\
+ x5|\
+ x8|\
+ xdxrn502j)
+ status_led="$board:green:power"
+ ;;
+ a5-v11|\
+ d105|\
+ dcs-930l-b1|\
+ hlk-rm04|\
+ mpr-a1|\
+ mpr-a2)
+ status_led="$board:red:power"
+ ;;
+ ai-br100|\
+ ht-tm02)
+ status_led="$board:blue:wlan"
+ ;;
+ all0239-3g|\
+ dcs-930|\
+ dir-300-b1|\
+ dir-300-b7|\
+ dir-320-b1|\
+ dir-600-b1|\
+ dir-600-b2|\
+ dir-610-a1|\
+ dir-615-d|\
+ dir-615-h1|\
+ dir-620-a1|\
+ dir-620-d1|\
+ hpm|\
+ hw550-3g|\
+ miniembwifi|\
+ mofi3500-3gn|\
+ rut5xx|\
+ v11st-fe|\
+ vocore|\
+ wmr-300|\
+ zbt-wg2626)
+ status_led="$board:green:status"
+ ;;
+ atp-52b|\
+ ip2202)
+ status_led="$board:green:run"
+ ;;
+ awapn2403|\
+ dir-645)
+ status_led="$board:green:wps"
+ ;;
+ cf-wr800n)
+ status_led="$board:white:wps"
+ ;;
+ cy-swr1100|\
+ w502u)
+ status_led="$board:blue:wps"
+ ;;
+ dap-1350|\
+ na930|\
+ rt-n13u|\
+ rt-n14u|\
+ rt-n15|\
+ rt-n56u|\
+ wl-330n|\
+ wl-330n3g|\
+ wli-tx4-ag300n|\
+ wt3020|\
+ y1|\
+ y1s)
+ status_led="$board:blue:power"
+ ;;
+ db-wrt01|\
+ esr-9753)
+ status_led="$board:orange:power"
+ ;;
+ f5d8235-v2)
+ status_led="$board:blue:router"
+ ;;
+ f7c027)
+ status_led="$board:orange:status"
+ ;;
+ hc5*61|\
+ mlw221|\
+ mlwg2)
+ status_led="$board:blue:system"
+ ;;
+ linkits7688| \
+ linkits7688d)
+ [ "$1" = "upgrade" ] && status_led="mediatek:orange:wifi"
+ ;;
+ m2m)
+ status_led="$board:blue:wifi"
+ ;;
+ m3|\
+ m4)
+ status_led="$board:blue:status"
+ ;;
+ miwifi-mini|\
+ zte-q7)
+ status_led="$board:red:status"
+ ;;
+ mr-102n)
+ status_led="$board:amber:status"
+ ;;
+ nw718)
+ status_led="$board:amber:cpu"
+ ;;
+ oy-0001|\
+ sl-r7205)
+ status_led="$board:green:wifi"
+ ;;
+ pbr-m1|\
+ w306r-v20|\
+ zbt-wr8305rt)
+ status_led="$board:green:sys"
+ ;;
+ psr-680w)
+ status_led="$board:red:wan"
+ ;;
+ px-4885|\
+ re6500|\
+ whr-1166d|\
+ whr-300hp2|\
+ whr-600d)
+ status_led="$board:orange:wifi"
+ ;;
+ rt-n10-plus|\
+ tew-691gr|\
+ tew-692gr|\
+ ur-326n4g|\
+ ur-336un|\
+ wr512-3gn)
+ status_led="$board:green:wps"
+ ;;
+ sap-g3200u3)
+ status_led="$board:green:usb"
+ ;;
+ v22rw-2x2)
+ status_led="$board:green:security"
+ ;;
+ wcr-150gn|\
+ wl-351)
+ status_led="$board:amber:power"
+ ;;
+ whr-g300n|\
+ wzr-agl300nh)
+ status_led="$board:green:router"
+ ;;
+ wizfi630a)
+ status_led="$board::run"
+ ;;
+ wsr-1166|\
+ wsr-600)
+ status_led="$board:orange:diag"
+ ;;
+ esac
+}
+
+set_state() {
+ get_status_led $1
+
+ case "$1" in
+ preinit)
+ status_led_blink_preinit
+ ;;
+ failsafe)
+ status_led_blink_failsafe
+ ;;
+ upgrade | \
+ preinit_regular)
+ status_led_blink_preinit_regular
+ ;;
+ done)
+ status_led_on
+ ;;
+ esac
+}
diff --git a/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom b/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
new file mode 100644
index 0000000..0e02177
--- /dev/null
+++ b/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+rt2x00_eeprom_die() {
+ echo "rt2x00 eeprom: " "$*"
+ exit 1
+}
+
+rt2x00_eeprom_extract() {
+ local part=$1
+ local offset=$2
+ local count=$3
+ local mtd
+
+ . /lib/functions.sh
+
+ mtd=$(find_mtd_part $part)
+ [ -n "$mtd" ] || \
+ rt2x00_eeprom_die "no mtd device found for partition $part"
+
+ dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \
+ rt2x00_eeprom_die "failed to extract from $mtd"
+}
+
+rt2x00_eeprom_set_macaddr() {
+ local macaddr=$1
+
+ [ -n "$macaddr" ] || \
+ rt2x00_eeprom_die "invalid wlan mac address"
+
+ macaddr_2bin $macaddr | dd of=/lib/firmware/$FIRMWARE \
+ conv=notrunc bs=1 seek=4 count=6 2>/dev/null || \
+ rt2x00_eeprom_die "failed to write mac address to eeprom file"
+}
+
+FW="/lib/firmware/$FIRMWARE"
+[ -e "$FW" ] && exit 0
+
+. /lib/ramips.sh
+. /lib/functions/system.sh
+
+board=$(ramips_board_name)
+
+case "$FIRMWARE" in
+"soc_wmac.eeprom")
+ case $board in
+ *)
+ rt2x00_eeprom_die "Please define mtd-eeprom in $board DTS file!"
+ ;;
+ esac
+ ;;
+
+"rt2x00pci_1_0.eeprom")
+ case $board in
+ cy-swr1100)
+ rt2x00_eeprom_extract "factory" 8192 512
+ ;;
+ br-6475nd | rt-n56u | whr-600d | whr-1166d)
+ rt2x00_eeprom_extract "factory" 32768 512
+ ;;
+ tiny-ac)
+ local wifi_mac=$(mtd_get_mac_ascii u-boot-env INIC_MAC_ADDR)
+ rt2x00_eeprom_extract "factory" 0 512
+ rt2x00_eeprom_set_macaddr $wifi_mac
+ ;;
+ esac
+ ;;
+esac
diff --git a/target/linux/ramips/base-files/etc/hotplug.d/usb/10-motion b/target/linux/ramips/base-files/etc/hotplug.d/usb/10-motion
new file mode 100644
index 0000000..e96acc8
--- /dev/null
+++ b/target/linux/ramips/base-files/etc/hotplug.d/usb/10-motion
@@ -0,0 +1 @@
+[ "$ACTION" = "motion" ] && logger webcam motion event
diff --git a/target/linux/ramips/base-files/etc/inittab b/target/linux/ramips/base-files/etc/inittab
new file mode 100644
index 0000000..7817185
--- /dev/null
+++ b/target/linux/ramips/base-files/etc/inittab
@@ -0,0 +1,3 @@
+::sysinit:/etc/init.d/rcS S boot
+::shutdown:/etc/init.d/rcS K shutdown
+::askconsole:/bin/ash --login
diff --git a/target/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header b/target/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header
new file mode 100644
index 0000000..35167f1
--- /dev/null
+++ b/target/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header
@@ -0,0 +1,22 @@
+#!/bin/sh
+#
+# Copyright (C) 2012 OpenWrt.org
+#
+
+. /lib/ramips.sh
+
+fix_seama_header() {
+ local part=$1
+
+ mtd fixseama $part
+}
+
+board=$(ramips_board_name)
+
+case "$board" in
+cy-swr1100 | \
+dir-645 | \
+dir-860l-b1)
+ fix_seama_header kernel
+ ;;
+esac
diff --git a/target/linux/ramips/base-files/lib/preinit/03_preinit_do_ramips.sh b/target/linux/ramips/base-files/lib/preinit/03_preinit_do_ramips.sh
new file mode 100644
index 0000000..31ef5f8
--- /dev/null
+++ b/target/linux/ramips/base-files/lib/preinit/03_preinit_do_ramips.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+do_ramips() {
+ . /lib/ramips.sh
+
+ ramips_board_detect
+}
+
+boot_hook_add preinit_main do_ramips
diff --git a/target/linux/ramips/base-files/lib/preinit/04_handle_checksumming b/target/linux/ramips/base-files/lib/preinit/04_handle_checksumming
new file mode 100644
index 0000000..057fe45
--- /dev/null
+++ b/target/linux/ramips/base-files/lib/preinit/04_handle_checksumming
@@ -0,0 +1,56 @@
+#!/bin/sh
+
+# Netgear WNCE2001 has does a checksum check on boot and goes into recovery
+# tftp mode when the check fails. Initializing the JFFS2 partition triggers
+# this, so we make sure to zero checksum and size to be checksummed before
+# that happens, so this needs to run very early during boot.
+
+do_checksumming_disable() {
+ . /lib/ramips.sh
+
+ local board=$(ramips_board_name)
+
+ case "$board" in
+ wnce2001)
+ echo "Board is WNCE2001, updating checksum partition..."
+ local zeroes=/dev/zero
+ local tmpfile=/tmp/wnce2001_checksum
+ local partname=checksum
+ local mtd=$(find_mtd_part $partname)
+ dd if=$mtd of=$tmpfile bs=80 count=1 2>/dev/null
+ signature=$(dd if=$tmpfile bs=1 skip=24 count=20 2>/dev/null)
+ checksum=$(dd if=$tmpfile bs=1 count=4 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"')
+ if [ "$signature" != "RT3052-AP-WNCE2001-3" ]; then
+ echo "Signature of checksum partition is wrong, bailing."
+ return 0
+ fi
+ if [ "$checksum" != "00000000" ]; then
+ echo "Checksum is set, zeroing."
+ # zero out checksum
+ dd if=$zeroes of=$tmpfile conv=notrunc bs=1 seek=0 count=4 2>/dev/null
+ # zero out bytecount to be checksummed
+ dd if=$zeroes of=$tmpfile conv=notrunc bs=1 seek=60 count=4 2>/dev/null
+ mtd write $tmpfile $partname
+ else
+ echo "Checksum is already zero, nothing to do."
+ fi
+ ;;
+ rt-n56u)
+ echo "Board is ASUS RT-N56U, replacing uImage header..."
+ local firmware_mtd=$(find_mtd_part firmware)
+ local rootfs_mtd=$(find_mtd_part rootfs)
+ local rootfs_data_mtd=$(find_mtd_part rootfs_data)
+ local rootfs_len=$(grep \"rootfs\" /proc/mtd | awk -F' ' '{print "0x"$2}')
+ local rootfs_data_len=$(grep \"rootfs_data\" /proc/mtd | awk -F' ' '{print "0x"$2}')
+ local offset=$(echo "$rootfs_len $rootfs_data_len 0x40" | awk -F' ' '{printf "%i",$1-$2-$3}')
+ local signature=$(dd if=$rootfs_mtd skip=$offset bs=1 count=4 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"')
+ if [ "$signature" = "27051956" ]; then
+ dd conv=notrunc if=$rootfs_mtd skip=$offset of=$firmware_mtd bs=1 count=64 2>/dev/null
+ fi
+ ;;
+ esac
+
+ return 0
+}
+
+boot_hook_add preinit_main do_checksumming_disable
diff --git a/target/linux/ramips/base-files/lib/preinit/07_set_preinit_iface_ramips b/target/linux/ramips/base-files/lib/preinit/07_set_preinit_iface_ramips
new file mode 100644
index 0000000..3dce1b6
--- /dev/null
+++ b/target/linux/ramips/base-files/lib/preinit/07_set_preinit_iface_ramips
@@ -0,0 +1,34 @@
+#!/bin/sh
+#
+# Copyright (C) 2013 OpenWrt.org
+#
+
+. /lib/ramips.sh
+
+ramips_set_preinit_iface() {
+ RT3X5X=`cat /proc/cpuinfo | egrep "(RT3.5|RT5350|MT7628|MT7688)"`
+ if [ -n "${RT3X5X}" ]; then
+ swconfig dev rt305x set reset 1
+ fi
+
+ if echo $RT3X5X | egrep -q "(RT5350|MT7628|MT7688)"; then
+ # This is a dirty hack to get by while the switch
+ # problem is investigated. When VLAN is disabled, ICMP
+ # pings work as expected, but TCP connections time
+ # out, so telnetting in failsafe is impossible. The
+ # likely reason is TCP checksumming hardware getting
+ # disabled:
+ # https://www.mail-archive.com/openwrt-devel@lists.openwrt.org/msg19870.html
+ swconfig dev rt305x set enable_vlan 1
+ swconfig dev rt305x vlan 1 set ports "0 6"
+ swconfig dev rt305x port 6 set untag 0
+ swconfig dev rt305x set apply 1
+ ip link add link eth0 name eth0.1 type vlan id 1
+ ip link set eth0 up
+ ifname=eth0.1
+ else
+ ifname=eth0
+ fi
+}
+
+boot_hook_add preinit_main ramips_set_preinit_iface
diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh
new file mode 100755
index 0000000..62a79c5
--- /dev/null
+++ b/target/linux/ramips/base-files/lib/ramips.sh
@@ -0,0 +1,484 @@
+#!/bin/sh
+#
+# Copyright (C) 2010-2013 OpenWrt.org
+#
+
+RAMIPS_BOARD_NAME=
+RAMIPS_MODEL=
+
+ramips_board_detect() {
+ local machine
+ local name
+
+ machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /machine/ {print $2}' /proc/cpuinfo)
+
+ case "$machine" in
+ *"3G150B")
+ name="3g150b"
+ ;;
+ *"3G300M")
+ name="3g300m"
+ ;;
+ *"3g-6200n")
+ name="3g-6200n"
+ ;;
+ *"3g-6200nl")
+ name="3g-6200nl"
+ ;;
+ *"A5-V11")
+ name="a5-v11"
+ ;;
+ *"Ai-BR100")
+ name="ai-br100"
+ ;;
+ *"Air3GII")
+ name="air3gii"
+ ;;
+ *"ALL0239-3G")
+ name="all0239-3g"
+ ;;
+ *"ALL0256N")
+ name="all0256n"
+ ;;
+ *"ALL5002")
+ name="all5002"
+ ;;
+ *"ALL5003")
+ name="all5003"
+ ;;
+ *"AR670W")
+ name="ar670w"
+ ;;
+ *"AR725W")
+ name="ar725w"
+ ;;
+ *"ASL26555")
+ name="asl26555"
+ ;;
+ *"ATP-52B")
+ name="atp-52b"
+ ;;
+ *"AWAPN2403")
+ name="awapn2403"
+ ;;
+ *"AWM002 EVB")
+ name="awm002-evb"
+ ;;
+ *"AWM003 EVB")
+ name="awm003-evb"
+ ;;
+ *"BC2")
+ name="bc2"
+ ;;
+ *"BR-6425")
+ name="br-6425"
+ ;;
+ *"BR-6475nD")
+ name="br-6475nd"
+ ;;
+ *"Broadway")
+ name="broadway"
+ ;;
+ *"C20i")
+ name="c20i"
+ ;;
+ *"Carambola")
+ name="carambola"
+ ;;
+ *"CF-WR800N")
+ name="cf-wr800n"
+ ;;
+ *"CY-SWR1100")
+ name="cy-swr1100"
+ ;;
+ *"D105")
+ name="d105"
+ ;;
+ *"DAP-1350")
+ name="dap-1350"
+ ;;
+ *"DB-WRT01")
+ name="db-wrt01"
+ ;;
+ *"DCS-930")
+ name="dcs-930"
+ ;;
+ *"DCS-930L B1")
+ name="dcs-930l-b1"
+ ;;
+ *"DIR-300 B1")
+ name="dir-300-b1"
+ ;;
+ *"DIR-300 B7")
+ name="dir-300-b7"
+ ;;
+ *"DIR-320 B1")
+ name="dir-320-b1"
+ ;;
+ *"DIR-600 B1")
+ name="dir-600-b1"
+ ;;
+ *"DIR-600 B2")
+ name="dir-600-b2"
+ ;;
+ *"DIR-610 A1")
+ name="dir-610-a1"
+ ;;
+ *"DIR-615 D")
+ name="dir-615-d"
+ ;;
+ *"DIR-615 H1")
+ name="dir-615-h1"
+ ;;
+ *"DIR-620 A1")
+ name="dir-620-a1"
+ ;;
+ *"DIR-620 D1")
+ name="dir-620-d1"
+ ;;
+ *"DIR-645")
+ name="dir-645"
+ ;;
+ *"DIR-810L")
+ name="dir-810l"
+ ;;
+ *"DIR-860L B1")
+ name="dir-860l-b1"
+ ;;
+ *"Dovado Tiny AC")
+ name="tiny-ac"
+ ;;
+ *"E1700")
+ name="e1700"
+ ;;
+ *"ESR-9753")
+ name="esr-9753"
+ ;;
+ *"F5D8235 v1")
+ name="f5d8235-v1"
+ ;;
+ *"F5D8235 v2")
+ name="f5d8235-v2"
+ ;;
+ *"F7C027")
+ name="f7c027"
+ ;;
+ *"FireWRT")
+ name="firewrt"
+ ;;
+ *"Fonera 2.0N")
+ name="fonera20n"
+ ;;
+ *"FreeStation5")
+ name="freestation5"
+ ;;
+ *"HC5661")
+ name="hc5661"
+ ;;
+ *"HC5761")
+ name="hc5761"
+ ;;
+ *"HC5861")
+ name="hc5861"
+ ;;
+ *"HG255D")
+ name="hg255d"
+ ;;
+ *"HLK-RM04")
+ name="hlk-rm04"
+ ;;
+ *"HPM")
+ name="hpm"
+ ;;
+ *"HT-TM02")
+ name="ht-tm02"
+ ;;
+ *"HW550-3G")
+ name="hw550-3g"
+ ;;
+ *"IP2202")
+ name="ip2202"
+ ;;
+ *"M3")
+ name="m3"
+ ;;
+ *"M4")
+ name="m4"
+ ;;
+ *"MediaTek LinkIt Smart7688")
+ linkit="$(dd bs=1 skip=1024 count=12 if=/dev/mtd2 2> /dev/null)"
+ if [ "${linkit}" = "LINKITS7688D" ]; then
+ name="linkits7688d"
+ RAMIPS_MODEL="${machine} DUO"
+ else
+ name="linkits7688"
+ fi
+ ;;
+ *"Memory 2 Move")
+ name="m2m"
+ ;;
+ *"MicroWRT")
+ name="microwrt"
+ ;;
+ *"MiniEMBPlug")
+ name="miniembplug"
+ ;;
+ *"MiniEMBWiFi")
+ name="miniembwifi"
+ ;;
+ *"MiWiFi Mini")
+ name="miwifi-mini"
+ ;;
+ *"MLW221")
+ name="mlw221"
+ ;;
+ *"MLWG2")
+ name="mlwg2"
+ ;;
+ *"MOFI3500-3GN")
+ name="mofi3500-3gn"
+ ;;
+ *"MPR-A1")
+ name="mpr-a1"
+ ;;
+ *"MPR-A2")
+ name="mpr-a2"
+ ;;
+ *"MR-102N")
+ name="mr-102n"
+ ;;
+ *"MT7620a + MT7530 evaluation"*)
+ name="mt7620a_mt7530"
+ ;;
+ *"MT7620a V22SG"*)
+ name="mt7620a_v22sg"
+ ;;
+ *"MT7621 evaluation"*)
+ name="mt7621"
+ ;;
+ *"MT7628AN evaluation"*)
+ name="mt7628"
+ ;;
+ *"MT7688 evaluation"*)
+ name="mt7688"
+ ;;
+ *"MZK-750DHP")
+ name="mzk-750dhp"
+ ;;
+ *"MZK-DP150N")
+ name="mzk-dp150n"
+ ;;
+ *"MZK-W300NH2"*)
+ name="mzk-w300nh2"
+ ;;
+ *"NA930")
+ name="na930"
+ ;;
+ *"NBG-419N")
+ name="nbg-419n"
+ ;;
+ *"NCS601W")
+ name="ncs601w"
+ ;;
+ *"NW718")
+ name="nw718"
+ ;;
+ *"OY-0001")
+ name="oy-0001"
+ ;;
+ *"PBR-M1")
+ name="pbr-m1"
+ ;;
+ *"PSR-680W"*)
+ name="psr-680w"
+ ;;
+ *"PWH2004")
+ name="pwh2004"
+ ;;
+ *"PX-4885")
+ name="px-4885"
+ ;;
+ *"Q7")
+ name="zte-q7"
+ ;;
+ *"RE6500")
+ name="re6500"
+ ;;
+ *"RN502J")
+ name="xdxrn502j"
+ ;;
+ *"RP-N53")
+ name="rp-n53"
+ ;;
+ *"RT5350F-OLinuXino")
+ name="rt5350f-olinuxino"
+ ;;
+ *"RT5350F-OLinuXino-EVB")
+ name="rt5350f-olinuxino-evb"
+ ;;
+ *"RT-G32 B1")
+ name="rt-g32-b1"
+ ;;
+ *"RT-N10+")
+ name="rt-n10-plus"
+ ;;
+ *"RT-N13U")
+ name="rt-n13u"
+ ;;
+ *"RT-N14U")
+ name="rt-n14u"
+ ;;
+ *"RT-N15")
+ name="rt-n15"
+ ;;
+ *"RT-N56U")
+ name="rt-n56u"
+ ;;
+ *"RUT5XX")
+ name="rut5xx"
+ ;;
+ *"SAP-G3200U3")
+ name="sap-g3200u3"
+ ;;
+ *"SL-R7205"*)
+ name="sl-r7205"
+ ;;
+ *"TEW-691GR")
+ name="tew-691gr"
+ ;;
+ *"TEW-692GR")
+ name="tew-692gr"
+ ;;
+ *"UR-326N4G")
+ name="ur-326n4g"
+ ;;
+ *"UR-336UN")
+ name="ur-336un"
+ ;;
+ *"V11ST-FE")
+ name="v11st-fe"
+ ;;
+ *"V22RW-2X2")
+ name="v22rw-2x2"
+ ;;
+ *"VoCore")
+ name="vocore"
+ ;;
+ *"W150M")
+ name="w150m"
+ ;;
+ *"W306R V2.0")
+ name="w306r-v20"
+ ;;
+ *"W502U")
+ name="w502u"
+ ;;
+ *"WCR-150GN")
+ name="wcr-150gn"
+ ;;
+ *"WHR-1166D")
+ name="whr-1166d"
+ ;;
+ *"WHR-300HP2")
+ name="whr-300hp2"
+ ;;
+ *"WHR-600D")
+ name="whr-600d"
+ ;;
+ *"WHR-G300N")
+ name="whr-g300n"
+ ;;
+ *"WIZARD 8800")
+ name="wizard8800"
+ ;;
+ *"WizFi630A")
+ name="wizfi630a"
+ ;;
+ *"WL-330N")
+ name="wl-330n"
+ ;;
+ *"WL-330N3G")
+ name="wl-330n3g"
+ ;;
+ *"WL-341 v3")
+ name="wl-341v3"
+ ;;
+ *"WL-351 v1 002")
+ name="wl-351"
+ ;;
+ *"WLI-TX4-AG300N")
+ name="wli-tx4-ag300n"
+ ;;
+ *"WMR-300")
+ name="wmr-300"
+ ;;
+ *"WNCE2001")
+ name="wnce2001"
+ ;;
+ *"WR512-3GN-like"*)
+ name="wr512-3gn"
+ ;;
+ *"WR6202")
+ name="wr6202"
+ ;;
+ *"WRTNODE")
+ name="wrtnode"
+ ;;
+ *"WSR-1166DHP")
+ name="wsr-1166"
+ ;;
+ *"WSR-600DHP")
+ name="wsr-600"
+ ;;
+ *"WT1520")
+ name="wt1520"
+ ;;
+ *"WT3020")
+ name="wt3020"
+ ;;
+ *"WZR-AGL300NH")
+ name="wzr-agl300nh"
+ ;;
+ *"X5")
+ name="x5"
+ ;;
+ *"X8")
+ name="x8"
+ ;;
+ *"Y1")
+ name="y1"
+ ;;
+ *"Y1S")
+ name="y1s"
+ ;;
+ *"ZBT-WA05")
+ name="zbt-wa05"
+ ;;
+ *"ZBT-WG2626")
+ name="zbt-wg2626"
+ ;;
+ *"ZBT-WR8305RT")
+ name="zbt-wr8305rt"
+ ;;
+ *)
+ name="generic"
+ ;;
+ esac
+
+ [ -z "$RAMIPS_BOARD_NAME" ] && RAMIPS_BOARD_NAME="$name"
+ [ -z "$RAMIPS_MODEL" ] && RAMIPS_MODEL="$machine"
+
+ [ -e "/tmp/sysinfo/" ] || mkdir -p "/tmp/sysinfo/"
+
+ echo "$RAMIPS_BOARD_NAME" > /tmp/sysinfo/board_name
+ echo "$RAMIPS_MODEL" > /tmp/sysinfo/model
+}
+
+ramips_board_name() {
+ local name
+
+ [ -f /tmp/sysinfo/board_name ] && name=$(cat /tmp/sysinfo/board_name)
+ [ -z "$name" ] && name="unknown"
+
+ echo "$name"
+}
diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh
new file mode 100755
index 0000000..0e8d619
--- /dev/null
+++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh
@@ -0,0 +1,211 @@
+#
+# Copyright (C) 2010 OpenWrt.org
+#
+
+. /lib/ramips.sh
+
+PART_NAME=firmware
+RAMFS_COPY_DATA=/lib/ramips.sh
+
+platform_check_image() {
+ local board=$(ramips_board_name)
+ local magic="$(get_magic_long "$1")"
+
+ [ "$#" -gt 1 ] && return 1
+
+ case "$board" in
+ 3g150b|\
+ 3g300m|\
+ 3g-6200n|\
+ 3g-6200nl|\
+ a5-v11|\
+ ai-br100|\
+ air3gii|\
+ all0239-3g|\
+ all0256n|\
+ all5002|\
+ all5003|\
+ ar725w|\
+ asl26555|\
+ awapn2403|\
+ awm002-evb|\
+ awm003-evb|\
+ bc2|\
+ broadway|\
+ carambola|\
+ cf-wr800n|\
+ d105|\
+ dap-1350|\
+ db-wrt01|\
+ dcs-930|\
+ dcs-930l-b1|\
+ dir-300-b1|\
+ dir-300-b7|\
+ dir-320-b1|\
+ dir-600-b1|\
+ dir-600-b2|\
+ dir-615-d|\
+ dir-615-h1|\
+ dir-620-a1|\
+ dir-620-d1|\
+ dir-810l|\
+ e1700|\
+ esr-9753|\
+ f7c027|\
+ firewrt|\
+ fonera20n|\
+ freestation5|\
+ hc5*61|\
+ hg255d|\
+ hlk-rm04|\
+ hpm|\
+ ht-tm02|\
+ hw550-3g|\
+ ip2202|\
+ linkits7688|\
+ linkits7688d|\
+ m2m|\
+ m3|\
+ m4|\
+ microwrt|\
+ miniembplug|\
+ miniembwifi|\
+ miwifi-mini|\
+ mlw221|\
+ mlwg2|\
+ mofi3500-3gn|\
+ mpr-a1|\
+ mpr-a2|\
+ mr-102n|\
+ mzk-dp150n|\
+ mzk-w300nh2|\
+ nbg-419n|\
+ nw718|\
+ oy-0001|\
+ pbr-m1|\
+ psr-680w|\
+ px-4885|\
+ re6500|\
+ rp-n53|\
+ rt5350f-olinuxino|\
+ rt5350f-olinuxino-evb|\
+ rt-g32-b1|\
+ rt-n10-plus|\
+ rt-n13u|\
+ rt-n14u|\
+ rt-n15|\
+ rt-n56u|\
+ rut5xx|\
+ sap-g3200u3|\
+ sl-r7205|\
+ tew-691gr|\
+ tew-692gr|\
+ tiny-ac|\
+ ur-326n4g|\
+ ur-336un|\
+ v22rw-2x2|\
+ vocore|\
+ w150m|\
+ w306r-v20|\
+ w502u|\
+ whr-1166d|\
+ whr-300hp2|\
+ whr-600d|\
+ whr-g300n|\
+ wizfi630a|\
+ wl-330n|\
+ wl-330n3g|\
+ wl-341v3|\
+ wl-351|\
+ wli-tx4-ag300n|\
+ wmr-300|\
+ wnce2001|\
+ wr512-3gn|\
+ wr6202|\
+ wrtnode|\
+ wsr-600|\
+ wt1520|\
+ wt3020|\
+ wzr-agl300nh|\
+ x5|\
+ x8|\
+ y1|\
+ y1s|\
+ zbt-wa05|\
+ zbt-wg2626|\
+ zbt-wr8305rt|\
+ zte-q7)
+ [ "$magic" != "27051956" ] && {
+ echo "Invalid image type."
+ return 1
+ }
+ return 0
+ ;;
+ ar670w)
+ [ "$magic" != "6d000080" ] && {
+ echo "Invalid image type."
+ return 1
+ }
+ return 0
+ ;;
+ br-6475nd)
+ [ "$magic" != "43535953" ] && {
+ echo "Invalid image type."
+ return 1
+ }
+ return 0
+ ;;
+ c20i)
+ [ "$magic" != "03000000" ] && {
+ echo "Invalid image type."
+ return 1
+ }
+ return 0
+ ;;
+ cy-swr1100|\
+ dir-610-a1|\
+ dir-645|\
+ dir-860l-b1)
+ [ "$magic" != "5ea3a417" ] && {
+ echo "Invalid image type."
+ return 1
+ }
+ return 0
+ ;;
+ wsr-1166)
+ [ "$magic" != "48445230" ] && {
+ echo "Invalid image type."
+ return 1
+ }
+ return 0
+ ;;
+ esac
+
+ echo "Sysupgrade is not yet supported on $board."
+ return 1
+}
+
+platform_do_upgrade() {
+ local board=$(ramips_board_name)
+
+ case "$board" in
+ *)
+ default_do_upgrade "$ARGV"
+ ;;
+ esac
+}
+
+disable_watchdog() {
+ killall watchdog
+ ( ps | grep -v 'grep' | grep '/dev/watchdog' ) && {
+ echo 'Could not disable watchdog'
+ return 1
+ }
+}
+
+blink_led() {
+ . /etc/diag.sh; set_state upgrade
+}
+
+append sysupgrade_pre_upgrade disable_watchdog
+append sysupgrade_pre_upgrade blink_led