ar71xx: add user-space support for the NETGEAR WNDR4300

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

SVN-Revision: 34649
This commit is contained in:
Gabor Juhos 2012-12-12 16:49:51 +00:00
parent 1552af3131
commit dcdfcb75f0
5 changed files with 70 additions and 0 deletions

View file

@ -165,6 +165,9 @@ get_status_led() {
wndr3700)
status_led="wndr3700:green:power"
;;
wndr4300)
status_led="netgear:green:power"
;;
wnr2000)
status_led="wnr2000:green:power"
;;

View file

@ -0,0 +1,52 @@
#!/bin/sh
ath9k_eeprom_die() {
echo "ath9k eeprom: " "$*"
exit 1
}
ath9k_eeprom_extract() {
local part=$1
local offset=$2
local count=$3
local mtd
. /etc/functions.sh
mtd=$(find_mtd_chardev $part)
[ -n "$mtd" ] || \
ath9k_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 || \
ath9k_eeprom_die "failed to extract from $mtd"
}
[ -e /lib/firmware/$FIRMWARE ] && exit 0
. /lib/ar71xx.sh
board=$(ar71xx_board_name)
case "$FIRMWARE" in
"soc_wmac.eeprom")
case $board in
wndr4300)
ath9k_eeprom_extract "caldata" 4096 2048
;;
*)
ath9k_eeprom_die "board $board is not supported yet"
;;
esac
;;
"pci_wmac0.eeprom")
case $board in
wndr4300)
ath9k_eeprom_extract "caldata" 20480 2048
;;
*)
ath9k_eeprom_die "board $board is not supported yet"
;;
esac
;;
esac

View file

@ -181,6 +181,11 @@ wndr3700)
ucidef_set_led_usbdev "usb" "USB" "wndr3700:green:usb" "1-1"
;;
wndr4300)
ucidef_set_led_netdev "wan" "WAN (green)" "netgear:green:wan" "eth0.2"
ucidef_set_led_usbdev "usb" "USB" "netgear:green:usb" "1-1"
;;
whr-g301n |\
whr-hp-g300n |\
whr-hp-gn)

View file

@ -146,6 +146,13 @@ wzr-hp-g300nh)
ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 5t"
;;
wndr4300)
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"
;;
all0305 |\
aw-nr580 |\
bullet-m |\

View file

@ -408,6 +408,9 @@ ar71xx_board_detect() {
*"WNDR3700/WNDR3800/WNDRMAC")
wndr3700_board_detect "$machine"
;;
*"WNDR4300")
name="wndr4300"
;;
*WNR2000)
name="wnr2000"
;;