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 <ha...@slashdirt.org>
---
 target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh | 2 ++
 1 file changed, 2 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 d79bd03af5..d7fac35708 100644
--- a/target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh
@@ -38,6 +38,8 @@ 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
-- 
2.21.1 (Apple Git-122.3)


_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to