Device specifications: ====================== * Qualcomm/Atheros AR9344 rev 2 * 560/450/225 MHz (CPU/DDR/AHB) * 128 MB of RAM * 16 MB of SPI NOR flash - 2x 7 MB available; but one of the 7 MB regions is the recovery image * 2T2R 2.4 GHz Wi-Fi * 2T2R 5 GHz Wi-Fi * 4x GPIO-LEDs (2x wifi, 1x wps, 1x power) * 1x GPIO-button (reset) * TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX) * 1x ethernet - AR8035 ethernet PHY (RGMII) - 10/100/1000 Mbps Ethernet - 802.3af POE - used as LAN interface * 12-24V 1A DC * internal antennas Flashing instructions: ====================== Various methods can be used to install the actual image on the flash. Two easy ones are: ap51-flash ---------- The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be used to transfer the image to the u-boot when the device boots up. initramfs from TFTP ------------------- The serial console must be used to access the u-boot shell during bootup. It can then be used to first boot up the initramfs image from a TFTP server (here with the IP 192.168.1.21): setenv serverip 192.168.1.21 setenv ipaddr 192.168.1.1 tftpboot 0c00000 <filename-of-initramfs-kernel>.bin && bootm $fileaddr The actual sysupgrade image can then be transferred (on the LAN port) to the device via scp <filename-of-squashfs-sysupgrade>.bin root@192.168.1.1:/tmp/ On the device, the sysupgrade must then be started using sysupgrade -n /tmp/<filename-of-squashfs-sysupgrade>.bin Signed-off-by: Sven Eckelmann <sven@narfation.org> [rebase, make WLAN LEDs consistent, add LED migration] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
187 lines
4.2 KiB
Bash
187 lines
4.2 KiB
Bash
#!/bin/sh
|
|
|
|
[ -e /lib/firmware/$FIRMWARE ] && exit 0
|
|
|
|
. /lib/functions/caldata.sh
|
|
|
|
board=$(board_name)
|
|
|
|
case "$FIRMWARE" in
|
|
"ath9k-eeprom-ahb-18100000.wmac.bin")
|
|
case $board in
|
|
8dev,lima)
|
|
caldata_extract "art" 0x1000 0x800
|
|
;;
|
|
avm,fritz1750e|\
|
|
avm,fritz4020|\
|
|
avm,fritz450e|\
|
|
avm,fritzdvbc)
|
|
caldata_extract_reverse "urlader" 0x1541 0x440
|
|
;;
|
|
dlink,dap-2695-a1)
|
|
caldata_extract "art" 0x1000 0x440
|
|
ath9k_patch_mac $(mtd_get_mac_ascii bdcfg "wlanmac")
|
|
;;
|
|
dlink,dir-505|\
|
|
dlink,dir-825-c1|\
|
|
dlink,dir-835-a1)
|
|
caldata_extract "art" 0x1000 0x440
|
|
ath9k_patch_mac $(mtd_get_mac_text "mac" 0x4)
|
|
;;
|
|
dlink,dir-842-c1|\
|
|
dlink,dir-842-c2|\
|
|
dlink,dir-842-c3|\
|
|
dlink,dir-859-a1|\
|
|
nec,wg1200cr|\
|
|
wd,mynet-n750)
|
|
caldata_extract "art" 0x1000 0x440
|
|
ath9k_patch_mac $(mtd_get_mac_ascii devdata "wlan24mac")
|
|
;;
|
|
engenius,ecb1200|\
|
|
engenius,ecb1750)
|
|
caldata_extract "art" 0x1000 0x440
|
|
ath9k_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env athaddr) +1)
|
|
;;
|
|
engenius,epg5000|\
|
|
iodata,wn-ac1167dgr|\
|
|
iodata,wn-ac1600dgr|\
|
|
iodata,wn-ac1600dgr2|\
|
|
iodata,wn-ag300dgr|\
|
|
sitecom,wlr-7100|\
|
|
sitecom,wlr-8100)
|
|
caldata_extract "art" 0x1000 0x440
|
|
ath9k_patch_mac $(mtd_get_mac_ascii u-boot-env ethaddr)
|
|
;;
|
|
enterasys,ws-ap3705i)
|
|
caldata_extract "calibrate" 0x1000 0x440
|
|
ath9k_patch_mac $(mtd_get_mac_ascii u-boot-env0 RADIOADDR1)
|
|
;;
|
|
nec,wg800hp)
|
|
caldata_extract "art" 0x1000 0x440
|
|
ath9k_patch_mac $(mtd_get_mac_text board_data 0x680)
|
|
;;
|
|
qihoo,c301)
|
|
caldata_extract "radiocfg" 0x1000 0x440
|
|
ath9k_patch_mac $(mtd_get_mac_ascii devdata "wlan24mac")
|
|
;;
|
|
*)
|
|
caldata_die "board $board is not supported yet"
|
|
;;
|
|
esac
|
|
;;
|
|
"ath9k-eeprom-pci-0000:00:00.0.bin")
|
|
case $board in
|
|
avm,fritz300e)
|
|
caldata_extract_reverse "urloader" 0x1541 0x440
|
|
;;
|
|
buffalo,wzr-hp-g302h-a1a0)
|
|
caldata_extract "art" 0x1000 0xeb8
|
|
;;
|
|
buffalo,wzr-hp-g450h|\
|
|
ubnt,unifi)
|
|
caldata_extract "art" 0x1000 0x440
|
|
;;
|
|
dlink,dir-825-c1|\
|
|
dlink,dir-835-a1)
|
|
caldata_extract "art" 0x5000 0x440
|
|
ath9k_patch_mac $(macaddr_add $(mtd_get_mac_text "mac" 0x18) 1)
|
|
;;
|
|
engenius,eap600|\
|
|
engenius,ecb600|\
|
|
mercury,mw4530r-v1|\
|
|
ocedo,raccoon|\
|
|
tplink,tl-wdr3500-v1|\
|
|
tplink,tl-wdr3600-v1|\
|
|
tplink,tl-wdr4300-v1|\
|
|
tplink,tl-wdr4300-v1-il|\
|
|
tplink,tl-wdr4310-v1|\
|
|
tplink,tl-wdr4900-v2|\
|
|
ubnt,unifi-ap-pro|\
|
|
winchannel,wb2000)
|
|
caldata_extract "art" 0x5000 0x440
|
|
;;
|
|
enterasys,ws-ap3705i)
|
|
caldata_extract "calibrate" 0x5000 0x440
|
|
ath9k_patch_mac $(mtd_get_mac_ascii u-boot-env0 RADIOADDR0)
|
|
;;
|
|
netgear,wnr2200-8m|\
|
|
netgear,wnr2200-16m|\
|
|
pcs,cap324|\
|
|
tplink,tl-wr2543-v1|\
|
|
tplink,tl-wr842n-v1|\
|
|
ubnt,airrouter|\
|
|
ubnt,bullet-m-ar7240|\
|
|
ubnt,bullet-m-ar7241|\
|
|
ubnt,nanobridge-m|\
|
|
ubnt,nanostation-loco-m|\
|
|
ubnt,nanostation-m|\
|
|
ubnt,picostation-m|\
|
|
ubnt,powerbridge-m|\
|
|
ubnt,rocket-m)
|
|
caldata_extract "art" 0x1000 0x1000
|
|
;;
|
|
openmesh,mr600-v1)
|
|
caldata_extract "ART" 0x5000 0x440
|
|
;;
|
|
wd,mynet-n750)
|
|
caldata_extract "art" 0x5000 0x440
|
|
ath9k_patch_mac $(mtd_get_mac_ascii devdata "wlan5mac")
|
|
;;
|
|
wd,mynet-wifi-rangeextender)
|
|
caldata_extract "art" 0x1000 0x1000
|
|
ath9k_patch_mac $(nvram get wl0_hwaddr)
|
|
;;
|
|
*)
|
|
caldata_die "board $board is not supported yet"
|
|
;;
|
|
esac
|
|
;;
|
|
"ath9k-eeprom-pci-0000:00:11.0.bin")
|
|
case $board in
|
|
buffalo,wzr-600dhp|\
|
|
buffalo,wzr-hp-ag300h|\
|
|
netgear,wndr3700|\
|
|
netgear,wndr3700-v2|\
|
|
netgear,wndr3800|\
|
|
netgear,wndr3800ch|\
|
|
netgear,wndrmac-v1|\
|
|
netgear,wndrmac-v2)
|
|
caldata_extract "art" 0x1000 0xeb8
|
|
;;
|
|
dlink,dir-825-b1)
|
|
caldata_extract "caldata" 0x1000 0xeb8
|
|
ath9k_patch_mac_crc $(mtd_get_mac_text "caldata" 0xffa0) 0x20c
|
|
;;
|
|
meraki,mr16)
|
|
caldata_extract "art" 0x11000 0xeb8
|
|
;;
|
|
*)
|
|
caldata_die "board $board is not supported yet"
|
|
;;
|
|
esac
|
|
;;
|
|
"ath9k-eeprom-pci-0000:00:12.0.bin")
|
|
case $board in
|
|
buffalo,wzr-600dhp|\
|
|
buffalo,wzr-hp-ag300h|\
|
|
netgear,wndr3700|\
|
|
netgear,wndr3700-v2|\
|
|
netgear,wndr3800|\
|
|
netgear,wndr3800ch|\
|
|
netgear,wndrmac-v1|\
|
|
netgear,wndrmac-v2)
|
|
caldata_extract "art" 0x5000 0xeb8
|
|
;;
|
|
dlink,dir-825-b1)
|
|
caldata_extract "caldata" 0x5000 0xeb8
|
|
ath9k_patch_mac_crc $(macaddr_add $(mtd_get_mac_text "caldata" 0xffb4) 1) 0x20c
|
|
;;
|
|
meraki,mr16)
|
|
caldata_extract "art" 0x15000 0xeb8
|
|
;;
|
|
*)
|
|
caldata_die "board $board is not supported yet"
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|