Skip to content

Commit

Permalink
ramips: add support for Netgear WN3100RPv2
Browse files Browse the repository at this point in the history
This patch adds support for the Netgear WN3100RPv2
http://www.netgear.com/support/product/wn3100rpv2.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
- 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 device seems to be same hardware as a WN3000RPv3

Flash instructions:
- Use the Netgear WebUI to upgrade to OpenWRT using the factory image
  (see note below),
- Use the sysupgrade image for upgrading versions from OpenWRT,
- TFTP recovery procedure can be used to flash the factory image
  (preferred method).

Note:
- The WebUI may not reboot automatically, wait at least 5 minutes before
  powercycling the device

Flashing using TFTP:
- Set you IP address to 192.168.1.10/24 (no gateway)
- Connect your machine to the Ethernet port
- Power off the device and wait for 10 seconds,
- Hold the reset button and power on the device (do not release reset),
- Hold the reset button until the green light is flashing (Approx. 15s)
- launch tftp, set mode to binary and connect to 192.168.1.1
- put the factory firmware image
- All leds will switch off (like a power off), this is normal
- Wait for the device to reboot in the new OpenWRT image (max 5 mins)
- The first boot will take longer than usual.
- After boot, the Device IP on the ethernet port is 192.168.1.1

Signed-off-by: Rodolphe de Saint Léger <rdesaintleger@gmail.com>
[drop unneeded includes in dts, wrap commit message]
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
  • Loading branch information
rdesaintleger authored and mans0n committed Mar 16, 2022
1 parent fe34001 commit 46c5de5
Show file tree
Hide file tree
Showing 6 changed files with 186 additions and 155 deletions.
155 changes: 1 addition & 154 deletions target/linux/ramips/dts/mt7620a_netgear_wn3000rp-v3.dts
@@ -1,161 +1,8 @@
/* This file is released into the public domain */

#include "mt7620a.dtsi"

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "mt7620a_netgear_wn3x00rp.dtsi"

/ {
compatible = "netgear,wn3000rp-v3", "ralink,mt7620a-soc";
model = "Netgear WN3000RP v3";

aliases {
led-boot = &led_power_green;
led-failsafe = &led_power_green;
led-running = &led_power_green;
led-upgrade = &led_power_green;
};

keys {
compatible = "gpio-keys";

reset {
label = "reset";
gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};

wps {
label = "wps";
gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
linux,code = <KEY_WPS_BUTTON>;
};
};

leds {
compatible = "gpio-leds";

led_power_green: power_g {
label = "green:power";
gpios = <&gpio0 9 GPIO_ACTIVE_LOW>;
default-state = "on";
};

power_r {
label = "red:power";
gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
};

client_g {
label = "green:client";
gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
};

client_r {
label = "red:client";
gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
};

router_g {
label = "green:router";
gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
};

router_r {
label = "red:router";
gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
};

wps {
label = "green:wps";
gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
};

l_arrow {
label = "blue:leftarrow";
gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
};

r_arrow {
label = "blue:rightarrow";
gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
};
};
};

&gpio1 {
status = "okay";
};

&spi0 {
status = "okay";

flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <10000000>;

partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;

partition@0 {
label = "u-boot";
reg = <0x0 0x30000>;
read-only;
};

partition@30000 {
label = "u-boot-env";
reg = <0x30000 0x10000>;
read-only;
};

partition@40000 {
compatible = "denx,uimage";
label = "firmware";
reg = <0x40000 0x7b0000>;
};

art: partition@7f0000 {
label = "art";
reg = <0x7f0000 0x10000>;
read-only;
};
};
};
};

&ethernet {
nvmem-cells = <&macaddr_art_0>;
nvmem-cell-names = "mac-address";
};

&wmac {
ralink,mtd-eeprom = <&art 0x1000>;

nvmem-cells = <&macaddr_art_6>;
nvmem-cell-names = "mac-address";
};

&state_default {
default {
groups = "i2c", "uartf", "spi refclk";
function = "gpio";
};
};

&art {
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;

macaddr_art_0: macaddr@0 {
reg = <0x0 0x6>;
};

macaddr_art_6: macaddr@6 {
reg = <0x6 0x6>;
};
};
8 changes: 8 additions & 0 deletions target/linux/ramips/dts/mt7620a_netgear_wn3100rp-v2.dts
@@ -0,0 +1,8 @@
/* This file is released into the public domain */

#include "mt7620a_netgear_wn3x00rp.dtsi"

