This patch adds support for the Netgear WNDAP620 and WNDAP660, they are similar devices, but due to the LAN LED configuration, the switch setup and WIFI configuration each gets a different device target. Hardware Highlights WNDAP620: CPU: AMCC PowerPC APM82181 at 1000 MHz DRAM: 128 MB, 2 x 64 MiB DDR2 Hynix H5PS5162GF CPU: AMCC PowerPC APM82181 at 1000 MHz FLASH: 32 MiB, NAND SLC, Hynix HY27US08561A Ethernet: RealTek RTL8363SB 2x2-Port Switch PHY - Only 1 GBit Port (POE) Wifi: Atheros AR9380 minipcie - Dual-Band - 3x3:3 Serial: console port with RJ45 Interface (9600-N-8-1) LEDS: Power, LAN-Activity, dual color LAN-Linkspeed, 2.4GHz, 5GHz LEDs Button: Soft Reset Button Antennae: 3 internal dual-band antennae + 3 x RSMA for external antennaes Hardware Highlights WNDAP660: CPU: AMCC PowerPC APM82181 at 1000 MHz + 2 Heatsinks DRAM: 256 MB, 2 x 128 MiB DDR2 FLASH: 32 MiB, NAND SLC, Hynix HY27US08561A Ethernet: RealTek RTL8363SB 2x2-Port Switch PHY (POE) Wifi1: Atheros AR9380 minipcie - Dual-Band - 3x3:3 Wifi2: Atheros AR9380 minipcie - Dual-Band - 3x3:3 Serial: console port with RJ45 Interface (9600-N-8-1) LEDS: Power, LAN-Activity, 2x dual color LAN-Linkspeed, 2.4GHz, 5GHz LEDs Button: Soft Reset Button Antennae: 6 internal dual-band antennae + 3 x RSMA for external antennaes Flashing requirements: - needs a tftp server at 192.168.1.10/serverip. - special 8P8C(aka RJ45)<->D-SUB9 Console Cable ("Cisco Console Cable"). Note: Both WNDAP6x0 have a MAX3232 transceivers, hence no need for any separate CMOS/TTL level shifters. External Antenna: The antennae mux is controlled by GPIO 11 and GPIO14. Valid Configurations: = Config# = | = GPIO 11 = | = GPIO 14 = | ===== Description ===== 1. | 1 / High | 0 / Low | Use the internal antennae (default) 2. | 0 / Low | 1 / High | Use the external antennae The external antennaes are only meant for the 2.4 GHz band. One-way Flashing instructions via u-boot: 0. connect the serial cable to the RJ45 Console Port Note: This requires a poper RS232 and not a TTL/USB adaptor. 1. power up the AP and interrupt the u-boot process at 'Hit any key to stop autoboot' 2. setup serverip and ipaddr env settings Enter the following commands into the u-boot shell # setenv ipaddr 192.168.1.1 # setenv serverip 192.168.1.10 3. download the factory.img image to the AP Enter the following commands into the u-boot shell # tftp ${kernel_addr_r} openwrt-apm821xx-nand-netgear_wndap660-squashfs-factory.img 4. verfiy image integrity Enter the following commands into the u-boot shell # crc32 $fileaddr $filesize If the calculated crc32 checksum does not match, go back to step 3. 5. flash the image Enter the following commands into the u-boot shell # nand erase 0x110000 0x1bd0000 # nand write ${kernel_addr_r} 0x110000 ${filesize} 6. setup uboot environment Enter the following commands into the u-boot shell # setenv bootargs # setenv fileaddr # setenv filesize # setenv addroot 'setenv bootargs ${bootargs} root=/dev/ubiblock0_0' # setenv owrt_boot 'nboot ${kernel_addr_r} nand0 0x110000; run addroot; run addtty; bootm ${kernel_addr_r}' # setenv bootcmd 'run owrt_boot' # saveenv 7. boot # run bootcmd Booting initramfs instructions via u-boot: Follow steps 0 - 2 from above. 3. boot initramfs Enter the following commands into the u-boot shell # tftp ${kernel_addr_r} openwrt-apm821xx-nand-netgear_wndap660-initramfs-kernel.bin # run addtty # bootm ${kernel_addr_r} Signed-off-by: Christian Lamparter <chunkeey@gmail.com>master
parent
a9839fe638
commit
d82d84694e
@ -0,0 +1,21 @@ |
||||
#!/bin/ash |
||||
|
||||
[ "$ACTION" == "add" ] || exit 0 |
||||
|
||||
PHYNBR=${DEVPATH##*/phy} |
||||
|
||||
[ -n $PHYNBR ] || exit 0 |
||||
|
||||
. /lib/functions.sh |
||||
. /lib/functions/system.sh |
||||
|
||||
board=$(board_name) |
||||
|
||||
case "$board" in |
||||
netgear,wndap620|\ |
||||
netgear,wndap660) |
||||
echo $(macaddr_add $(mtd_get_mac_ascii u-boot-env baseMAC) $(($PHYNBR + 1)) ) > /sys${DEVPATH}/macaddress |
||||
;; |
||||
*) |
||||
;; |
||||
esac |
@ -0,0 +1,28 @@ |
||||
/* |
||||
* Device Tree Source for Netgear WNDAP620 |
||||
* |
||||
* This file is licensed under the terms of the GNU General Public |
||||
* License version 2. This program is licensed "as is" without |
||||
* any warranty of any kind, whether express or implied. |
||||
*/ |
||||
|
||||
/dts-v1/; |
||||
|
||||
#include "netgear-wndap6x0.dtsi"; |
||||
|
||||
/ { |
||||
model = "Netgear WNDAP620"; |
||||
compatible = "netgear,wndap620", "apm,bluestone"; |
||||
}; |
||||
|
||||
&LEDS { |
||||
link1000 { |
||||
label = "wndap620:green:link1000"; |
||||
gpios = <&GPIO0 9 GPIO_ACTIVE_HIGH>; |
||||
}; |
||||
|
||||
link100 { |
||||
label = "wndap620:amber:link100"; |
||||
gpios = <&GPIO0 10 GPIO_ACTIVE_HIGH>; |
||||
}; |
||||
}; |
@ -0,0 +1,38 @@ |
||||
/* |
||||
* Device Tree Source for Netgear WNDAP660 |
||||
* |
||||
* This file is licensed under the terms of the GNU General Public |
||||
* License version 2. This program is licensed "as is" without |
||||
* any warranty of any kind, whether express or implied. |
||||
*/ |
||||
|
||||
/dts-v1/; |
||||
|
||||
#include "netgear-wndap6x0.dtsi" |
||||
|
||||
/ { |
||||
model = "Netgear WNDAP660"; |
||||
compatible = "netgear,wndap660", "apm,bluestone"; |
||||
}; |
||||
|
||||
&LEDS { |
||||
lan1-link1000 { |
||||
label = "wndap660:green:lan1-link1000"; |
||||
gpios = <&GPIO0 22 GPIO_ACTIVE_HIGH>; |
||||
}; |
||||
|
||||
lan1-link100 { |
||||
label = "wndap660:amber:lan1-link100"; |
||||
gpios = <&GPIO0 23 GPIO_ACTIVE_HIGH>; |
||||
}; |
||||
|
||||
lan2-link1000 { |
||||
label = "wndap660:green:lan2-link1000"; |
||||
gpios = <&GPIO0 9 GPIO_ACTIVE_HIGH>; |
||||
}; |
||||
|
||||
lan2-link100 { |
||||
label = "wndap660:amber:lan2-link100"; |
||||
gpios = <&GPIO0 10 GPIO_ACTIVE_HIGH>; |
||||
}; |
||||
}; |
@ -0,0 +1,227 @@ |
||||
/* |
||||
* Device Tree Source for Netgear WNDAP620 and WNDAP660 |
||||
* |
||||
* This file is licensed under the terms of the GNU General Public |
||||
* License version 2. This program is licensed "as is" without |
||||
* any warranty of any kind, whether express or implied. |
||||
*/ |
||||
|
||||
#include "apm82181.dtsi" |
||||
|
||||
/ { |
||||
aliases { |
||||
serial0 = &UART0; |
||||
led-boot = &status; |
||||
led-failsafe = &failsafe; |
||||
led-running = &status; |
||||
led-upgrade = &status; |
||||
}; |
||||
|
||||
chosen { |
||||
stdout-path = "/plb/opb/serial@ef600300"; |
||||
}; |
||||
}; |
||||
|
||||
&CRYPTO { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&PKA { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&TRNG { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&EBC0 { |
||||
ndfc@1,0 { |
||||
status = "okay"; |
||||
/* 32 MiB SLC NAND Flash */ |
||||
nand { |
||||
#address-cells = <1>; |
||||
#size-cells = <1>; |
||||
|
||||
partition@0 { |
||||
label = "u-boot"; |
||||
reg = <0x00000000 0x00100000>; |
||||
read-only; |
||||
}; |
||||
|
||||
partition@100000 { |
||||
label = "u-boot-env"; |
||||
reg = <0x00100000 0x00010000>; |
||||
read-only; |
||||
}; |
||||
|
||||
partition@110000,0 { |
||||
label = "firmware"; |
||||
reg = <0x00110000 0x01ac0000>; |
||||
}; |
||||
|
||||
partition@110000,1 { |
||||
/* |
||||
* The u-boot bootloader will look at this |
||||
* offset (0x110000) for an uImage binary. |
||||
*/ |
||||
label = "kernel"; |
||||
reg = <0x00110000 0x003f0000>; |
||||
}; |
||||
|
||||
partition@500000 { |
||||
label = "ubi"; |
||||
reg = <0x00500000 0x016d0000>; |
||||
}; |
||||
|
||||
partition@1bd0000 { |
||||
/* |
||||
* original vendor device-tree - do not use or |
||||
* overwrite. The original u-boot also supports |
||||
* the gzipped legacy monolithic/Multi-File Image |
||||
* format, which is a better choice. |
||||
*/ |
||||
label = "device-tree"; |
||||
reg = <0x01bd0000 0x0010000>; |
||||
read-only; |
||||
}; |
||||
|
||||
partition@1be0000 { |
||||
label = "var"; |
||||
reg = <0x01be0000 0x0400000>; |
||||
read-only; |
||||
}; |
||||
|
||||
partition@1fe0000 { |
||||
label = "manudata"; |
||||
reg = <0x01fe0000 0x20000 >; |
||||
read-only; |
||||
}; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
&UART0 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&GPIO0 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&EMAC0 { |
||||
status = "okay"; |
||||
|
||||
fixed-link { |
||||
speed = <1000>; |
||||
full-duplex; |
||||
pause; |
||||
asym-pause; |
||||
}; |
||||
|
||||
mdio0: mdio { |
||||
#address-cells = <1>; |
||||
#size-cells = <0>; |
||||
}; |
||||
}; |
||||
|
||||
&POB0 { |
||||
gpio_keys_polled { |
||||
compatible = "gpio-keys-polled"; |
||||
#address-cells = <1>; |
||||
#size-cells = <0>; |
||||
#interrupt-cells = <2>; |
||||
poll-interval = <60>; /* 3 * 20 = 60ms */ |
||||
autorepeat; |
||||
|
||||
reset { |
||||
label = "Reset Button"; |
||||
gpios = <&GPIO0 16 GPIO_ACTIVE_HIGH>; |
||||
linux,code = <KEY_RESTART>; |
||||
interrupt-parent = <&UIC1>; |
||||
interrupts = <0x15 IRQ_TYPE_EDGE_FALLING>; |
||||
}; |
||||
}; |
||||
|
||||
LEDS: gpio-leds { |
||||
compatible = "gpio-leds"; |
||||
|
||||
status: power { |
||||
label = "wndap6x0:green:power"; |
||||
gpios = <&GPIO0 18 GPIO_ACTIVE_HIGH>; |
||||
}; |
||||
|
||||
failsafe: test { |
||||
label = "wndap6x0:amber:test"; |
||||
gpios = <&GPIO0 17 GPIO_ACTIVE_HIGH>; |
||||
panic-indicator; |
||||
}; |
||||
|
||||
activity { |
||||
label = "wndap6x0:green:activity"; |
||||
gpios = <&GPIO0 21 GPIO_ACTIVE_HIGH>; |
||||
}; |
||||
|
||||
wlan2g { |
||||
label = "wndap6x0:green:wlan2g"; |
||||
gpios = <&GPIO0 19 GPIO_ACTIVE_HIGH>; |
||||
}; |
||||
|
||||
wlan5g { |
||||
label = "wndap6x0:green:wlan5g"; |
||||
gpios = <&GPIO0 20 GPIO_ACTIVE_HIGH>; |
||||
}; |
||||
}; |
||||
|
||||
gpio-export { |
||||
compatible = "gpio-export"; |
||||
|
||||
internal-antenna { |
||||
gpio-export,name = "wndap6x0:internal-antenna"; |
||||
gpio-export,output = <1>; |
||||
gpios = <&GPIO0 11 GPIO_ACTIVE_HIGH>; |
||||
}; |
||||
|
||||
external-antenna { |
||||
gpio-export,name = "wndap6x0:external-antenna"; |
||||
gpio-export,output = <0>; |
||||
gpios = <&GPIO0 14 GPIO_ACTIVE_HIGH>; |
||||
}; |
||||
|
||||
mains-powered { |
||||
/* |
||||
* Input pin describing what powers the AP |
||||
* 0/Low = PoE |
||||
* 1/High = 12v mains powered |
||||
*/ |
||||
gpio-export,name = "wndap620:mains-powered"; |
||||
gpios = <&GPIO0 3 GPIO_ACTIVE_HIGH>; |
||||
}; |
||||
}; |
||||
|
||||
rtl8367b { |
||||
compatible = "realtek,rtl8367b"; |
||||
cpu_port = <5>; |
||||
realtek,extif0 = <1 2 1 1 1 1 1 1 2>; |
||||
mii-bus = <&mdio0>; |
||||
}; |
||||
}; |
||||
|
||||
&PCIE0 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&MSI { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&IIC0 { |
||||
status = "okay"; |
||||
|
||||
at24@52 { |
||||
compatible = "atmel,24c04"; |
||||
reg = <0x52>; |
||||
pagesize = <16>; |
||||
read-only; |
||||
}; |
||||
}; |
||||
|
Loading…
Reference in new issue