From 7fb11c8ed2ca47716a2f27e5efed8bcd567cfc98 Mon Sep 17 00:00:00 2001 From: Thibaut VARENE Date: Wed, 18 Jan 2017 11:34:56 +0100 Subject: [PATCH] ramips: add support for Netgear WN3000RPv3 This patch adds support for the Netgear WN3000RPv3 http://www.netgear.com/support/product/wn3000rpv3.aspx Specifications: - SoC: MediaTek MT7620A (580MHz, ramips) - RAM: 32MB DDR - Storage: 8MB NOR SPI flash - Wireless: builtin MT7620A, 2x2:2 with u.FL connectors - Ethernet: 1x100M - Serial: JP1 header, 57600-8N1 - Stock firmware based on OpenWRT Kamikaze Like the EX2700, the bootloader expects a secondary image signature, see https://forum.openwrt.org/viewtopic.php?pid=312577#p312577 This is why the same fakeroot image is used for the WN3000 Signed-off-by: Thibaut VARENE --- .../ramips/base-files/etc/board.d/01_leds | 3 +- .../ramips/base-files/etc/board.d/02_network | 1 + target/linux/ramips/base-files/etc/diag.sh | 3 +- target/linux/ramips/base-files/lib/ramips.sh | 3 + .../ramips/base-files/lib/upgrade/platform.sh | 1 + target/linux/ramips/dts/WN3000RPV3.dts | 143 ++++++++++++++++++ target/linux/ramips/image/mt7620.mk | 11 ++ 7 files changed, 163 insertions(+), 2 deletions(-) create mode 100644 target/linux/ramips/dts/WN3000RPV3.dts diff --git a/target/linux/ramips/base-files/etc/board.d/01_leds b/target/linux/ramips/base-files/etc/board.d/01_leds index 3d3aa0ac01..545d6a4a6d 100755 --- a/target/linux/ramips/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/base-files/etc/board.d/01_leds @@ -155,7 +155,8 @@ vr500) dir-860l-b1) ucidef_set_led_netdev "wan" "wan" "$board:green:net" "eth0.2" ;; -ex2700) +ex2700|\ +wn3000rpv3) ucidef_set_led_default "power_r" "POWER (red)" "$board:red:power" "0" set_wifi_led "$board:green:router" ;; diff --git a/target/linux/ramips/base-files/etc/board.d/02_network b/target/linux/ramips/base-files/etc/board.d/02_network index e037cbce32..71c40a0ee4 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -58,6 +58,7 @@ ramips_setup_interfaces() timecloud|\ w150m|\ widora-neo|\ + wn3000rpv3|\ wnce2001|\ zbt-cpe102|\ zte-q7) diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh index 5367e651ba..94998333b3 100644 --- a/target/linux/ramips/base-files/etc/diag.sh +++ b/target/linux/ramips/base-files/etc/diag.sh @@ -53,7 +53,8 @@ get_status_led() { jhr-n825r|\ mpr-a1|\ mpr-a2|\ - mzk-ex750np) + mzk-ex750np|\ + wn3000rpv3) status_led="$board:red:power" ;; ac1200pro|\ diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index 6afe709cbe..8292da1d4a 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -553,6 +553,9 @@ ramips_board_detect() { *"WMR-300") name="wmr-300" ;; + *"WN3000RPv3") + name="wn3000rpv3" + ;; *"WNCE2001") name="wnce2001" ;; diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index 0f2510c4bd..c6ad8ca3e5 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -157,6 +157,7 @@ platform_check_image() { wli-tx4-ag300n|\ wlr-6000|\ wmr-300|\ + wn3000rpv3|\ wnce2001|\ wndr3700v5|\ wr512-3gn|\ diff --git a/target/linux/ramips/dts/WN3000RPV3.dts b/target/linux/ramips/dts/WN3000RPV3.dts new file mode 100644 index 0000000000..933cf1a25a --- /dev/null +++ b/target/linux/ramips/dts/WN3000RPV3.dts @@ -0,0 +1,143 @@ +/* This file is released into the public domain */ + +/dts-v1/; + +#include "mt7620a.dtsi" + +#include +#include + +/ { + compatible = "ralink,mt7620a-soc"; + model = "Netgear WN3000RPv3"; + + chosen { + bootargs = "console=ttyS0,57600"; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power_g { + label = "wn3000rpv3:green:power"; + gpios = <&gpio0 9 GPIO_ACTIVE_LOW>; + default-state = "on"; + }; + + power_r { + label = "wn3000rpv3:red:power"; + gpios = <&gpio0 11 GPIO_ACTIVE_LOW>; + }; + + client_g { + label = "wn3000rpv3:green:client"; + gpios = <&gpio0 13 GPIO_ACTIVE_LOW>; + }; + + client_r { + label = "wn3000rpv3:red:client"; + gpios = <&gpio0 10 GPIO_ACTIVE_LOW>; + }; + + router_g { + label = "wn3000rpv3:green:router"; + gpios = <&gpio0 12 GPIO_ACTIVE_LOW>; + }; + + router_r { + label = "wn3000rpv3:red:router"; + gpios = <&gpio0 14 GPIO_ACTIVE_LOW>; + }; + + wps { + label = "wn3000rpv3:green:wps"; + gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; + }; + + l_arrow { + label = "wn3000rpv3:blue:leftarrow"; + gpios = <&gpio0 7 GPIO_ACTIVE_LOW>; + }; + + r_arrow { + label = "wn3000rpv3:blue:rightarrow"; + gpios = <&gpio0 8 GPIO_ACTIVE_LOW>; + }; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + + reset { + label = "reset"; + gpios = <&gpio0 1 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + wps { + label = "wps"; + gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; +}; + +&gpio1 { + status = "okay"; +}; + +&spi0 { + status = "okay"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <10000000>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x30000>; + read-only; + }; + + partition@30000 { + label = "u-boot-env"; + reg = <0x30000 0x10000>; + read-only; + }; + + partition@40000 { + label = "firmware"; + reg = <0x40000 0x7b0000>; + }; + + art: partition@7f0000 { + label = "art"; + reg = <0x7f0000 0x10000>; + read-only; + }; + }; +}; + +ðernet { + mtd-mac-address = <&art 0x0>; +}; + +&wmac { + mtd-mac-address = <&art 0x6>; + ralink,mtd-eeprom = <&art 0x1000>; +}; + +&pinctrl { + state_default: pinctrl0 { + default { + ralink,group = "i2c", "uartf", "spi refclk"; + ralink,function = "gpio"; + }; + }; +}; diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk index 1889bcf708..42e0ab63c2 100644 --- a/target/linux/ramips/image/mt7620.mk +++ b/target/linux/ramips/image/mt7620.mk @@ -75,6 +75,17 @@ define Device/ex2700 endef TARGET_DEVICES += ex2700 +define Device/wn3000rpv3 + DTS := WN3000RPV3 + BLOCKSIZE := 4k + IMAGES += factory.bin + KERNEL := $(KERNEL_DTB) | uImage lzma | pad-kernel-ex2700 + IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | \ + netgear-header -B WN3000RPv3 -H 29764836+8+0+32+2x2+0 + DEVICE_TITLE := Netgear WN3000RPv3 +endef +TARGET_DEVICES += wn3000rpv3 + define Device/wt3020-4M DTS := WT3020-4M BLOCKSIZE := 4k