1
0
Fork 0
forked from mirror/openwrt
openwrt/target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh
Koen Vandeputte b1299c2fcf ath79: fix broken MikroTik upgrade
Fix a regression introduced by a recent commit.
It looks like a copy/paste error.

Add the missing line which defines the 'board' val
as it does not exist otherwise in the case check.

This fixes sysupgrade on ath79 MikroTik non-NOR boards.

Fixes: 318f07c231 ("ath79: mikrotik: check RouterBOOT version matching sysupgrade image")
Signed-off-by: Koen Vandeputte <koen.vandeputte@citymesh.com>
2025-10-14 12:25:56 +02:00

94 lines
2.2 KiB
Bash

# Copyright (C) 2011 OpenWrt.org
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() {
local board=$(board_name)
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
}
RAMFS_COPY_BIN='yafut'
platform_do_upgrade_mikrotik_nand() {
CI_KERNPART=none
local fw_mtd=$(find_mtd_part kernel)
fw_mtd="${fw_mtd/block/}"
[ -n "$fw_mtd" ] || return
local board_dir=$(tar tf "$1" | grep -m 1 '^sysupgrade-.*/$')
board_dir=${board_dir%/}
[ -n "$board_dir" ] || return
tar xf "$1" ${board_dir}/kernel -O | yafut -d "$fw_mtd" -w -i - -o kernel -m 0755 || return
nand_do_upgrade "$1"
}
platform_do_upgrade() {
local board=$(board_name)
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)
platform_do_upgrade_mikrotik_nand "$1"
;;
*)
# NOR devices: erase firmware if booted from initramfs
[ "$(rootfs_type)" = "tmpfs" ] && mtd erase firmware
default_do_upgrade "$1"
;;
esac
}