aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ath79/base-files/etc
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ath79/base-files/etc')
-rwxr-xr-xtarget/linux/ath79/base-files/etc/board.d/01_leds11
-rwxr-xr-xtarget/linux/ath79/base-files/etc/board.d/02_network15
-rw-r--r--target/linux/ath79/base-files/etc/diag.sh4
-rw-r--r--target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom21
4 files changed, 51 insertions, 0 deletions
diff --git a/target/linux/ath79/base-files/etc/board.d/01_leds b/target/linux/ath79/base-files/etc/board.d/01_leds
index 9d42861939..70d27bc29b 100755
--- a/target/linux/ath79/base-files/etc/board.d/01_leds
+++ b/target/linux/ath79/base-files/etc/board.d/01_leds
@@ -5,8 +5,19 @@
board_config_update
board=$(board_name)
+boardname="${board##*,}"
case "$board" in
+"avm,fritz300e")
+ ucidef_set_led_netdev "lan" "LAN" "$boardname:green:lan" "eth0"
+ ucidef_set_led_wlan "wlan" "WLAN" "$boardname:green:wlan" "phy0tpt"
+ ucidef_set_rssimon "wlan0" "200000" "1"
+ ucidef_set_led_rssi "rssilow" "RSSILOW" "$boardname:green:rssi0" "wlan0" "1" "100"
+ ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "$boardname:green:rssi1" "wlan0" "20" "100"
+ ucidef_set_led_rssi "rssimedium" "RSSIMEDIUM" "$boardname:green:rssi2" "wlan0" "40" "100"
+ ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "$boardname:green:rssi3" "wlan0" "60" "100"
+ ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "$boardname:green:rssi4" "wlan0" "80" "100"
+ ;;
"glinet,ar150")
ucidef_set_led_wlan "wlan" "WLAN" "gl-ar150:orange:wlan" "phy0tpt"
;;
diff --git a/target/linux/ath79/base-files/etc/board.d/02_network b/target/linux/ath79/base-files/etc/board.d/02_network
index 941d2ab511..19361f161e 100755
--- a/target/linux/ath79/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/base-files/etc/board.d/02_network
@@ -8,6 +8,7 @@ ath79_setup_interfaces()
local board="$1"
case "$board" in
+ "avm,fritz300e"|\
"ubnt,unifi")
ucidef_set_interface_lan "eth0"
;;
@@ -36,9 +37,23 @@ ath79_setup_interfaces()
esac
}
+ath79_setup_macs()
+{
+ local board="$1"
+
+ case "$board" in
+ avm,fritz300e)
+ lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
+ ;;
+ esac
+
+ [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
+}
+
board_config_update
board=$(board_name)
ath79_setup_interfaces $board
+ath79_setup_macs $board
board_config_flush
exit 0
diff --git a/target/linux/ath79/base-files/etc/diag.sh b/target/linux/ath79/base-files/etc/diag.sh
index c9b32df94e..8022151378 100644
--- a/target/linux/ath79/base-files/etc/diag.sh
+++ b/target/linux/ath79/base-files/etc/diag.sh
@@ -4,8 +4,12 @@
get_status_led() {
local board=$(board_name)
+ local boardname="${board##*,}"
case $board in
+ "avm,fritz300e")
+ status_led="${boardname}:green:power"
+ ;;
"glinet,ar150")
status_led="gl-ar150:orange:wlan"
;;
diff --git a/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
index fc15caea6f..c2d87f58de 100644
--- a/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
+++ b/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
@@ -24,11 +24,32 @@ ath9k_eeprom_extract() {
ath9k_eeprom_die "failed to extract from $mtd"
}
+ath9k_eeprom_extract_reverse() {
+ local part=$1
+ local offset=$2
+ local count=$3
+ local mtd
+ local reversed
+ local caldata
+
+ mtd=$(find_mtd_chardev "$part")
+ reversed=$(hexdump -v -s $offset -n $count -e '/1 "%02x "' $mtd)
+
+ for byte in $reversed; do
+ caldata="\x${byte}${caldata}"
+ done
+
+ printf "%b" "$caldata" > /lib/firmware/$FIRMWARE
+}
+
board=$(board_name)
case "$FIRMWARE" in
"ath9k-eeprom-pci-0000:00:00.0.bin")
case $board in
+ "avm,fritz300e")
+ ath9k_eeprom_extract_reverse "urloader" 5441 1088
+ ;;
"ubnt,unifi")
ath9k_eeprom_extract "art" 4096 2048
;;