/ {
compatible = "netgear,wn3100rp-v2", "ralink,mt7620a-soc";
model = "Netgear WN3100RP v2";
};
158 changes: 158 additions & 0 deletions target/linux/ramips/dts/mt7620a_netgear_wn3x00rp.dtsi
@@ -0,0 +1,158 @@
/* This file is released into the public domain */

#include "mt7620a.dtsi"

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

/ {
aliases {
led-boot = &led_power_green;
led-failsafe = &led_power_green;
led-running = &led_power_green;
led-upgrade = &led_power_green;
};

keys {
compatible = "gpio-keys";

reset {
label = "reset";
gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};

wps {
label = "wps";
gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
linux,code = <KEY_WPS_BUTTON>;
};
};

leds {
compatible = "gpio-leds";

led_power_green: power_g {
label = "green:power";
gpios = <&gpio0 9 GPIO_ACTIVE_LOW>;
default-state = "on";
};

power_r {
label = "red:power";
gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
};

client_g {
label = "green:client";
gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
};

client_r {
label = "red:client";
gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
};

router_g {
label = "green:router";
gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
};

router_r {
label = "red:router";
gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
};

wps {
label = "green:wps";
gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
};

l_arrow {
label = "blue:leftarrow";
gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
};

r_arrow {
label = "blue:rightarrow";
gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
};
};
};

&gpio1 {
status = "okay";
};

&spi0 {
status = "okay";

flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <10000000>;

partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;

partition@0 {
label = "u-boot";
reg = <0x0 0x30000>;
read-only;
};

partition@30000 {
label = "u-boot-env";
reg = <0x30000 0x10000>;
read-only;
};

partition@40000 {
compatible = "denx,uimage";
label = "firmware";
reg = <0x40000 0x7b0000>;
};

art: partition@7f0000 {
label = "art";
reg = <0x7f0000 0x10000>;
read-only;
};
};
};
};

&ethernet {
nvmem-cells = <&macaddr_art_0>;
nvmem-cell-names = "mac-address";
};

&wmac {
ralink,mtd-eeprom = <&art 0x1000>;

nvmem-cells = <&macaddr_art_6>;
nvmem-cell-names = "mac-address";
};

&state_default {
default {
groups = "i2c", "uartf", "spi refclk";
function = "gpio";
};
};

&art {
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;

macaddr_art_0: macaddr@0 {
reg = <0x0 0x6>;
};

macaddr_art_6: macaddr@6 {
reg = <0x6 0x6>;
};
};
16 changes: 16 additions & 0 deletions target/linux/ramips/image/mt7620.mk
Expand Up @@ -819,6 +819,22 @@ define Device/netgear_wn3000rp-v3
endef
TARGET_DEVICES += netgear_wn3000rp-v3

define Device/netgear_wn3100rp-v2
SOC := mt7620a
IMAGE_SIZE := 7872k
NETGEAR_HW_ID := 29764883+8+0+32+2x2+0
NETGEAR_BOARD_ID := WN3100RPv2
BLOCKSIZE := 4k
IMAGES += factory.bin
KERNEL := $(KERNEL_DTB) | uImage lzma | pad-offset 64k 64 | \
append-uImage-fakehdr filesystem
IMAGE/factory.bin := $$(sysupgrade_bin) | check-size | netgear-dni
DEVICE_VENDOR := NETGEAR
DEVICE_MODEL := WN3100RP
DEVICE_VARIANT := v2
endef
TARGET_DEVICES += netgear_wn3100rp-v2

define Device/netis_wf2770
SOC := mt7620a
IMAGE_SIZE := 16064k
Expand Down
3 changes: 2 additions & 1 deletion target/linux/ramips/mt7620/base-files/etc/board.d/01_leds
Expand Up @@ -161,7 +161,8 @@ lenovo,newifi-y1s)
ucidef_set_led_netdev "wan" "WAN" "blue:internet" "eth0.2" "tx rx"
;;
netgear,ex2700|\
netgear,wn3000rp-v3)
netgear,wn3000rp-v3|\
netgear,wn3100rp-v2)
ucidef_set_led_netdev "wifi_led" "wifi" "green:router" "wlan0"
;;
netgear,ex3700|\
Expand Down
Expand Up @@ -54,6 +54,7 @@ ramips_setup_interfaces()
netgear,ex6120|\
netgear,ex6130|\
netgear,wn3000rp-v3|\
netgear,wn3100rp-v2|\
planex,cs-qr10|\
planex,mzk-ex300np|\
planex,mzk-ex750np|\
Expand Down

0 comments on commit 46c5de5

Please sign in to comment.