[openwrt/openwrt] ath79: mikrotik: check RouterBOOT version matching sysupgrade image

LEDE Commits lede-commits at lists.infradead.org
Mon Sep 29 10:49:36 PDT 2025


dangole pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/318f07c231552f32542cb2dcb22aac282f0cdb52

commit 318f07c231552f32542cb2dcb22aac282f0cdb52
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Tue Sep 23 17:44:35 2025 +0100

    ath79: mikrotik: check RouterBOOT version matching sysupgrade image
    
    Check if the uploaded image matches the version of RouterBOOT before
    proceeding with sysupgrade on MikroTik devices with NOR flash.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 .../mikrotik/base-files/lib/upgrade/platform.sh    | 41 ++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh b/target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh
index 9ad778ad17..1ce42f7b79 100644
--- a/target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh
@@ -3,7 +3,48 @@
 PART_NAME=firmware
 
 REQUIRE_IMAGE_METADATA=1
+
+platform_check_image_mikrotik_nor() {
+	local bootfwver bootfwmajor
+	local bootentry="$(dd bs=10 skip=1 count=1 if="$1" 2>/dev/null | xargs -0)"
+
+	read -r bootfwver < /sys/firmware/mikrotik/hard_config/booter_version
+	bootfwmajor="${bootfwver%%.*}"
+
+	if [ "$((bootfwmajor))" = 0 ]; then
+		v "invalid RouterBOOT version"
+		return 1
+	elif [ "$bootfwmajor" -le 6 ] && [ "$bootentry" != "kernel" ]; then
+		v "RouterBOOT 6 and earlier requires ELF-in-YAFFS image"
+		return 1
+	elif [ "$bootfwmajor" -ge 7 ] && [ "$bootentry" != "bootimage" ]; then
+		v "RouterBOOT 7 and later requires NPK-in-YAFFS image"
+		return 1
+	fi
+
+	return 0
+}
+
 platform_check_image() {
+	case "$board" in
+	mikrotik,routerboard-2011uias-2hnd|\
+	mikrotik,routerboard-493g|\
+	mikrotik,routerboard-911g-5hpacd|\
+	mikrotik,routerboard-911g-xhpnd|\
+	mikrotik,routerboard-912uag-2hpnd|\
+	mikrotik,routerboard-921gs-5hpacd-15s|\
+	mikrotik,routerboard-922uags-5hpacd|\
+	mikrotik,routerboard-951g-2hnd|\
+	mikrotik,routerboard-951ui-2hnd|\
+	mikrotik,routerboard-sxt-5nd-r2)
+		return 0
+		;;
+	*)
+		platform_check_image_mikrotik_nor "$1"
+		return $?
+		;;
+	esac
+
 	return 0
 }
 




More information about the lede-commits mailing list