diff options
author | Mikhail Zhilkin <csharper2005@gmail.com> | 2023-06-11 20:50:23 +0000 |
---|---|---|
committer | Hauke Mehrtens <hauke@hauke-m.de> | 2023-07-02 15:19:34 +0200 |
commit | 436ef3772809e5e34e18b623e8ff93d34af1ea5d (patch) | |
tree | d580d509c6034339e056fe8417370b1d483103f8 /target/linux/ramips/image | |
parent | 5399d0362fc49767da4395683622e6832ae449a1 (diff) | |
download | upstream-436ef3772809e5e34e18b623e8ff93d34af1ea5d.tar.gz upstream-436ef3772809e5e34e18b623e8ff93d34af1ea5d.tar.bz2 upstream-436ef3772809e5e34e18b623e8ff93d34af1ea5d.zip |
ramips: add support for Sercomm S1500 devices
This commit adds support for following wireless routers:
- Beeline SmartBox PRO (Serсomm S1500 AWI)
- WiFire S1500.NBN (Serсomm S1500 BUC)
This commit is based on this PR:
- Link: https://github.com/openwrt/openwrt/pull/4770
- Author: Maximilian Weinmann <x1@disroot.org>
The opening of this PR was agreed with author.
My changes:
- Sorting, minor changes and some movings between dts and dtsi
- Move leds to dts when possible
- Recipes for the factory image
- Update of the installation/recovery/return to stock guides
- Add reset GPIO for the pcie1
Common specification
--------------------
SoC: MediaTek MT7621AT (880 MHz, 2 cores)
Switch: MediaTek MT7530 (via SoC MT7621AT)
Wireless: 2.4 GHz, MT7602EN, b/g/n, 2x2
Wireless: 5 GHz, MT7612EN, a/n/ac, 2x2
Ethernet: 5 ports - 5×GbE (WAN, LAN1-4)
Mini PCIe: via J2 on PCB, not soldered on the board
UART: J4 -> GND[], TX, VCC(3.3V), RX
BootLoader: U-Boot SerComm/Mediatek
Beeline SmartBox PRO specification
----------------------------------
RAM (Nanya NT5CB128M16FP): 256 MiB
NAND-Flash (ESMT F59L2G81A): 256 MiB
USB ports: 2xUSB2.0
LEDs: Status (white), WPS (blue), 2g (white), 5g (white) + 10 LED Ethernet
Buttons: 2 button (reset, wps), 1 switch button (ROUT<->REP)
Power: 12 VDC, 1.5 A
PCB Sticker: 970AWI0QW00N256SMT Ver. 1.0
CSN: SG15********
MAC LAN: 94:4A:0C:**:**:**
Manufacturer's code: 0AWI0500QW1
WiFire S1500.NBN specification
------------------------------
RAM (Nanya NT5CC64M16GP): 128 MiB
NAND-Flash (ESMT F59L1G81MA): 128 MiB
USB ports: 1xUSB2.0
LEDs: Status (white), WPS (white), 2g (white), 5g (white) + 10 LED Ethernet
Buttons: 2 button (RESET, WPS)
Power: 12 VDC, 1.0 A
PCB Sticker: 970BUC0RW00N128SMT Ver. 1.0
CSN: MH16********
MAC WAN: E0:60:66:**:**:**
Manufacturer's code: 0BUC0500RW1
MAC address table (PRO)
-----------------------
use address source
LAN *:23 factory 0x1000 (label)
WAN *:24 factory $label +1
2g *:23 factory $label
5g *:25 factory $label +2
MAC addresses (NBN)
-------------------
use address source
LAN *:0e factory 0x1000
WAN *:0f LAN +1 (label)
2g *:0f LAN +1
5g *:10 LAN +2
OEM easy installation
---------------------
1. Remove all dots from the factory image filename (except the dot
before file extension)
2. Upload and update the firmware via the original web interface
3. Two options are possible after the reboot:
a. OpenWrt - that's OK, the mission accomplished
b. Stock firmware - install Stock firmware (to switch booflag from
Sercomm0 to Sercomm1) and then OpenWrt factory image.
Return to Stock
---------------
1. Change the bootflag to Sercomm1 in OpenWrt CLI and then reboot:
printf 1 | dd bs=1 seek=7 count=1 of=/dev/mtdblock2
reboot
2. Install stock firmware via the web OEM firmware interface
Recovery
--------
Use sercomm-recovery tool.
Link: https://github.com/danitool/sercomm-recovery
Tested-by: Pavel Ivanov <pi635v@gmail.com>
Tested-by: Denis Myshaev <denis.myshaev@gmail.com>
Tested-by: Oleg Galeev <olegingaleev@gmail.com>
Tested-By: Ivan Pavlov <AuthorReflex@gmail.com>
Co-authored-by: Maximilian Weinmann <x1@disroot.org>
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
(cherry picked from commit 2d6784a033a994043759fa3b94c48afd5df81f88)
Diffstat (limited to 'target/linux/ramips/image')
-rw-r--r-- | target/linux/ramips/image/common-sercomm.mk | 39 | ||||
-rw-r--r-- | target/linux/ramips/image/mt7621.mk | 35 |
2 files changed, 71 insertions, 3 deletions
diff --git a/target/linux/ramips/image/common-sercomm.mk b/target/linux/ramips/image/common-sercomm.mk index b743df4408..4060da0923 100644 --- a/target/linux/ramips/image/common-sercomm.mk +++ b/target/linux/ramips/image/common-sercomm.mk @@ -1,6 +1,12 @@ DEVICE_VARS += SERCOMM_KERNEL_OFFSET SERCOMM_ROOTFS_OFFSET DEVICE_VARS += SERCOMM_KERNEL2_OFFSET SERCOMM_ROOTFS2_OFFSET +define Build/sercomm-append-tail + printf 16 | dd seek=$$((0x90)) of=$@ bs=1 conv=notrunc 2>/dev/null + printf 11223344556677889900112233445566 | \ + sed 's/../\\x&/g' | xargs -d . printf >> $@ +endef + define Build/sercomm-crypto $(TOPDIR)/scripts/sercomm-crypto.py \ --input-file $@ \ @@ -32,6 +38,10 @@ define Build/sercomm-factory-cqr mv $@.fhdr $@ endef +define Build/sercomm-fix-buc-pid + printf 1 | dd seek=$$((0x13)) of=$@ bs=1 conv=notrunc 2>/dev/null +endef + define Build/sercomm-kernel $(TOPDIR)/scripts/sercomm-kernel-header.py \ --kernel-image $@ \ @@ -102,19 +112,28 @@ define Build/sercomm-prepend-tagged-kernel mv $(IMAGE_KERNEL).tagged $@ endef +define Build/sercomm-reset-slot1-chksum + printf "\xff\xff\xff\xff" | \ + dd of=$@ seek=$$((0x118)) bs=1 conv=notrunc 2>/dev/null +endef + define Device/sercomm $(Device/nand) LOADER_TYPE := bin + IMAGES += factory.img +endef + +define Device/sercomm_cxx_dxx + $(Device/sercomm) KERNEL_SIZE := 6144k KERNEL_LOADADDR := 0x81001000 LZMA_TEXT_START := 0x82800000 SERCOMM_KERNEL_OFFSET := 0x400100 SERCOMM_ROOTFS_OFFSET := 0x1000000 - IMAGES += factory.img endef define Device/sercomm_cxx - $(Device/sercomm) + $(Device/sercomm_cxx_dxx) SERCOMM_KERNEL2_OFFSET := 0xa00100 SERCOMM_ROOTFS2_OFFSET := 0x3000000 KERNEL := kernel-bin | append-dtb | lzma | loader-kernel | lzma -a0 | \ @@ -126,7 +145,7 @@ define Device/sercomm_cxx endef define Device/sercomm_dxx - $(Device/sercomm) + $(Device/sercomm_cxx_dxx) KERNEL := kernel-bin | append-dtb | lzma | loader-kernel | lzma -a0 | \ uImage lzma | sercomm-kernel KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | loader-kernel | \ @@ -136,3 +155,17 @@ define Device/sercomm_dxx sercomm-part-tag rootfs | sercomm-prepend-tagged-kernel kernel | \ gzip | sercomm-payload | sercomm-crypto endef + +define Device/sercomm_s1500 + $(Device/sercomm) + SERCOMM_KERNEL_OFFSET := 0x1700100 + SERCOMM_ROOTFS_OFFSET := 0x1f00000 + SERCOMM_KERNEL2_OFFSET := 0x1b00100 + KERNEL := kernel-bin | append-dtb | lzma | loader-kernel | lzma -a0 | \ + uImage lzma + KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | loader-kernel | \ + lzma -a0 | uImage lzma + IMAGE/sysupgrade.bin := append-kernel | sercomm-kernel | \ + sysupgrade-tar kernel=$$$$@ | append-metadata + DEVICE_PACKAGES := kmod-mt76x2 kmod-usb3 +endef diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk index a5b69839a7..e426eac5b6 100644 --- a/target/linux/ramips/image/mt7621.mk +++ b/target/linux/ramips/image/mt7621.mk @@ -398,6 +398,23 @@ define Device/beeline_smartbox-giga endef TARGET_DEVICES += beeline_smartbox-giga +define Device/beeline_smartbox-pro + $(Device/sercomm_s1500) + DEVICE_VENDOR := Beeline + DEVICE_MODEL := SmartBox PRO + DEVICE_ALT0_VENDOR := Sercomm + DEVICE_ALT0_MODEL := S1500 AWI + IMAGE_SIZE := 34816k + IMAGE/factory.img := append-kernel | sercomm-kernel-factory | \ + sercomm-reset-slot1-chksum | append-ubi | check-size | \ + sercomm-factory-cqr | sercomm-append-tail | sercomm-mkhash + SERCOMM_HWID := AWI + SERCOMM_HWVER := 10000 + SERCOMM_ROOTFS2_OFFSET := 0x3d00000 + SERCOMM_SWVER := 2020 +endef +TARGET_DEVICES += beeline_smartbox-pro + define Device/beeline_smartbox-turbo $(Device/sercomm_dxx) IMAGE_SIZE := 32768k @@ -2427,6 +2444,24 @@ define Device/wevo_w2914ns-v2 endef TARGET_DEVICES += wevo_w2914ns-v2 +define Device/wifire_s1500-nbn + $(Device/sercomm_s1500) + DEVICE_VENDOR := WiFire + DEVICE_MODEL := S1500.NBN + DEVICE_ALT0_VENDOR := Sercomm + DEVICE_ALT0_MODEL := S1500 BUC + IMAGE_SIZE := 51200k + IMAGE/factory.img := append-kernel | sercomm-kernel-factory | \ + sercomm-reset-slot1-chksum | append-ubi | check-size | \ + sercomm-factory-cqr | sercomm-fix-buc-pid | sercomm-mkhash | \ + sercomm-crypto + SERCOMM_HWID := BUC + SERCOMM_HWVER := 10000 + SERCOMM_ROOTFS2_OFFSET := 0x4d00000 + SERCOMM_SWVER := 2015 +endef +TARGET_DEVICES += wifire_s1500-nbn + define Device/winstars_ws-wn583a6 $(Device/dsa-migration) $(Device/uimage-lzma-loader) |