ath79: mikrotik: erase firmware on SPI NOR before install
authorThibaut VARÈNE <hacks@slashdirt.org>
Mon, 17 Aug 2020 10:44:13 +0000 (12:44 +0200)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Tue, 18 Aug 2020 10:24:12 +0000 (12:24 +0200)
On Mikrotik SPI NOR devices, the firmware partition must be erased when
flashing from stock firmware, otherwise leftover bits (in particular a
kernel signature) can trigger a boot loop.

When booted from initramfs (the only way to install OpenWRT on these
devices), this patch unconditionally erases the firmware partition in
the do_upgrade() stage for all supported SPI NOR devices.

This is forward-ported from ed49d0876 and 20452a8db

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh

index d79bd03af54f114827c9d424f6306c277e644dd5..5ee549236983495c1f9c9db9ed3b002a990ec1ed 100644 (file)
@@ -38,6 +38,9 @@ platform_do_upgrade() {
                platform_do_upgrade_mikrotik_nand "$1"
                ;;
        *)
+               # NOR devices: erase firmware if booted from initramfs
+               [ -z "$(rootfs_type)" ] && mtd erase firmware
+
                default_do_upgrade "$1"
                ;;
        esac