ramips: add support for Cudy R700
authorDavid DeGraw <degraw@fastmail.com>
Fri, 18 Apr 2025 17:55:34 +0000 (11:55 -0600)
committerHauke Mehrtens <hauke@hauke-m.de>
Fri, 12 Dec 2025 00:23:46 +0000 (01:23 +0100)
This is the same hardware as the Cudy WR2100 that's
had support for some time now, just without the WLAN
hardware.

This PR is mostly copied from the commit that added
support for the WR2100, here: 3501db9

Specifications:
SoC: MT7621
CPU: 880 MHz
Flash: 16 MiB
RAM: 128 MiB
Ethernet: 5x Gbit ports

Installation:
There are two known options:

The Luci-based UI.
Press and hold the reset button during power up.
The router will request 'recovery.bin' from a TFTP server at
192.168.1.88.

Both options require a signed firmware binary.
A signed firmware can be found in GitHub PR #18532.

R4 & R5 need to be shorted (0-100Ω) for the UART to work.

Link: https://github.com/openwrt/openwrt/pull/18532
Signed-off-by: David DeGraw <degraw@fastmail.com>
(cherry picked from commit 75403dd1d05bea1b65349ebb9f8b7deb40b9c802)
Link: https://github.com/openwrt/openwrt/pull/21068
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
target/linux/ramips/dts/mt7621_cudy_r700.dts [new file with mode: 0644]
target/linux/ramips/image/mt7621.mk
target/linux/ramips/mt7621/base-files/etc/board.d/01_leds

diff --git a/target/linux/ramips/dts/mt7621_cudy_r700.dts b/target/linux/ramips/dts/mt7621_cudy_r700.dts
new file mode 100644 (file)
index 0000000..6d1c1ec
--- /dev/null
@@ -0,0 +1,203 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "mt7621.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+       compatible = "cudy,r700", "mediatek,mt7621-soc";
+       model = "Cudy R700";
+
+       aliases {
+               led-boot = &led_internet_blue;
+               led-failsafe = &led_internet_blue;
+               led-running = &led_internet_blue;
+               led-upgrade = &led_internet_blue;
+               label-mac-device = &gmac0;
+       };
+
+       chosen {
+               bootargs = "console=ttyS0,115200";
+       };
+
+       keys {
+               compatible = "gpio-keys";
+
+               reset {
+                       label = "reset";
+                       gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_RESTART>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led_internet_blue: internet_blue {
+                       label = "blue:internet";
+                       gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+               };
+
+               internet_red {
+                       label = "red:internet";
+                       gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+               };
+
+               wan {
+                       function = LED_FUNCTION_WAN;
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+               };
+
+               lan1 {
+                       label = "green:lan1";
+                       gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+               };
+
+               lan2 {
+                       label = "green:lan2";
+                       gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
+               };
+
+               lan3 {
+                       label = "green:lan3";
+                       gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
+               };
+
+               lan4 {
+                       label = "green:lan4";
+                       gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&gmac0 {
+       nvmem-cells = <&macaddr_bdinfo_de00 0>;
+       nvmem-cell-names = "mac-address";
+};
+
+&spi0 {
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <50000000>;
+
+               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 {
+                               label = "factory";
+                               reg = <0x40000 0x10000>;
+                               read-only;
+
+                               nvmem-layout {
+                                       compatible = "fixed-layout";
+                                       #address-cells = <1>;
+                                       #size-cells = <1>;
+
+                                       eeprom_factory_0: eeprom@0 {
+                                               reg = <0x0 0x400>;
+                                       };
+
+                                       eeprom_factory_8000: eeprom@8000 {
+                                               reg = <0x8000 0x4da8>;
+                                       };
+                               };
+                       };
+
+                       partition@50000 {
+                               compatible = "denx,uimage";
+                               label = "firmware";
+                               reg = <0x50000 0xf80000>;
+                       };
+
+                       partition@fd0000 {
+                               label = "debug";
+                               reg = <0xfd0000 0x10000>;
+                               read-only;
+                       };
+
+                       partition@fe0000 {
+                               label = "backup";
+                               reg = <0xfe0000 0x10000>;
+                               read-only;
+                       };
+
+                       partition@ff0000 {
+                               label = "bdinfo";
+                               reg = <0xff0000 0x10000>;
+                               read-only;
+
+                               nvmem-layout {
+                                       compatible = "fixed-layout";
+                                       #address-cells = <1>;
+                                       #size-cells = <1>;
+
+                                       macaddr_bdinfo_de00: macaddr@de00 {
+                                               compatible = "mac-base";
+                                               reg = <0xde00 0x6>;
+                                               #nvmem-cell-cells = <1>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+&state_default {
+       gpio {
+               groups = "i2c", "jtag", "uart3", "wdt";
+               function = "gpio";
+       };
+};
+
+&gmac1 {
+       status = "okay";
+       label = "wan";
+       phy-handle = <&ethphy4>;
+
+       nvmem-cells = <&macaddr_bdinfo_de00 1>;
+       nvmem-cell-names = "mac-address";
+};
+
+&switch0 {
+       ports {
+               port@0 {
+                       status = "okay";
+                       label = "lan1";
+               };
+
+               port@1 {
+                       status = "okay";
+                       label = "lan2";
+               };
+
+               port@2 {
+                       status = "okay";
+                       label = "lan3";
+               };
+
+               port@3 {
+                       status = "okay";
+                       label = "lan4";
+               };
+       };
+};
index 83b8767622af1b361eddb4498aa4727beeda1d46..31bdb40b26b61b41ed671654fc40dc5f449545d9 100644 (file)
@@ -795,6 +795,16 @@ define Device/cudy_wr2100
 endef
 TARGET_DEVICES += cudy_wr2100
 
+define Device/cudy_r700
+  $(Device/dsa-migration)
+  DEVICE_VENDOR := Cudy
+  DEVICE_MODEL := R700
+  IMAGE_SIZE := 15872k
+  UIMAGE_NAME := R29
+  DEVICE_PACKAGES := -uboot-envtools
+endef
+TARGET_DEVICES += cudy_r700
+
 define Device/cudy_x6-v1
   $(Device/dsa-migration)
   IMAGE_SIZE := 32256k
index 94f36c1f6e4b37bbb76547fe5420b2d15bfb696d..4c4e7a2f42ea43d519b9a6bbefbcb74b01b63301 100644 (file)
@@ -66,6 +66,7 @@ genexis,pulse-ex400|\
 netis,n6)
        ucidef_set_led_netdev "wan" "wan" "green:wan" "wan" "link tx rx"
        ;;
+cudy,r700|\
 cudy,wr2100)
        ucidef_set_led_netdev "lan1" "lan1" "green:lan1" "lan1"
        ucidef_set_led_netdev "lan2" "lan2" "green:lan2" "lan2"