From 7bc20cb6143e089fae6ad4b173fc42b55bdbecfe Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rodolphe=20de=20Saint=20L=C3=A9ger?= Date: Wed, 16 Mar 2022 10:19:30 +0100 Subject: [PATCH] ramips: add support for Netgear WN3000RPv3 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 [drop unneeded includes in dts, wrap commit message] Signed-off-by: Sungbo Eo --- .../dts/mt7620a_netgear_wn3000rp-v3.dts | 155 +---------------- .../dts/mt7620a_netgear_wn3100rp-v2.dts | 8 + .../ramips/dts/mt7620a_netgear_wn3x00rp.dtsi | 158 ++++++++++++++++++ target/linux/ramips/image/mt7620.mk | 16 ++ .../mt7620/base-files/etc/board.d/01_leds | 3 +- .../mt7620/base-files/etc/board.d/02_network | 1 + 6 files changed, 186 insertions(+), 155 deletions(-) create mode 100644 target/linux/ramips/dts/mt7620a_netgear_wn3100rp-v2.dts create mode 100644 target/linux/ramips/dts/mt7620a_netgear_wn3x00rp.dtsi diff --git a/target/linux/ramips/dts/mt7620a_netgear_wn3000rp-v3.dts b/target/linux/ramips/dts/mt7620a_netgear_wn3000rp-v3.dts index c6fe7baa6782..cddffb722442 100644 --- a/target/linux/ramips/dts/mt7620a_netgear_wn3000rp-v3.dts +++ b/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 -#include +#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 = ; - }; - - wps { - label = "wps"; - gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; - linux,code = ; - }; - }; - - 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; - }; - }; - }; -}; - -ðernet { - 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>; - }; }; diff --git a/target/linux/ramips/dts/mt7620a_netgear_wn3100rp-v2.dts b/target/linux/ramips/dts/mt7620a_netgear_wn3100rp-v2.dts new file mode 100644 index 000000000000..af4a73badee3 --- /dev/null +++ b/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"; +}; diff --git a/target/linux/ramips/dts/mt7620a_netgear_wn3x00rp.dtsi b/target/linux/ramips/dts/mt7620a_netgear_wn3x00rp.dtsi new file mode 100644 index 000000000000..914d4e6bba40 --- /dev/null +++ b/target/linux/ramips/dts/mt7620a_netgear_wn3x00rp.dtsi @@ -0,0 +1,158 @@ +/* This file is released into the public domain */ + +#include "mt7620a.dtsi" + +#include +#include + +/ { + 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 = ; + }; + + wps { + label = "wps"; + gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + 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; + }; + }; + }; +}; + +ðernet { + 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>; + }; +}; diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk index 49d25b947f6a..d2a2c90460b2 100644 --- a/target/linux/ramips/image/mt7620.mk +++ b/target/linux/ramips/image/mt7620.mk @@ -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 diff --git a/target/linux/ramips/mt7620/base-files/etc/board.d/01_leds b/target/linux/ramips/mt7620/base-files/etc/board.d/01_leds index 5f105bd834d1..1293c34cbf9e 100644 --- a/target/linux/ramips/mt7620/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/mt7620/base-files/etc/board.d/01_leds @@ -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|\ diff --git a/target/linux/ramips/mt7620/base-files/etc/board.d/02_network b/target/linux/ramips/mt7620/base-files/etc/board.d/02_network index 3ed72fa3ab2b..f7bc41669f80 100644 --- a/target/linux/ramips/mt7620/base-files/etc/board.d/02_network +++ b/target/linux/ramips/mt7620/base-files/etc/board.d/02_network @@ -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|\ -- 2.30.2