ar71xx: mikrotik: erase firmware partition on SPI NOR devices in pre_upgrade()
authorThibaut VARENE <hacks@slashdirt.org>
Thu, 23 Feb 2017 11:24:05 +0000 (12:24 +0100)
committerFelix Fietkau <nbd@nbd.name>
Sun, 26 Feb 2017 12:30:39 +0000 (13:30 +0100)
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 flash LEDE on these devices),
this patch unconditionally erases the firmware partition in the pre_upgrade()
stage for all supported SPI NOR devices.

Signed-off-by: Thibaut VARENE <hacks@slashdirt.org>
target/linux/ar71xx/base-files/lib/upgrade/platform.sh

index d48135a6d3b8251aecca6ad6215bf79c9effe132..576ff6c06ccbc018a158900047b1da8d0bc2d997 100755 (executable)
@@ -684,6 +684,14 @@ platform_pre_upgrade() {
        wndr4300)
                nand_do_upgrade "$1"
                ;;
+       rb-750-r2|\
+       rb-750up-r2|\
+       rb-941-2nd|\
+       rb-951ui-2nd|\
+       rb-mapl-2nd)
+               # erase firmware if booted from initramfs
+               [ -z "$(rootfs_type)" ] && mtd erase firmware
+               ;;
        mr18|\
        z1)
                merakinand_do_upgrade "$1"