ramips: add support for Cudy R700

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>
This commit is contained in:
David DeGraw 2025-04-18 11:55:34 -06:00 committed by David Bauer
parent f828be4d10
commit 75403dd1d0
3 changed files with 214 additions and 0 deletions

View file

@ -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";
};
};
};

View file

@ -768,6 +768,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

View file

@ -63,6 +63,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"