[openwrt/openwrt] ramips: add support for Netcore NW5212

LEDE Commits lede-commits at lists.infradead.org
Sat Aug 6 10:59:11 PDT 2022


hauke pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/577f3fdbc92c91e252ee3b134637816a240d89f7

commit 577f3fdbc92c91e252ee3b134637816a240d89f7
Author: David Yang <mmyangfl at gmail.com>
AuthorDate: Sun Jun 6 22:42:49 2021 +0800

    ramips: add support for Netcore NW5212
    
    This patch adds support for Netcore NW5212, provided by some carrier in
    China.
    
    Specifications:
    --------------
    
    * SoC: Mediatek MT7620A
    * RAM: 128MB DDR2
    * Flash: 16MB SPI NOR flash (Winbond W25Q128BV)
    * WiFi 2.4GHz: builtin
    * Ethernet: builtin
    * LED: Power, WAN, LAN 1-4, WiFi
    * Buttons: Reset (GPIO 13)
    * UART: Serial console (57600 8n1)
    * USB: 1 x USB2
    
    Installation:
    ------------
    
    The router comes with OpenWrt 14.07 built with MTK SDK. However, as the
    modem is provided by carriers, so the web interface is highly minimized and
    only contains a static page with no interaction options.
    
    There are two possible ways to gain the access.
    
    1) Open the shell and use a UART2USB convert to gain TTY access. Please
       notice you have to remove resistance R54 at the back of the board
       otherwise you won't be able to input anything.
    2) Use built-in backdoor. Access http://192.168.1.1/cgi-bin/_/testxst to
       start dropbear service at port 9122. Be warned the software is super
       old and only diffie-hellman-group1-sha1, diffie-hellman-group14-sha1,
       kexguess2 at matt.ucc.asn.au is support, you may not be able to connect it
       with an up-to-date ssh client.
    
    After you can control the device, flash the firmware as usual. Here are
    some hints for that.
    
    Option 1 (via original firmware):
    
    1) Setup HTTP server on your computer, for example:
         python3 -m http.server
    2) Connect to the route and flash:
         cd /tmp
         wget http://<your-computer-host>/<your-firmware-name>
         mtd -r write <your-firmware-name> firmware
    
    Option 2 (replacing u-boot via breed):
    
    1) Download breed-mt7620-reset13.bin from https://breed.hackpascal.net/
    2) Setup HTTP server on your computer, for example:
         python3 -m http.server
       You can skip this step if your breed is already accessible from HTTP,
       since the original wget does not support HTTPS.
    3) Connect to the route and flash breed:
         cd /tmp
         wget http://<your-computer-host>/breed-mt7620-reset13.bin
         mtd write breed-mt7620-reset13.bin Bootloader
    4) Reboot. Hold reset key or press any key in TTY to enter breed.
    5) Access breed web interface (http://192.168.1.1/). Choose the flash
       layout to be 0x50000 and flash new firmware.
    
    MAC addresses:
    -------------
    
    There are three MACs stored in factory, as in MT7620A reference design:
    
    source address   usage
       0x4 label     WLAN
      0x28 label     MAC 1
      0x2e label + 1 MAC 2
    
    However, the OEM firmware only uses one single MAC (label) for all
    interfaces, probably a misconfiguration.
    
    Signed-off-by: David Yang <mmyangfl at gmail.com>
---
 target/linux/ramips/dts/mt7620a_netcore_nw5212.dts | 132 +++++++++++++++++++++
 target/linux/ramips/image/mt7620.mk                |  10 ++
 .../ramips/mt7620/base-files/etc/board.d/01_leds   |  15 +--
 .../mt7620/base-files/etc/board.d/02_network       |   1 +
 4 files changed, 151 insertions(+), 7 deletions(-)

diff --git a/target/linux/ramips/dts/mt7620a_netcore_nw5212.dts b/target/linux/ramips/dts/mt7620a_netcore_nw5212.dts
new file mode 100644
index 0000000000..25287ebc0b
--- /dev/null
+++ b/target/linux/ramips/dts/mt7620a_netcore_nw5212.dts
@@ -0,0 +1,132 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "mt7620a.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+	compatible = "netcore,nw5212", "ralink,mt7620a-soc";
+	model = "Netcore NW5212";
+
+	aliases {
+		label-mac-device = ðernet;
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		lan4 {
+			label = "green:lan4";
+			gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
+		};
+
+		lan3 {
+			label = "green:lan3";
+			gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
+		};
+
+		lan2 {
+			label = "green:lan2";
+			gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
+		};
+
+		lan1 {
+			label = "green:lan1";
+			gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
+		};
+
+		wan {
+			label = "green:wan";
+			gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
+		};
+
+		wlan2g {
+			label = "green:wlan2g";
+			gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy0tpt";
+		};
+	};
+
+	keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "reset";
+			gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_RESTART>;
+		};
+	};
+};
+
+&gpio2 {
+	status = "okay";
+};
+
+&gpio3 {
+	status = "okay";
+};
+
+&spi0 {
+	status = "okay";
+
+	flash at 0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <70000000>;
+		m25p,fast-read;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "u-boot";
+				reg = <0x0 0x30000>;
+				read-only;
+			};
+
+			partition at 30000 {
+				label = "u-boot-env";
+				reg = <0x30000 0x10000>;
+			};
+
+			factory: partition at 40000 {
+				label = "factory";
+				reg = <0x40000 0x10000>;
+				read-only;
+			};
+
+			partition at 50000 {
+				compatible = "denx,uimage";
+				label = "firmware";
+				reg = <0x50000 0xfb0000>;
+			};
+		};
+	};
+};
+
+&state_default {
+	gpio {
+		groups = "uartf", "wled", "ephy";
+		function = "gpio";
+	};
+};
+
+&ethernet {
+	mtd-mac-address = <&factory 0x28>;
+	mediatek,portmap = "llllw";
+};
+
+&ehci {
+	status = "okay";
+};
+
+&ohci {
+	status = "okay";
+};
+
+&wmac {
+	ralink,mtd-eeprom = <&factory 0x0>;
+};
diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk
index b3551fa6cb..f6ad162779 100644
--- a/target/linux/ramips/image/mt7620.mk
+++ b/target/linux/ramips/image/mt7620.mk
@@ -729,6 +729,16 @@ define Device/microduino_microwrt
 endef
 TARGET_DEVICES += microduino_microwrt
 
