aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/lantiq/base-files/etc
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/lantiq/base-files/etc')
-rw-r--r--target/linux/lantiq/base-files/etc/diag.sh42
-rw-r--r--target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom60
-rw-r--r--target/linux/lantiq/base-files/etc/hotplug.d/firmware/11-ath10k-caldata51
-rwxr-xr-xtarget/linux/lantiq/base-files/etc/init.d/dsl_fs35
-rwxr-xr-xtarget/linux/lantiq/base-files/etc/init.d/esi7
-rw-r--r--target/linux/lantiq/base-files/etc/inittab3
-rw-r--r--target/linux/lantiq/base-files/etc/uci-defaults/01_leds77
-rw-r--r--target/linux/lantiq/base-files/etc/uci-defaults/02_network211
-rw-r--r--target/linux/lantiq/base-files/etc/uci-defaults/03_wireless-wps16
9 files changed, 502 insertions, 0 deletions
diff --git a/target/linux/lantiq/base-files/etc/diag.sh b/target/linux/lantiq/base-files/etc/diag.sh
new file mode 100644
index 0000000..26f0a3c
--- /dev/null
+++ b/target/linux/lantiq/base-files/etc/diag.sh
@@ -0,0 +1,42 @@
+#!/bin/sh
+# Copyright (C) 2012-2013 OpenWrt.org
+
+. /lib/functions/leds.sh
+
+status_led="power"
+
+set_state() {
+ [ -d /sys/class/leds/power2/ ] && {
+
+ case "$1" in
+ preinit)
+ led_set_attr "power2" "trigger" "heartbeat"
+ status_led_on
+ ;;
+ failsafe)
+ led_off "power2"
+ status_led_set_timer 100 100
+ ;;
+ done)
+ led_off "power2"
+ ;;
+ esac
+ return
+ }
+
+ case "$1" in
+ preinit)
+ status_led_set_heartbeat
+ ;;
+ failsafe)
+ [ -d /sys/class/leds/power1 ] && {
+ status_led_off
+ led_timer "power1" 100 100
+ } || status_led_set_timer 100 100
+ ;;
+ done)
+ status_led_on
+ led_off "power1"
+ ;;
+ esac
+}
diff --git a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
new file mode 100644
index 0000000..5f1cb00
--- /dev/null
+++ b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
@@ -0,0 +1,60 @@
+#!/bin/sh
+# based on gabors ralink wisoc implementation
+
+rt2x00_eeprom_die() {
+ echo "rt2x00 eeprom: " "$*"
+ exit 1
+}
+
+rt2x00_eeprom_extract() {
+ local part=$1
+ local offset=$2
+ local count=$3
+ local swab=$4
+ local mtd
+
+ . /lib/functions.sh
+
+ mtd=$(find_mtd_part $part)
+ [ -n "$mtd" ] || \
+ rt2x00_eeprom_die "no mtd device found for partition $part"
+
+ if [ $swab -gt 0 ]; then
+ dd if=$mtd of=/lib/firmware/$FIRMWARE bs=2 skip=$offset count=$count conv=swab || \
+ rt2x00_eeprom_die "failed to extract from $mtd"
+ else
+ dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count || \
+ rt2x00_eeprom_die "failed to extract from $mtd"
+ fi
+}
+
+[ -e /lib/firmware/$FIRMWARE ] && exit 0
+. /lib/functions/lantiq.sh
+
+case "$FIRMWARE" in
+"RT2860.eeprom" )
+ local board=$(lantiq_board_name)
+ case $board in
+ ARV7510PW22|ARV7519PW|ARV752DPW|ARV752DPW22|VGV7519)
+ rt2x00_eeprom_extract "board_config" 520 256 1
+ ;;
+ ARV7525PW)
+ rt2x00_eeprom_extract "board_config" 1040 512 0
+ ;;
+ *)
+ rt2x00_eeprom_die "board $board is not supported yet"
+ ;;
+ esac
+ ;;
+"RT3062.eeprom" )
+ local board=$(lantiq_board_name)
+ case $board in
+ VGV7510KW22)
+ rt2x00_eeprom_extract "board_config" 520 256 1
+ ;;
+ *)
+ rt2x00_eeprom_die "board $board is not supported yet"
+ ;;
+ esac
+ ;;
+esac
diff --git a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
new file mode 100644
index 0000000..0d8084f
--- /dev/null
+++ b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -0,0 +1,51 @@
+#!/bin/sh
+# Based on ar71xx 11-ath10k-caldata and 10-rt2x00-eeprom
+
+ath10k_caldata_die() {
+ echo "ath10k caldata: " "$*"
+ exit 1
+}
+
+ath10k_caldata_extract() {
+ local part=$1
+ local offset=$2
+ local mtd
+
+ . /lib/functions.sh
+
+ mtd=$(find_mtd_part $part)
+ [ -n "$mtd" ] || \
+ ath10k_caldata_die "no mtd device found for partition $part"
+
+ dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=2116 || \
+ ath10k_caldata_die "failed to extract from $mtd"
+}
+
+ath10k_caldata_set_macaddr() {
+ local macaddr=$1
+
+ macaddr_2bin $macaddr | dd of=/lib/firmware/$FIRMWARE \
+ conv=notrunc bs=1 seek=6 count=6
+}
+
+[ -e /lib/firmware/$FIRMWARE ] && exit 0
+. /lib/functions.sh
+. /lib/functions/system.sh
+. /lib/functions/lantiq.sh
+
+case "$FIRMWARE" in
+"ath10k/cal-pci-0000:02:00.0.bin")
+ local board=$(lantiq_board_name)
+ case $board in
+ BTHOMEHUBV5A)
+ local lan_mac=$(mtd_get_mac_binary caldata 4364)
+ local wifi_mac=$(macaddr_add "$lan_mac" 3)
+ ath10k_caldata_extract "caldata" 20480
+ ath10k_caldata_set_macaddr $wifi_mac
+ ;;
+ *)
+ ath10k_caldata_die "board $board is not supported yet"
+ ;;
+ esac
+ ;;
+esac
diff --git a/target/linux/lantiq/base-files/etc/init.d/dsl_fs b/target/linux/lantiq/base-files/etc/init.d/dsl_fs
new file mode 100755
index 0000000..ccba4ae
--- /dev/null
+++ b/target/linux/lantiq/base-files/etc/init.d/dsl_fs
@@ -0,0 +1,35 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2014 OpenWrt.org
+
+. $IPKG_INSTROOT/lib/functions.sh
+
+START=30
+
+boot() {
+ MTD=$(find_mtd_index dsl_fw)
+
+ grep /lib/firmware/lantiq /proc/mounts && umount /lib/firmware/lantiq
+
+ mkdir -p /lib/firmware/lantiq
+ [ "$MTD" -gt 0 ] || return 0
+
+ mount -t tmpfs none /lib/firmware/lantiq
+ case "$(dd if=/dev/mtd$MTD bs=2 count=1 2>/dev/null | hexdump -n 2 -e '1/1 "%02x"')" in
+ 1985)
+ mkdir -p /tmp/fw_mnt
+ mount -t jffs2 /dev/mtdblock$MTD /tmp/fw_mnt
+ cp -a /tmp/fw_mnt/*.bin /lib/firmware/lantiq/
+ umount /tmp/fw_mnt
+ rmdir /tmp/fw_mnt
+ ;;
+ 1f8b)
+ tar xz -C /lib/firmware/lantiq < /dev/mtd$MTD
+ ;;
+ *)
+ echo "No DSL firmware detected in /dev/mtd$MTD (dsl_fw)"
+ return 0
+ ;;
+ esac
+
+ [ -e /lib/firmware/vdsl.bin ] || ln -s /lib/firmware/lantiq/vr9_dsl_fw_annex_b.bin /lib/firmware/vdsl.bin
+}
diff --git a/target/linux/lantiq/base-files/etc/init.d/esi b/target/linux/lantiq/base-files/etc/init.d/esi
new file mode 100755
index 0000000..ca79070
--- /dev/null
+++ b/target/linux/lantiq/base-files/etc/init.d/esi
@@ -0,0 +1,7 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2013 OpenWrt.org
+
+START=19
+start() {
+ esi $(printf '%012X' $((1+0x$(tr -d : </sys/class/net/eth0/address)))) 2>/dev/console || :
+}
diff --git a/target/linux/lantiq/base-files/etc/inittab b/target/linux/lantiq/base-files/etc/inittab
new file mode 100644
index 0000000..46a1312
--- /dev/null
+++ b/target/linux/lantiq/base-files/etc/inittab
@@ -0,0 +1,3 @@
+::sysinit:/etc/init.d/rcS S boot
+::shutdown:/etc/init.d/rcS K stop
+ttyLTQ0::askfirst:/bin/ash --login
diff --git a/target/linux/lantiq/base-files/etc/uci-defaults/01_leds b/target/linux/lantiq/base-files/etc/uci-defaults/01_leds
new file mode 100644
index 0000000..b9e5420
--- /dev/null
+++ b/target/linux/lantiq/base-files/etc/uci-defaults/01_leds
@@ -0,0 +1,77 @@
+#!/bin/sh
+#
+# Copyright (C) 2011 OpenWrt.org
+# based on ar71xx
+#
+
+. /lib/functions/uci-defaults.sh
+. /lib/functions/lantiq.sh
+
+[ -e "/sys/class/leds/wifi" ] && ucidef_set_led_wlan "wifi" "wifi" "wifi" "phy0tpt"
+[ -e "/sys/class/leds/usb" ] && ucidef_set_led_usbdev "usb" "usb" "usb" "1-1"
+[ -e "/sys/class/leds/usb2" ] && ucidef_set_led_usbdev "usb2" "usb2" "usb2" "2-1"
+[ -e "/sys/class/leds/internet" ] && ucidef_set_led_netdev "internet" "internet" "internet" "pppoe-wan"
+
+board=$(lantiq_board_name)
+
+case "$board" in
+VG3503J)
+ ucidef_set_led_netdev "vdsl" "vdsl" "bt:green:dsl" "ptm0"
+ ;;
+BTHOMEHUBV2B)
+ ucidef_set_led_default "power" "power" "soc:blue:power" "1"
+# ucidef_set_led_wlan "wifi" "wifi" "soc:blue:wireless" "phy0radio"
+ ucidef_set_led_wlan "wifi" "wifi" "soc:blue:wireless" "phy0tpt"
+ ucidef_set_led_netdev "internet" "internet" "soc:blue:broadband" "pppoa-wan"
+ ucidef_set_led_usbdev "usb" "usb" "soc:blue:phone" "1-1"
+ ;;
+BTHOMEHUBV3A|BTHOMEHUBV5A)
+ ucidef_set_led_default "power" "power" "soc:blue:power" "1"
+ ucidef_set_led_wlan "wifi" "wifi" "soc:blue:wireless" "phy0tpt"
+ ucidef_set_led_netdev "internet" "internet" "soc:blue:broadband" "pppoa-wan"
+ ;;
+VGV7510KW22)
+ ucidef_set_led_default "power" "power" "power" "1"
+ ucidef_set_led_default "power2" "power2" "power2" "0"
+ ucidef_set_led_wlan "wifi" "wifi" "wifi" "phy0radio"
+ ucidef_set_led_netdev "dsl" "dsl" "dsl" "nas0"
+ ucidef_set_led_netdev "internet_green" "internet_green" "internet_green" "pppoe-wan"
+ ;;
+VGV7519)
+ ucidef_set_led_default "power" "power" "power" "0"
+ ucidef_set_led_default "power2" "power2" "power2" "1"
+ ucidef_set_led_wlan "wireless_yellow" "wireless_yellow" "wireless_yellow" "phy0radio"
+ ucidef_set_led_netdev "internet_yellow" "internet_yellow" "internet_yellow" "nas0"
+ ucidef_set_led_netdev "broadband_yellow" "broadband_yellow" "broadband_yellow" "pppoe-wan"
+ ;;
+P2812HNUF*)
+ ucidef_set_led_default "power" "power" "power" "0"
+ ucidef_set_led_default "power2" "power2" "power2" "1"
+ ucidef_set_led_wlan "wireless_green" "wireless_green" "wireless_green" "phy0radio"
+ ucidef_set_led_netdev "dsl" "dsl" "dsl" "nas0"
+ ucidef_set_led_netdev "internet_green" "internet_green" "internet_green" "pppoe-wan"
+ ;;
+ARV7519RW22)
+ ucidef_set_led_default "power" "power" "power" "1"
+ ucidef_set_led_netdev "internet_green" "internet_green" "internet_green" "pppoe-wan"
+ ucidef_set_led_netdev "lan" "lan" "lan" "eth0.1"
+ ;;
+ARV8539PW22)
+ ucidef_set_led_default "power" "power" "soc:green:power" "1"
+ ucidef_set_led_default "power2" "power2" "soc:red:power" "0"
+ ucidef_set_led_wlan "wifi" "wifi" "soc:green:wireless" "phy0tpt"
+ ucidef_set_led_netdev "dsl" "dsl" "soc:green:dsl" "nas0"
+ ucidef_set_led_netdev "online" "online" "soc:green:online" "pppoe-wan"
+ ;;
+*)
+ ;;
+esac
+
+for a in `ls /sys/class/leds/`; do
+ grep -q "\[none\]" /sys/class/leds/$a/trigger
+ [ $? -eq 0 ] && ucidef_set_led_default $a $a $a `cat /sys/class/leds/$a/brightness`
+done
+
+ucidef_commit_leds
+
+exit 0
diff --git a/target/linux/lantiq/base-files/etc/uci-defaults/02_network b/target/linux/lantiq/base-files/etc/uci-defaults/02_network
new file mode 100644
index 0000000..b22060c
--- /dev/null
+++ b/target/linux/lantiq/base-files/etc/uci-defaults/02_network
@@ -0,0 +1,211 @@
+#!/bin/sh
+#
+# Copyright (C) 2011-2012 OpenWrt.org
+#
+
+[ -e /etc/config/network ] && exit 0
+
+set_atm_wan() {
+ local vpi=$1
+ local vci=$2
+ local encaps=$3
+ local payload=$4
+ uci batch <<EOF
+set network.atm='atm-bridge'
+set network.atm.vpi='$vpi'
+set network.atm.vci='$vci'
+set network.atm.encaps='$encaps'
+set network.atm.payload='$payload'
+set network.wan='interface'
+set network.wan.ifname='nas0'
+set network.wan.proto='pppoe'
+set network.wan.username='foo'
+set network.wan.password='bar'
+set network.wan.ipv6='1'
+set network.wan6='interface'
+set network.wan6.ifname='@wan'
+set network.wan6.proto='dhcpv6'
+EOF
+}
+
+set_adsl_modem() {
+ local annex=$1
+ local firmware=$2
+ uci batch <<EOF
+set network.dsl='adsl'
+set network.dsl.annex='$annex'
+set network.dsl.firmware='$firmware'
+EOF
+}
+
+set_vdsl_modem() {
+ local annex=$1
+ local firmware=$2
+ local tone=$3
+ local xfer_mode=$4
+ uci batch <<EOF
+set network.dsl='vdsl'
+set network.dsl.annex='$annex'
+set network.dsl.firmware='$firmware'
+set network.dsl.tone='$tone'
+set network.dsl.xfer_mode='$xfer_mode'
+EOF
+}
+
+. /lib/functions/uci-defaults.sh
+. /lib/functions/lantiq.sh
+
+touch /etc/config/network
+
+ucidef_set_interface_loopback
+ucidef_set_interface_lan 'eth0'
+
+vpi=1
+vci=32
+annex="a"
+encaps="llc"
+payload="bridged"
+lan_mac=""
+wan_mac=""
+
+board=$(lantiq_board_name)
+
+case "$board" in
+# adm6996
+ARV4510PW)
+ lan_mac=$(mtd_get_mac_ascii uboot_env ethaddr)
+ wan_mac=$(macaddr_add "$lan_mac" 1)
+ ucidef_set_interface_lan "eth0.1"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "3 2 1 0 5t"
+ ;;
+
+ARV4520PW)
+ ucidef_set_interface_lan "eth0.1"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "3 2 1 0 5t"
+ ;;
+
+ACMP252|GIGASX76X)
+ ucidef_set_interface_lan "eth0.1"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "4 3 2 1 5t"
+ ;;
+
+# ar8316
+ARV4519PW|ARV7510PW22|ARV7518PW|ARV752DPW22|ARV8539PW22)
+ ucidef_set_interface_lan "eth0.1"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "0t 2 3 4 5"
+ ;;
+
+# rtl8306g
+ARV7519PW)
+ lan_mac=$(mtd_get_mac_binary board_config 22)
+ wan_mac=$(macaddr_add "$lan_mac" 1)
+ ucidef_set_interface_lan "eth0.1"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 4t"
+ ;;
+
+WBMR)
+ ucidef_set_interface_lan "eth0.1"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "0t 2 3 4 5"
+ ;;
+
+VG3503J)
+ ucidef_set_interface_lan 'eth0'
+ uci set network.lan.type='none'
+ ;;
+
+DGN3500*)
+ ucidef_set_interface_lan "eth0.1"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "3 2 1 0 5t"
+ ;;
+
+GR7000)
+ ucidef_set_interface_wan "eth0"
+ uci set network.lan.ifname=''
+ ;;
+
+H201L)
+ ucidef_set_interface_lan "eth0.1"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 4t"
+ ;;
+
+#rtl8306g
+P2601HNFX)
+ ucidef_set_interface_lan "eth0.1"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 5t"
+ ;;
+
+P2812HNUF*)
+ lan_mac=$(mtd_get_mac_ascii uboot-env ethaddr)
+ wan_mac=$(macaddr_add "$lan_mac" 1)
+ ucidef_set_interface_lan 'eth0.1'
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "0 1 2 4 5 6t"
+ ;;
+
+TDW8970|TDW8980)
+ lan_mac=$(mtd_get_mac_binary boardconfig 61696)
+ wan_mac=$(macaddr_add "$lan_mac" 1)
+ ucidef_set_interface_lan 'eth0.1'
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "0 2 4 5 6t"
+ ;;
+
+ARV7519RW22)
+ lan_mac=$(mtd_get_mac_binary boardconfig 22)
+ wan_mac=$(macaddr_add "$lan_mac" 1)
+ ucidef_set_interface_lan "eth0.1"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "0 2 3 4 5 6t"
+ ;;
+
+BTHOMEHUBV2B|BTHOMEHUBV3A)
+ lan_mac=$(mtd_get_mac_ascii uboot_env ethaddr)
+ wan_mac=$(macaddr_add "$lan_mac" 1)
+ ;;
+
+BTHOMEHUBV5A)
+ lan_mac=$(mtd_get_mac_binary caldata 4364)
+ wan_mac=$(macaddr_add "$lan_mac" 1)
+ ucidef_set_interface_lan 'eth0.1'
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "0 1 2 4 6t"
+ ;;
+
+VGV7519)
+ lan_mac=$(mtd_get_mac_binary board_config 22)
+ wan_mac=$(macaddr_add "$lan_mac" 1)
+ ;;
+
+VGV7510KW22)
+ lan_mac=$(mtd_get_mac_binary board_config 22)
+ wan_mac=$(macaddr_add "$lan_mac" 1)
+ ucidef_set_interface_lan 'eth0.1'
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "2 3 4 5 6t"
+ ;;
+
+esac
+
+[ -z "$(ls /lib/modules/`uname -r`/ltq_atm*)" ] || set_atm_wan "$vpi" "$vci" "$encaps" "$payload"
+
+if [ -n "$(grep "system type.*: VR9" /proc/cpuinfo)" ]; then
+ set_vdsl_modem "$annex" "/lib/firmware/vdsl.bin" "av" "ptm"
+else
+ set_adsl_modem "$annex" "/lib/firmware/adsl.bin"
+fi
+
+[ -n "$lan_mac" ] && ucidef_set_interface_macaddr lan $lan_mac
+[ -n "$wan_mac" ] && ucidef_set_interface_macaddr wan $wan_mac
+
+uci commit network
+
+exit 0
diff --git a/target/linux/lantiq/base-files/etc/uci-defaults/03_wireless-wps b/target/linux/lantiq/base-files/etc/uci-defaults/03_wireless-wps
new file mode 100644
index 0000000..e75fb84
--- /dev/null
+++ b/target/linux/lantiq/base-files/etc/uci-defaults/03_wireless-wps
@@ -0,0 +1,16 @@
+. /lib/functions.sh
+. /lib/functions/lantiq.sh
+
+set_wps() {
+ uci set wireless.$1.wps_pushbutton=0
+ uci set wireless.$1.wps_device_name="OpenWrt - $(lantiq_board_model)"
+}
+
+board=$(lantiq_board_name)
+case $board in
+WBMR)
+ config_load wireless
+ config_foreach set_wps wifi-iface
+ uci commit wireless
+ ;;
+esac