From 2b035a22fc1ffb3a4271f321c3fa9e46371eae98 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn@mork.no>
Date: Sat, 23 Jan 2021 11:08:11 +0100
Subject: [PATCH] realtek: use vendor-specific magic for ZyXEL
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The stock firmware of the ZyXEL GS1900 series use a non-standard
u-image magic.  This is not enforced by the stock u-boot, which is
why we could boot images with the default magic.  The flash
management application of the stock firmware will however verify
the magic, and refuse any image with another value.

Convert to vendor-specific value to get flash management support
in stock firmware, including the ability to upgrade to OpenWrt
directly from stock web UI.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: maurerr <mariusd84@gmail.com>
---
 target/linux/realtek/dts/rtl8380_zyxel_gs1900.dtsi | 3 ++-
 target/linux/realtek/image/Makefile                | 3 +++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/target/linux/realtek/dts/rtl8380_zyxel_gs1900.dtsi b/target/linux/realtek/dts/rtl8380_zyxel_gs1900.dtsi
index 5f06339d13b..c4441ec30ee 100644
--- a/target/linux/realtek/dts/rtl8380_zyxel_gs1900.dtsi
+++ b/target/linux/realtek/dts/rtl8380_zyxel_gs1900.dtsi
@@ -92,7 +92,8 @@
 			partition@b260000 {
 				label = "firmware";
 				reg = <0x260000 0x6d0000>;
-				compatible = "denx,uimage";
+				compatible = "openwrt,uimage", "denx,uimage";
+				openwrt,ih-magic = <0x83800000>;
 			};
 			partition@930000 {
 				label = "runtime2";
diff --git a/target/linux/realtek/image/Makefile b/target/linux/realtek/image/Makefile
index 87c616c3f20..c05c504ec40 100644
--- a/target/linux/realtek/image/Makefile
+++ b/target/linux/realtek/image/Makefile
@@ -69,6 +69,7 @@ define Device/zyxel_gs1900-10hp
   IMAGE_SIZE := 6976k
   DEVICE_VENDOR := ZyXEL
   DEVICE_MODEL := GS1900-10HP
+  UIMAGE_MAGIC := 0x83800000
 endef
 TARGET_DEVICES += zyxel_gs1900-10hp
 
@@ -79,6 +80,7 @@ define Device/zyxel_gs1900-8hp-v1
   DEVICE_MODEL := GS1900-8HP
   DEVICE_VARIANT := v1
   DEVICE_PACKAGES += lua-rs232
+  UIMAGE_MAGIC := 0x83800000
 endef
 TARGET_DEVICES += zyxel_gs1900-8hp-v1
 
@@ -89,6 +91,7 @@ define Device/zyxel_gs1900-8hp-v2
   DEVICE_MODEL := GS1900-8HP
   DEVICE_VARIANT := v2
   DEVICE_PACKAGES += lua-rs232
+  UIMAGE_MAGIC := 0x83800000
 endef
 TARGET_DEVICES += zyxel_gs1900-8hp-v2