From 75ed56a08a4ce978323259a59a8f45ceed511584 Mon Sep 17 00:00:00 2001 From: Mathias Kresin Date: Fri, 2 Mar 2018 19:28:50 +0100 Subject: ath79: add AVM FRITZ!WLAN Repeater 300E No known issues, everything works fine. Signed-off-by: Mathias Kresin --- target/linux/ath79/base-files/etc/board.d/01_leds | 11 +++++++++++ .../linux/ath79/base-files/etc/board.d/02_network | 15 +++++++++++++++ target/linux/ath79/base-files/etc/diag.sh | 4 ++++ .../etc/hotplug.d/firmware/10-ath9k-eeprom | 21 +++++++++++++++++++++ 4 files changed, 51 insertions(+) (limited to 'target/linux/ath79/base-files') 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 ;; -- cgit v1.2.3