d82d84694e
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>
227 lines
3.8 KiB
Text
227 lines
3.8 KiB
Text
/*
|
|
* 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;
|
|
};
|
|
};
|
|
|