Add support for Beeline SmartBox TURBO+

Generic NAND backup FW OEM via TFTP

  1. Prepare TFTP server* on PC - Setting up a TFTP server for TFTP Recovery/Install
  2. Connect via SSH
  3. Create dump mtd. Enter your address in the "IP=" variable.
CSN=$(hexdump -e '/2 "%1s"' -n $((0xC)) -s $((0x21010)) /dev/mtd2)
IP=172.16.0.2
cd /tmp
echo $CSN >> mtd.md5
for i in 0 1 2 3 4 5 6 7 8 9 10; do 
echo "===Dump mtd$i.bin backup===";
nanddump -f mtd$i.bin /dev/mtd$i;
tftp -l mtd$i.bin -p $IP;
md5sum mtd$i.bin >> mtd.md5;
rm mtd$i.bin; 
done
tftp -l mtd.md5 -p $IP
rm mtd.md5
echo "=== Finish backup ==="

Thank @csharper2005

*People are reporting that dnsmasq is not working.
tftp: server error: (4) unsupported request from 172.16.0.1

Version

Dnsmasq version 2.86  Copyright (c) 2000-2021 Simon Kelley
Compile time options: IPv6 GNU-getopt DBus no-UBus i18n IDN2 DHCP DHCPv6 no-Lua TFTP conntrack ipset auth cryptohash DNSSEC loop-detect inotify dumpfile

The method seems to be universal for the entire CPE Sercomm mt7621, only the number of required mtd partitions differs.

Vendor Label MTD**
Sercomm S1500 AWI Beeline SmartBox PRO 12
Sercomm S1500 BUC WiFire S1500.NBN 10
Sercomm S3 CQR Beeline SmartBox TURBO+ 9
Sercomm S3 DF3 Beeline SmartBox TURBO 10
Sercomm S3 DDK Etisalat Sercomm S3 9
Sercomm S2 DBE Beeline SmartBox GIGA 10

** The number of the last required mtd from mtd0 (skipping the section if there is one with BBT).

An alternative way using gz & tar on TURBO sends as a single file.
CSN=$(hexdump -e '/2 "%1s"' -n $((0xC)) -s $((0x21010)) /dev/mtd2)
IP=10.10.10.3
mkdir /tmp/$CSN; cd /tmp/$CSN;
for i in 0 1 2 3 4 5 6 7 8 9 10; do
echo "===Dump mtd$i.bin backup===";
nanddump -f mtd$i.bin /dev/mtd$i;
md5sum mtd$i.bin >> mtd.md5;
gzip -c mtd$i.bin >> mtd$i.gz;
rm mtd$i.bin;
done
tar -cvf $CSN.gz.tar .
tftp -l $CSN.gz.tar -p $IP
cd /tmp; rm -r /tmp/$CSN
echo "=== Finish backup ==="
Reference
1 Like

Installing OpenWRT on SmartBox TURBO via mtd-utils

  1. Generic NAND backup
  2. Prepare TFTP server on PC (Or directly from a USB flash drive)
    • Example on Linux
    sudo atftpd --daemon --no-fork --user $USER.users --logfile - CatalogFolderOpenWRT
    
  3. Connect via SSH (Or directly with UART)
cd /tmp
tftp -r openwrt-21.02.2-ramips-mt7621-beeline_smartbox-turbo-squashfs-kernel.bin -g 172.16.0.1
tftp -r openwrt-21.02.2-ramips-mt7621-beeline_smartbox-turbo-squashfs-rootfs.bin -g 172.16.0.1
mtd_debug erase /dev/mtd4 0x0 0x600000
mtd_debug write /dev/mtd4 0 $(ls -l openwrt-21.02.2-ramips-mt7621-beeline_smartbox-turbo-squashfs-kernel.bin | awk -F' ' '{print $5}') openwrt-21.02.2-ramips-mt7621-beeline_smartbox-turbo-squashfs-kernel.bin
mtd_debug erase /dev/mtd6 0x0 0x2000000
mtd_debug write /dev/mtd6 0 $(ls -l openwrt-21.02.2-ramips-mt7621-beeline_smartbox-turbo-squashfs-rootfs.bin | awk -F' ' '{print $5}') openwrt-21.02.2-ramips-mt7621-beeline_smartbox-turbo-squashfs-rootfs.bin
printf 0 | dd of=/dev/mtdblock3 bs=1 seek=7 count=1 
reboot
2 Likes

Repository for ongoing development and testing

  • Branch - sercomm_s3x

United devices on the same S3 platform:

  • Beeline SmartBox TURBO+
  • Beeline SmartBox TURBO
  • Etisalat Sercomm S3
For which device do you expect support to be added to OpenWRT?
  • Sercomm S3 CQR - Beeline SmartBox TURBO+
  • Sercomm S3 DF3 - Beeline SmartBox TURBO
  • Sercomm S3 DDK - Etisalat Sercomm S3
  • Sercomm S3 DKG - Rostelecom Sercomm RT-SF-1
  • Sercomm S3 CX4 - Rostelecom Sercomm RT-FE-1
  • Sercomm S3 CX4 - Rostelecom Sercomm RT-FE-1A

0 voters

A little bump for the best value router aka SmartBox TURBO+. When is it gonna be added to the official openwrt repo?

