ramips: add support for Rostelecom RT-SF-1
authorMikhail Zhilkin <csharper2005@gmail.com>
Wed, 2 Nov 2022 08:44:46 +0000 (08:44 +0000)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 13 Nov 2022 20:51:22 +0000 (21:51 +0100)
Rostelecom RT-SF-1 is a wireless WiFi 5 router manufactured by Sercomm
company.

Device specification
--------------------
SoC Type: MediaTek MT7621AT
RAM: 256 MiB
Flash: 256 MiB, Micron MT29F2G08ABAGA3W
Wireless 2.4 GHz (MT7603EN): b/g/n, 2x2
Wireless 5 GHz (MT7615E): a/n/ac, 4x4
Ethernet: 5xGbE (WAN, LAN1, LAN2, LAN3, LAN4)
USB ports: 1xUSB3.0
ZigBee: 3.0, EFR32 MG1B232GG
Button: 2 buttons (Reset & WPS)
LEDs:
   - 1x Status (RGB)
   - 1x 2.4G (blue, hardware, mt76-phy0)
   - 1x 5G (blue, hardware, mt76-phy1)
Power: 12 VDC, 1.5 A
Connector type: barrel
Bootloader: U-Boot

Installation
-----------------
1. Remove dots from the OpenWrt factory image filename
2. Login to the router web interface
3. Update firmware using web interface with the OpenWrt factory image
4. If OpenWrt is booted, then no further steps are required. Enjoy!
   Otherwise (Stock firmware has booted again) proceed to the next step.
5. Update firmware using web interface with any version of the Stock
   firmware
6. Update firmware using web interface with the OpenWrt factory image

Revert to stock
---------------
Change bootflag to Sercomm1 in OpenWrt CLI and then reboot:
    printf 1 | dd bs=1 seek=7 count=1 of=/dev/mtdblock3

Recovery
--------
Use sercomm-recovery tool.
Link: https://github.com/danitool/sercomm-recovery
MAC Addresses
-------------
+-----+------------+------------+
| use | address    | example    |
+-----+------------+------------+
| LAN | label      | *:72, *:d2 |
| WAN | label + 11 | *:7d, *:dd |
| 2g  | label + 2  | *:74, *:d4 |
| 5g  | label + 3  | *:75, *:d5 |
+-----+------------+------------+
The label MAC address was found in Factory 0x21000

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
package/boot/uboot-envtools/files/ramips
target/linux/ramips/dts/mt7621_rostelecom_rt-sf-1.dts [new file with mode: 0644]
target/linux/ramips/image/mt7621.mk
target/linux/ramips/mt7621/base-files/etc/board.d/01_leds
target/linux/ramips/mt7621/base-files/etc/init.d/bootcount
target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh

index 70d70dfed05778861898f6b99e4777a79ebcb95a..6c649bfaccfbc0526d0a43dd49e8036a60c9cae8 100644 (file)
@@ -32,7 +32,8 @@ ampedwireless,ally-r1900k)
        ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x20000" "4"
        ;;
 beeline,smartbox-giga|\
-beeline,smartbox-turbo)
+beeline,smartbox-turbo|\
+rostelecom,rt-sf-1)
        ubootenv_add_uci_config "/dev/mtd0" "0x80000" "0x1000" "0x20000"
        ;;
 buffalo,wsr-1166dhp|\
diff --git a/target/linux/ramips/dts/mt7621_rostelecom_rt-sf-1.dts b/target/linux/ramips/dts/mt7621_rostelecom_rt-sf-1.dts
new file mode 100644 (file)
index 0000000..c476cf9
--- /dev/null
@@ -0,0 +1,30 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "mt7621_sercomm_dxx_nand_256m.dtsi"
+
+/ {
+       compatible = "rostelecom,rt-sf-1", "mediatek,mt7621-soc";
+       model = "Rostelecom RT-SF-1";
+};
+
+&pcie0 {
+       wifi@0,0 {
+               nvmem-cells = <&macaddr_factory_21000>;
+               nvmem-cell-names = "mac-address";
+               mac-address-increment = <(3)>;
+       };
+};
+
+&pcie1 {
+       wifi@0,0 {
+               nvmem-cells = <&macaddr_factory_21000>;
+               nvmem-cell-names = "mac-address";
+               mac-address-increment = <(2)>;
+       };
+};
+
+&gmac1 {
+       nvmem-cells = <&macaddr_factory_21000>;
+       nvmem-cell-names = "mac-address";
+       mac-address-increment = <(11)>;
+};
index de10da7cb66b06414f47994ae5bc9f3de971f408..e7b38aaacf080b06340e12cb9f62a5c08dba4278 100644 (file)
@@ -1740,6 +1740,19 @@ define Device/renkforce_ws-wn530hp3-a
 endef
 TARGET_DEVICES += renkforce_ws-wn530hp3-a
 
+define Device/rostelecom_rt-sf-1
+  $(Device/sercomm_dxx)
+  IMAGE_SIZE := 32768k
+  SERCOMM_HWID := DKG
+  SERCOMM_HWVER := 10110
+  SERCOMM_SWVER := 1026
+  DEVICE_VENDOR := Rostelecom
+  DEVICE_MODEL := RT-SF-1
+  DEVICE_PACKAGES := kmod-mt7603 kmod-mt7615e kmod-mt7615-firmware \
+       kmod-usb3 uboot-envtools
+endef
+TARGET_DEVICES += rostelecom_rt-sf-1
+
 define Device/samknows_whitebox-v8
   $(Device/dsa-migration)
   $(Device/uimage-lzma-loader)
index a3c233a20fcb7f59c61c4f789efcaa7903350435..98db9fb9fc77f90d1430868614f46f3cbcca3434 100644 (file)
@@ -25,7 +25,8 @@ asus,rt-n56u-b1)
        ;;
 beeline,smartbox-flash|\
 beeline,smartbox-giga|\
-beeline,smartbox-turbo)
+beeline,smartbox-turbo|\
+rostelecom,rt-sf-1)
        ucidef_set_led_netdev "wan" "wan" "blue:wan" "wan"
        ;;
 belkin,rt1800)
index 99b318a922c3aae643d5c7de5d093cc67b4f58c9..597c2da60fb9a7c83f58e62f3562a0e01c263d40 100755 (executable)
@@ -8,7 +8,8 @@ boot() {
                [ -n "$(fw_printenv bootcount bootchanged 2>/dev/null)" ] &&\
                        echo -e "bootcount\nbootchanged\n" | /usr/sbin/fw_setenv -s -
                ;;
-       beeline,smartbox-turbo)
+       beeline,smartbox-turbo|\
+       rostelecom,rt-sf-1)
                [[ $(hexdump -n 1 -e '/1 "%1d"' -s $((0x20001)) /dev/mtd3) == \
                        $((0xff)) ]] || printf '\xff' | dd of=/dev/mtdblock3 \
                        count=1 bs=1 seek=$((0x20001))
index d380ea66f75899decb867d6082f6c68be015454d..95bba16194ce34ed147c7aa9d1fbc0429d455ff8 100755 (executable)
@@ -95,6 +95,7 @@ platform_do_upgrade() {
        netgear,wax202|\
        netis,wf2881|\
        raisecom,msg1500-x-00|\
+       rostelecom,rt-sf-1|\
        sercomm,na502|\
        sercomm,na502s|\
        sim,simax1800t|\