[openwrt/openwrt] ramips: add support for SIM SIMAX1800T and Haier HAR-20S2U1
LEDE Commits
lede-commits at lists.infradead.org
Sat Nov 5 15:06:32 PDT 2022
hauke pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/f7f9203854c7173a91655683aa7ad2a0af43f518
commit f7f9203854c7173a91655683aa7ad2a0af43f518
Author: Shiji Yang <yangshiji66 at qq.com>
AuthorDate: Fri Sep 16 01:10:52 2022 +0800
ramips: add support for SIM SIMAX1800T and Haier HAR-20S2U1
SIM AX18T and Haier HAR-20S2U1 Wi-Fi6 AX1800 routers are designed based
on Tenbay WR1800K. They have the same hardware circuits and u-boot.
SIM AX18T has three carrier customized models: SIMAX1800M (China Mobile),
SIMAX1800T (China Telecom) and SIMAX1800U (China Unicom). All of these
models run the same firmware.
Specifications:
SOC: MT7621 + MT7905 + MT7975
ROM: 128 MiB
RAM: 256 MiB
LED: status *3 R/G/B
Button: reset *1 + wps/mesh *1
Ethernet: lan *3 + wan *1 (10/100/1000Mbps)
TTL Baudrate: 115200
TFTP Server: 192.168.1.254
TFTP IP: 192.168.1.28 or 192.168.1.160 (when envs is broken)
MAC Address:
use address source
label 30:xx:xx:xx:xx:62 wan
lan 30:xx:xx:xx:xx:65 factory.0x8004
wan 30:xx:xx:xx:xx:62 factory.0x8004 -3
wlan2g 30:xx:xx:xx:xx:64 factory.0x0004
wlan5g 32:xx:xx:xx:xx:64 factory.0x0004 set 7th bit
TFTP Installation (initramfs image only & recommend):
1. Set local tftp server IP: 192.168.1.254 and NetMask: 255.255.255.0
2. Rename initramfs-kernel.bin to "factory.bin" and put it in the root
directory of the tftp server. (tftpd64 is a good choice for Windows)
3. Start the TFTP server, plug in the power supply, and wait for the
system to boot.
4. Backup "firmware" partition and rename it to "firmware.bin", we need
it to back to stock firmware.
5. Use "fw_printenv" command to list envs.
If "firmware_select=2" is observed then set u-boot enviroment:
/# fw_setenv firmware_select 1
6. Apply sysupgrade.bin in OpenWrt LuCI.
Web UI Installation:
1. Apply update by uploading initramfs-factory.bin to the web UI.
2. Use "fw_printenv" command to list envs.
If "firmware_select=2" is observed then set u-boot enviroment:
/# fw_setenv firmware_select 1
3. Apply squashfs-sysupgrade.bin in OpenWrt LuCI.
Recovery to stock firmware:
a. Upload "firmware.bin" to OpenWrt /tmp, then execute:
/# mtd -r write /tmp/firmware.bin firmware
b. We can also write factory image "UploadBrush-bin.img" to firmware
partition to recovery. Upload image file to /tmp, then execute:
/# mtd erase firmware
/# mtd -r write /tmp/UploadBrush-bin.img firmware
How to extract stock firmware image:
Download stock firmware, then use openssl:
openssl aes-256-cbc -d -salt -in [Downloaded_Firmware] \
-out "firmware.tar.tgz" -k QiLunSmartWL
Signed-off-by: Chen Minqiang <ptpt52 at gmail.com>
Signed-off-by: Shiji Yang <yangshiji66 at qq.com>
---
package/boot/uboot-envtools/files/ramips | 5 +
.../linux/ramips/dts/mt7621_haier-sim_wr1800k.dtsi | 186 +++++++++++++++++++++
.../linux/ramips/dts/mt7621_haier_har-20s2u1.dts | 8 +
target/linux/ramips/dts/mt7621_sim_simax1800t.dts | 8 +
target/linux/ramips/image/mt7621.mk | 42 +++++
.../mt7621/base-files/etc/board.d/02_network | 2 +
.../etc/hotplug.d/ieee80211/10_fix_wifi_mac | 10 +-
.../mt7621/base-files/lib/upgrade/platform.sh | 2 +
8 files changed, 259 insertions(+), 4 deletions(-)
diff --git a/package/boot/uboot-envtools/files/ramips b/package/boot/uboot-envtools/files/ramips
index 194f6561d4..70d70dfed0 100644
--- a/package/boot/uboot-envtools/files/ramips
+++ b/package/boot/uboot-envtools/files/ramips
@@ -56,6 +56,11 @@ linksys,e7350|\
netgear,wax202)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000"
;;
+haier,har-20s2u1|\
+sim,simax1800t)
+ ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000"
+ ubootenv_add_uci_sys_config "/dev/mtd1" "0x40000" "0x40000" "0x20000"
+ ;;
hootoo,ht-tm05|\
ravpower,rp-wd03)
idx="$(find_mtd_index u-boot-env)"
diff --git a/target/linux/ramips/dts/mt7621_haier-sim_wr1800k.dtsi b/target/linux/ramips/dts/mt7621_haier-sim_wr1800k.dtsi
new file mode 100644
index 0000000000..32d42fe813
--- /dev/null
+++ b/target/linux/ramips/dts/mt7621_haier-sim_wr1800k.dtsi
@@ -0,0 +1,186 @@
+// 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>
+
+/ {
+ aliases {
+ label-mac-device = &gmac1;
+ led-boot = &led_status_red;
+ led-failsafe = &led_status_blue;
+ led-running = &led_status_green;
+ led-upgrade = &led_status_blue;
+ };
+
+ chosen {
+ bootargs-override = "console=ttyS0,115200";
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ reset {
+ label = "reset";
+ gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led_status_blue: led-0 {
+ label = "blue:status";
+ color = <LED_COLOR_ID_BLUE>;
+ function = LED_FUNCTION_STATUS;
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+
+ led_status_green: led-1 {
+ label = "green:status";
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_STATUS;
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+
+ led_status_red: led-2 {
+ label = "red:status";
+ color = <LED_COLOR_ID_RED>;
+ function = LED_FUNCTION_STATUS;
+ gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&gmac0 {
+ nvmem-cells = <&macaddr_factory_8004>;
+ nvmem-cell-names = "mac-address";
+};
+
+&gmac1 {
+ status = "okay";
+ label = "wan";
+ phy-handle = <ðphy4>;
+
+ nvmem-cells = <&macaddr_factory_8004>;
+ nvmem-cell-names = "mac-address";
+ mac-address-increment = <(-3)>;
+};
+
+&mdio {
+ ethphy4: ethernet-phy at 4 {
+ reg = <4>;
+ };
+};
+
+&nand {
+ status = "okay";
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition at 0 {
+ label = "u-boot";
+ reg = <0x0000000 0x0080000>;
+ read-only;
+ };
+
+ partition at 80000 {
+ label = "u-boot-env";
+ reg = <0x0080000 0x0080000>;
+ };
+
+ factory: partition at 100000 {
+ label = "factory";
+ reg = <0x0100000 0x0080000>;
+ read-only;
+
+ compatible = "nvmem-cells";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ macaddr_factory_8004: macaddr at 8004 {
+ reg = <0x8004 0x6>;
+ };
+ };
+
+ partition at 180000 {
+ label = "firmware";
+ reg = <0x0180000 0x7a80000>;
+
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition at 0 {
+ label = "kernel";
+ reg = <0x0000000 0x0400000>;
+ };
+
+ partition at 400000 {
+ label = "ubi";
+ reg = <0x0400000 0x7680000>;
+ };
+ };
+
+ /* last 128KiB *32 is reserved for bad blocks management */
+ };
+};
+
+&pcie {
+ status = "okay";
+};
+
+&pcie1 {
+ wifi at 0,0 {
+ compatible = "mediatek,mt76";
+ reg = <0x0000 0 0 0 0>;
+ mediatek,mtd-eeprom = <&factory 0x0>;
+ mediatek,disable-radar-background;
+ };
+};
+
+&pcie2 {
+ status = "disabled";
+};
+
+&state_default {
+ gpio {
+ groups = "i2c", "uart3", "wdt";
+ function = "gpio";
+ };
+};
+
+&switch0 {
+ ports {
+ port at 1 {
+ status = "okay";
+ label = "lan3";
+ };
+
+ port at 2 {
+ status = "okay";
+ label = "lan2";
+ };
+
+ port at 3 {
+ status = "okay";
+ label = "lan1";
+ };
+ };
+};
+
+&xhci {
+ status = "disabled";
+};
diff --git a/target/linux/ramips/dts/mt7621_haier_har-20s2u1.dts b/target/linux/ramips/dts/mt7621_haier_har-20s2u1.dts
new file mode 100644
index 0000000000..dede7dbb20
--- /dev/null
+++ b/target/linux/ramips/dts/mt7621_haier_har-20s2u1.dts
@@ -0,0 +1,8 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "mt7621_haier-sim_wr1800k.dtsi"
+
+/ {
+ compatible = "haier,har-20s2u1", "mediatek,mt7621-soc";
+ model = "Haier HAR-20S2U1";
+};
diff --git a/target/linux/ramips/dts/mt7621_sim_simax1800t.dts b/target/linux/ramips/dts/mt7621_sim_simax1800t.dts
new file mode 100644
index 0000000000..3c5c9179d2
--- /dev/null
+++ b/target/linux/ramips/dts/mt7621_sim_simax1800t.dts
@@ -0,0 +1,8 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "mt7621_haier-sim_wr1800k.dtsi"
+
+/ {
+ compatible = "sim,simax1800t", "mediatek,mt7621-soc";
+ model = "SIM SIMAX1800T";
+};
diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index a819abd968..60f927eeed 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -37,6 +37,18 @@ define Build/h3c-blank-header
mv $@.blank $@
endef
+define Build/haier-sim_wr1800k-factory
+ -[ -e $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) ] && \
+ mkdir -p "$(1).tmp" && \
+ $(CP) $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) "$(1).tmp/UploadBrush-bin.img" && \
+ $(MKHASH) md5 "$(1).tmp/UploadBrush-bin.img" | head -c32 > "$(1).tmp/check_MD5.txt" && \
+ $(TAR) -czf $(1).tmp.tgz -C "$(1).tmp" UploadBrush-bin.img check_MD5.txt && \
+ $(STAGING_DIR_HOST)/bin/openssl aes-256-cbc -e -salt -in $(1).tmp.tgz -out "$(1)" -k QiLunSmartWL && \
+ printf %32s "$(DEVICE_MODEL)" >> "$(1)" && \
+ rm -rf "$(1).tmp" $(1).tmp.tgz && \
+ $(CP) $(1) $(BIN_DIR)/
+endef
+
define Build/iodata-factory
$(eval fw_size=$(word 1,$(1)))
$(eval fw_type=$(word 2,$(1)))
@@ -869,6 +881,29 @@ define Device/h3c_tx1806
endef
TARGET_DEVICES += h3c_tx1806
+define Device/haier-sim_wr1800k
+ $(Device/dsa-migration)
+ BLOCKSIZE := 128k
+ PAGESIZE := 2048
+ KERNEL_SIZE := 4096k
+ IMAGE_SIZE := 125440k
+ UBINIZE_OPTS := -E 5
+ KERNEL_LOADADDR := 0x82000000
+ KERNEL := kernel-bin | relocate-kernel 0x80001000 | lzma | \
+ fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb
+ KERNEL_INITRAMFS := $$(KERNEL) | \
+ haier-sim_wr1800k-factory $(KDIR)/tmp/$$(KERNEL_INITRAMFS_PREFIX)-factory.bin
+ IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+ DEVICE_PACKAGES := kmod-mt7915e uboot-envtools
+endef
+
+define Device/haier_har-20s2u1
+ $(Device/haier-sim_wr1800k)
+ DEVICE_VENDOR := Haier
+ DEVICE_MODEL := HAR-20S2U1
+endef
+TARGET_DEVICES += haier_har-20s2u1
+
define Device/hilink_hlk-7621a-evb
$(Device/dsa-migration)
$(Device/uimage-lzma-loader)
@@ -1729,6 +1764,13 @@ define Device/sercomm_na502s
endef
TARGET_DEVICES += sercomm_na502s
+define Device/sim_simax1800t
+ $(Device/haier-sim_wr1800k)
+ DEVICE_VENDOR := SIM
+ DEVICE_MODEL := SIMAX1800T
+endef
+TARGET_DEVICES += sim_simax1800t
+
define Device/snr_snr-cpe-me2-lite
$(Device/dsa-migration)
$(Device/uimage-lzma-loader)
diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network
index 39af3af219..14250aa150 100644
--- a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network
@@ -35,8 +35,10 @@ ramips_setup_interfaces()
h3c,tx1800-plus|\
h3c,tx1801-plus|\
h3c,tx1806|\
+ haier,har-20s2u1|\
hiwifi,hc5962|\
netgear,wax202|\
+ sim,simax1800t|\
xiaomi,mi-router-3-pro|\
xiaomi,mi-router-ac2100|\
xiaomi,mi-router-cr6606|\
diff --git a/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac b/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
index ff3ee281b2..69ecaefd27 100644
--- a/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
+++ b/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
@@ -45,6 +45,12 @@ case "$board" in
[ "$PHYNBR" = "0" ] && echo -n ${addr:0:9}'1'${addr:10:7} > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && echo -n ${addr:0:9}'7'${addr:10:7} > /sys${DEVPATH}/macaddress
;;
+ haier,har-20s2u1|\
+ jcg,y2|\
+ sim,simax1800t)
+ [ "$PHYNBR" = "1" ] && \
+ macaddr_setbit_la "$(mtd_get_mac_binary factory 0x4)" > /sys${DEVPATH}/macaddress
+ ;;
hiwifi,hc5962)
label_mac=$(mtd_get_mac_ascii bdinfo "Vfac_mac ")
[ "$PHYNBR" = "0" ] && [ -n "$label_mac" ] && \
@@ -69,10 +75,6 @@ case "$board" in
[ "$PHYNBR" = "1" ] && \
macaddr_setbit_la "$(mtd_get_mac_binary Factory 0x4)" > /sys${DEVPATH}/macaddress
;;
- jcg,y2)
- [ "$PHYNBR" = "1" ] && \
- macaddr_setbit_la "$(mtd_get_mac_binary factory 0x4)" > /sys${DEVPATH}/macaddress
- ;;
linksys,e5600|\
linksys,ea6350-v4|\
linksys,ea7300-v1|\
diff --git a/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh b/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh
index 05907536fe..ebe4c638be 100755
--- a/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh
@@ -65,6 +65,7 @@ platform_do_upgrade() {
h3c,tx1800-plus|\
h3c,tx1801-plus|\
h3c,tx1806|\
+ haier,har-20s2u1|\
hiwifi,hc5962|\
iptime,a3004t|\
iptime,ax2004m|\
@@ -95,6 +96,7 @@ platform_do_upgrade() {
raisecom,msg1500-x-00|\
sercomm,na502|\
sercomm,na502s|\
+ sim,simax1800t|\
xiaomi,mi-router-3g|\
xiaomi,mi-router-3-pro|\
xiaomi,mi-router-4|\
More information about the lede-commits
mailing list