Also wanted to point out that your patches have been working very well so far, I've been using TURBO+ for almost a year now. It's kinda sad that getting them in mainstream is taking so long.

1 Like

I wonder if Turbo+ can benefit from this Users needed to test 2 Gbps WAN/LAN NAT Routing on ramips MT7621 devices . I really hope maintainers would approve Turbo+ PR so the mux switch dev could look into our device.

1 Like

Yes, this PR will be useful for TURBO+ & TURBO.

Why not incorporate my patch series into your own patch?

for-turbo-plus.patch
From 000f4561bb3f2947ab983f6633249c346440aedf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ar=C4=B1n=C3=A7=20=C3=9CNAL?= <nospam>
Date: Fri, 15 Jul 2022 23:52:43 +0300
Subject: [PATCH] fixup! ramips: Add support for Beeline SmartBox TURBO+

---
 .../mt7621_beeline_smartbox-turbo-plus.dts    |  2 +-
 .../linux/ramips/dts/mt7621_sercomm_s3.dtsi   | 24 +++++++++----------
 2 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/target/linux/ramips/dts/mt7621_beeline_smartbox-turbo-plus.dts b/target/linux/ramips/dts/mt7621_beeline_smartbox-turbo-plus.dts
index 547848a3c5..10968abc09 100644
--- a/target/linux/ramips/dts/mt7621_beeline_smartbox-turbo-plus.dts
+++ b/target/linux/ramips/dts/mt7621_beeline_smartbox-turbo-plus.dts
@@ -125,7 +125,7 @@
 	nvmem-cell-names = "mac-address";
 };
 
-&wan {
+&gmac1 {
 	nvmem-cells = <&macaddr_factory_21000>;
 	nvmem-cell-names = "mac-address";
 	mac-address-increment = <1>;
diff --git a/target/linux/ramips/dts/mt7621_sercomm_s3.dtsi b/target/linux/ramips/dts/mt7621_sercomm_s3.dtsi
index c783883b18..fe1bf23108 100644
--- a/target/linux/ramips/dts/mt7621_sercomm_s3.dtsi
+++ b/target/linux/ramips/dts/mt7621_sercomm_s3.dtsi
@@ -76,13 +76,20 @@
 	};
 };
 
+&gmac1 {
+	status = "okay";
+	label = "wan";
+	phy-handle = <&ethphy0>;
+};
+
+&mdio {
+	ethphy0: ethernet-phy@0 {
+		reg = <0>;
+	};
+};
+
 &switch0 {
 	ports {
-		wan: port@0 {
-			status = "okay";
-			label = "wan";
-		};
-
 		port@1 {
 			status = "okay";
 			label = "lan1";
@@ -104,10 +111,3 @@
 		};
 	};
 };
-
-&state_default {
-	gpio {
-		groups = "jtag", "uart2";
-		function = "gpio";
-	};
-};
-- 
2.34.1

for-turbo.patch
From 46fc1e7cbd7cb9ba292c6afabbf1db9694085add Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ar=C4=B1n=C3=A7=20=C3=9CNAL?= <nospam>
Date: Sat, 16 Jul 2022 00:20:16 +0300
Subject: [PATCH] fixup! ramips: add support for Beeline SmartBox TURBO

---
 .../dts/mt7621_beeline_smartbox-turbo.dts     | 32 +++++++++----------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/target/linux/ramips/dts/mt7621_beeline_smartbox-turbo.dts b/target/linux/ramips/dts/mt7621_beeline_smartbox-turbo.dts
index d987046a0f..bb7de2842e 100644
--- a/target/linux/ramips/dts/mt7621_beeline_smartbox-turbo.dts
+++ b/target/linux/ramips/dts/mt7621_beeline_smartbox-turbo.dts
@@ -202,17 +202,24 @@
 	nvmem-cell-names = "mac-address";
 };
 
-&switch0 {
-	ports {
-		port@0 {
-			status = "okay";
-			label = "wan";
+&gmac1 {
+	status = "okay";
+	label = "wan";
+	phy-handle = <&ethphy0>;
 
-			nvmem-cells = <&macaddr_factory_21000>;
-			nvmem-cell-names = "mac-address";
-			mac-address-increment = <(1)>;
-		};
+	nvmem-cells = <&macaddr_factory_21000>;
+	nvmem-cell-names = "mac-address";
+	mac-address-increment = <(1)>;
+};
 
+&mdio {
+	ethphy0: ethernet-phy@0 {
+		reg = <0>;
+	};
+};
+
+&switch0 {
+	ports {
 		port@1 {
 			status = "okay";
 			label = "lan1";
@@ -238,10 +245,3 @@
 &uartlite3 {
 	status = "okay";
 };
-
-&state_default {
-	gpio {
-		groups = "jtag", "uart2";
-		function = "gpio";
-	};
-};
-- 
2.34.1

Apply the patch file with git am, apply the fixup on your original commit with git rebase -i --autosquash HEAD~2.

2 Likes

I thought that we also need the changes in mt7621.dtsi. if I understand you correctly this not required for turbo(+). Right?

That’s right. There’s only the patch for removing the DTS_LEGACY flag you should care about, which only matters for the 5.15 kernel. However, by the time the 5.15 kernel is taken out of the testing stage, my patch series are likely to be already applied.

1 Like

Ok)

Need to add commits from your PR and patch above?

My PR is irrelevant in this case. Just apply the patch I've sent here.