[PATCH 1/4] mvebu: sysupgrade: drop unnecessary UBI to UBI logic

Bjørn Mork bjorn at mork.no
Sat Mar 20 10:48:24 GMT 2021


The recent changes to the maximum kernel size for Mamba and Venom
highlighted the fact that the old Mamba kernel size has been
hardcoded in linksys_get_root_magic() even for devices with
a different kernel/rootfs split.

The purpose of this code seems to be to avoid issues caused
by partially overwriting an existing UBI partition, where some
of the erase counters would be reset but not the unmodified
ones.  This problem has been solved in a more generic way by
the UBI EOF marker. This ensures that any old PEBs after the
marker are properly initialized.  It is therefore unnecessary
to erase the whole partition before flashing a new OpenWrt
factory image.

Signed-off-by: Bjørn Mork <bjorn at mork.no>
---
 .../base-files/lib/upgrade/linksys.sh         | 19 +------------------
 1 file changed, 1 insertion(+), 18 deletions(-)

diff --git a/target/linux/mvebu/cortexa9/base-files/lib/upgrade/linksys.sh b/target/linux/mvebu/cortexa9/base-files/lib/upgrade/linksys.sh
index c5da471d76f1..aaa32eb4ea78 100644
--- a/target/linux/mvebu/cortexa9/base-files/lib/upgrade/linksys.sh
+++ b/target/linux/mvebu/cortexa9/base-files/lib/upgrade/linksys.sh
@@ -44,10 +44,6 @@ linksys_get_target_firmware() {
 	esac
 }
 
-linksys_get_root_magic() {
-	(get_image "$@" | dd skip=786432 bs=4 count=1 | hexdump -v -n 4 -e '1/1 "%02x"') 2>/dev/null
-}
-
 platform_do_upgrade_linksys() {
 	local magic_long="$(get_magic_long "$1")"
 
@@ -75,20 +71,7 @@ platform_do_upgrade_linksys() {
 		nand_upgrade_tar "$1"
 	}
 	[ "$magic_long" = "27051956" -o "$magic_long" = "0000a0e1" ] && {
-		# check firmwares' rootfs types
-		local target_mtd=$(find_mtd_part $part_label)
-		local oldroot="$(linksys_get_root_magic $target_mtd)"
-		local newroot="$(linksys_get_root_magic "$1")"
-
-		if [ "$newroot" = "55424923" -a "$oldroot" = "55424923" ]
-		# we're upgrading from a firmware with UBI to one with UBI
-		then
-			# erase everything to be safe
-			mtd erase $part_label
-			get_image "$1" | mtd -n write - $part_label
-		else
-			get_image "$1" | mtd write - $part_label
-		fi
+		get_image "$1" | mtd write - $part_label
 	}
 }
 
-- 
2.20.1




More information about the openwrt-devel mailing list