ath79: get rid of BOARD_NAME for Mikrotik RouterBOARD
authorAdrian Schmutzler <freifunk@adrianschmutzler.de>
Wed, 26 Feb 2020 14:53:30 +0000 (15:53 +0100)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Tue, 17 Mar 2020 11:05:45 +0000 (12:05 +0100)
So far, specifying "BOARD_NAME := routerboard" is required by the
upgrade code of Mikrotik NAND devices, as "sysupgrade-routerboard"
is hardcoded in platform_do_upgrade_mikrotik_nand().

This patch replaces the latter with a grep for the name like it
is already done in nand_upgrade_tar() in /lib/upgrade/nand.sh.

By that, BOARD_NAME is obsolete now for this device.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
target/linux/ath79/image/mikrotik.mk
target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh

index a6863dc13096ac3436a828295cf9b73d080bae0b..a89dc8c1704a96bdfb258ff104abc10f421e80ef 100644 (file)
@@ -4,7 +4,6 @@ define Device/mikrotik_routerboard-922uags-5hpacd
   $(Device/mikrotik)
   SOC := qca9558
   DEVICE_MODEL := RouterBOARD 922UAGS-5HPacD
-  BOARD_NAME := routerboard
   IMAGE/sysupgrade.bin = append-kernel | kernel2minor -s 2048 -e -c | \
        sysupgrade-tar kernel=$$$$@ | append-metadata
   DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct \
index a5686895365287bab262ca583d262b956dc551c4..d2e43d404f9b794ed28f0b43ad830b8a6eff8d98 100644 (file)
@@ -12,11 +12,17 @@ RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock'
 
 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
+
        mtd erase kernel
-       tar xf "$1" sysupgrade-routerboard/kernel -O | nandwrite -o "$fw_mtd" -
+       tar xf "$1" ${board_dir}/kernel -O | nandwrite -o "$fw_mtd" -
 
        nand_do_upgrade "$1"
 }