+define Device/netcore_nw5212
+  SOC := mt7620a
+  IMAGE_SIZE := 16064k
+  BLOCKSIZE := 4k
+  DEVICE_VENDOR := Netcore
+  DEVICE_MODEL := NW5212
+  DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci
+endef
+TARGET_DEVICES += netcore_nw5212
+
 define Device/netgear_ex2700
   SOC := mt7620a
   NETGEAR_HW_ID := 29764623+4+0+32+2x2+0
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 889818c631..b1dc36672d 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
@@ -160,6 +160,14 @@ lenovo,newifi-y1s)
 	ucidef_set_led_netdev "wifi5g" "WIFI5G" "blue:wifi" "wlan0"
 	ucidef_set_led_netdev "wan" "WAN" "blue:internet" "eth0.2" "tx rx"
 	;;
+netcore,nw5212|\
+netgear,jwnr2010-v5)
+	ucidef_set_led_switch "lan1" "lan1" "green:lan1" "switch0" "0x08"
+	ucidef_set_led_switch "lan2" "lan2" "green:lan2" "switch0" "0x04"
+	ucidef_set_led_switch "lan3" "lan3" "green:lan3" "switch0" "0x02"
+	ucidef_set_led_switch "lan4" "lan4" "green:lan4" "switch0" "0x01"
+	ucidef_set_led_switch "wan" "wan" "green:wan" "switch0" "0x10"
+	;;
 netgear,ex2700|\
 netgear,wn3000rp-v3|\
 netgear,wn3100rp-v2)
@@ -170,13 +178,6 @@ netgear,ex6130)
 	ucidef_set_led_netdev "wlan5g" "ROUTER (green)" "green:router" "wlan0"
 	ucidef_set_led_netdev "wlan2g" "DEVICE (green)" "green:device" "wlan1"
 	;;
-netgear,jwnr2010-v5)
-	ucidef_set_led_switch "lan1" "lan1" "green:lan1" "switch0" "0x08"
-	ucidef_set_led_switch "lan2" "lan2" "green:lan2" "switch0" "0x04"
-	ucidef_set_led_switch "lan3" "lan3" "green:lan3" "switch0" "0x02"
-	ucidef_set_led_switch "lan4" "lan4" "green:lan4" "switch0" "0x01"
-	ucidef_set_led_switch "wan" "wan" "green:wan" "switch0" "0x10"
-	;;
 netgear,pr2000)
 	ucidef_set_led_switch "internet" "internet" "green:internet" "switch0" "0x01"
 	;;
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 7b1766766b..79df102056 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
@@ -111,6 +111,7 @@ ramips_setup_interfaces()
 			"0:lan" "6 at eth0"
 		;;
 	dlink,dir-810l|\
+	netcore,nw5212|\
 	netgear,jwnr2010-v5|\
 	phicomm,k2-v22.4|\
 	phicomm,k2-v22.5|\




More information about the lede-commits mailing list