[openwrt/openwrt] mvebu: switch to generic sdcard upgrade method

LEDE Commits lede-commits at lists.infradead.org
Fri Aug 6 16:31:20 PDT 2021


stintel pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/b1bff5cb57fab31932ceaa0dea9509effe9f5800

commit b1bff5cb57fab31932ceaa0dea9509effe9f5800
Author: Stijn Tintel <stijn at linux-ipv6.be>
AuthorDate: Sat Aug 7 01:42:43 2021 +0300

    mvebu: switch to generic sdcard upgrade method
    
    Now that we have a generic sdcard upgrade method, which was copied from
    the mvebu platform method, we can switch mvebu to the generic method.
    
    Signed-off-by: Stijn Tintel <stijn at linux-ipv6.be>
---
 target/linux/mvebu/Makefile                        |  2 +-
 .../linux/mvebu/base-files/lib/upgrade/sdcard.sh   | 91 ----------------------
 .../cortexa53/base-files/lib/upgrade/platform.sh   |  6 +-
 .../cortexa72/base-files/lib/upgrade/platform.sh   |  6 +-
 .../cortexa9/base-files/lib/upgrade/platform.sh    |  6 +-
 5 files changed, 10 insertions(+), 101 deletions(-)

diff --git a/target/linux/mvebu/Makefile b/target/linux/mvebu/Makefile
index 1550309a92..6b992f8903 100644
--- a/target/linux/mvebu/Makefile
+++ b/target/linux/mvebu/Makefile
@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
 
 BOARD:=mvebu
 BOARDNAME:=Marvell EBU Armada
-FEATURES:=fpu usb pci pcie gpio nand squashfs ramdisk boot-part rootfs-part
+FEATURES:=fpu usb pci pcie gpio nand squashfs ramdisk boot-part rootfs-part sdcard
 SUBTARGETS:=cortexa9 cortexa53 cortexa72
 
 KERNEL_PATCHVER:=5.4
diff --git a/target/linux/mvebu/base-files/lib/upgrade/sdcard.sh b/target/linux/mvebu/base-files/lib/upgrade/sdcard.sh
deleted file mode 100644
index caa726b4d5..0000000000
--- a/target/linux/mvebu/base-files/lib/upgrade/sdcard.sh
+++ /dev/null
@@ -1,91 +0,0 @@
-platform_check_image_sdcard() {
-	local file="$1"
-	local diskdev partdev diff
-
-	export_bootdevice && export_partdevice diskdev 0 || {
-		v "Unable to determine upgrade device"
-	return 1
-	}
-
-	get_partitions "/dev/$diskdev" bootdisk
-
-	v "Extract boot sector from the image"
-	get_image_dd "$1" of=/tmp/image.bs count=1 bs=512b
-
-	get_partitions /tmp/image.bs image
-
-	#compare tables
-	diff="$(grep -F -x -v -f /tmp/partmap.bootdisk /tmp/partmap.image)"
-
-	rm -f /tmp/image.bs /tmp/partmap.bootdisk /tmp/partmap.image
-
-	if [ -n "$diff" ]; then
-		v "Partition layout has changed. Full image will be written."
-		ask_bool 0 "Abort" && exit 1
-		return 0
-	fi
-}
-
-platform_do_upgrade_sdcard() {
-	local board=$(board_name)
-	local diskdev partdev diff
-
-	export_bootdevice && export_partdevice diskdev 0 || {
-		v "Unable to determine upgrade device"
-	return 1
-	}
-
-	sync
-
-	if [ "$UPGRADE_OPT_SAVE_PARTITIONS" = "1" ]; then
-		get_partitions "/dev/$diskdev" bootdisk
-
-		v "Extract boot sector from the image"
-		get_image_dd "$1" of=/tmp/image.bs count=1 bs=512b
-
-		get_partitions /tmp/image.bs image
-
-		#compare tables
-		diff="$(grep -F -x -v -f /tmp/partmap.bootdisk /tmp/partmap.image)"
-	else
-		diff=1
-	fi
-
-	if [ -n "$diff" ]; then
-		get_image_dd "$1" of="/dev/$diskdev" bs=4096 conv=fsync
-
-		# Separate removal and addtion is necessary; otherwise, partition 1
-		# will be missing if it overlaps with the old partition 2
-		partx -d - "/dev/$diskdev"
-		partx -a - "/dev/$diskdev"
-	else
-		v "Writing bootloader to /dev/$diskdev"
-		get_image_dd "$1" of="$diskdev" bs=512 skip=1 seek=1 count=2048 conv=fsync
-		#iterate over each partition from the image and write it to the boot disk
-		while read part start size; do
-			if export_partdevice partdev $part; then
-				v "Writing image to /dev/$partdev..."
-				get_image_dd "$1" of="/dev/$partdev" ibs="512" obs=1M skip="$start" count="$size" conv=fsync
-			else
-				v "Unable to find partition $part device, skipped."
-			fi
-		done < /tmp/partmap.image
-
-		v "Writing new UUID to /dev/$diskdev..."
-		get_image_dd "$1" of="/dev/$diskdev" bs=1 skip=440 count=4 seek=440 conv=fsync
-	fi
-
-	sleep 1
-}
-
-platform_copy_config_sdcard() {
-	local partdev
-
-	if export_partdevice partdev 1; then
-		mkdir -p /boot
-		[ -f /boot/kernel.img ] || mount -o rw,noatime /dev/$partdev /boot
-		cp -af "$UPGRADE_BACKUP" "/boot/$BACKUP_FILE"
-		sync
-		umount /boot
-	fi
-}
diff --git a/target/linux/mvebu/cortexa53/base-files/lib/upgrade/platform.sh b/target/linux/mvebu/cortexa53/base-files/lib/upgrade/platform.sh
index d78f4e884a..26bb022415 100755
--- a/target/linux/mvebu/cortexa53/base-files/lib/upgrade/platform.sh
+++ b/target/linux/mvebu/cortexa53/base-files/lib/upgrade/platform.sh
@@ -15,7 +15,7 @@ platform_check_image() {
 	globalscale,espressobin-ultra|\
 	globalscale,espressobin-v7|\
 	globalscale,espressobin-v7-emmc)
-		platform_check_image_sdcard "$1"
+		sdcard_check_image "$1"
 		;;
 	*)
 		return 0
@@ -31,7 +31,7 @@ platform_do_upgrade() {
 	globalscale,espressobin-ultra|\
 	globalscale,espressobin-v7|\
 	globalscale,espressobin-v7-emmc)
-		platform_do_upgrade_sdcard "$1"
+		sdcard_do_upgrade "$1"
 		;;
 	methode,udpu)
 		platform_do_upgrade_uDPU "$1"
@@ -49,7 +49,7 @@ platform_copy_config() {
 	globalscale,espressobin-ultra|\
 	globalscale,espressobin-v7|\
 	globalscale,espressobin-v7-emmc)
-		platform_copy_config_sdcard
+		sdcard_copy_config
 		;;
 	methode,udpu)
 		platform_copy_config_uDPU
diff --git a/target/linux/mvebu/cortexa72/base-files/lib/upgrade/platform.sh b/target/linux/mvebu/cortexa72/base-files/lib/upgrade/platform.sh
index 04ea634097..1713f55b72 100755
--- a/target/linux/mvebu/cortexa72/base-files/lib/upgrade/platform.sh
+++ b/target/linux/mvebu/cortexa72/base-files/lib/upgrade/platform.sh
@@ -11,7 +11,7 @@ platform_check_image() {
 	case "$(board_name)" in
 	marvell,armada8040-mcbin-doubleshot|\
 	marvell,armada8040-mcbin-singleshot)
-		platform_check_image_sdcard "$1"
+		sdcard_check_image "$1"
 		;;
 	*)
 		return 0
@@ -23,7 +23,7 @@ platform_do_upgrade() {
 	case "$(board_name)" in
 	marvell,armada8040-mcbin-doubleshot|\
 	marvell,armada8040-mcbin-singleshot)
-		platform_do_upgrade_sdcard "$1"
+		sdcard_do_upgrade "$1"
 		;;
 	*)
 		default_do_upgrade "$1"
@@ -34,7 +34,7 @@ platform_copy_config() {
 	case "$(board_name)" in
 	marvell,armada8040-mcbin-doubleshot|\
 	marvell,armada8040-mcbin-singleshot)
-		platform_copy_config_sdcard
+		sdcard_copy_config
 		;;
 	esac
 }
diff --git a/target/linux/mvebu/cortexa9/base-files/lib/upgrade/platform.sh b/target/linux/mvebu/cortexa9/base-files/lib/upgrade/platform.sh
index 42289209d5..bf3961c437 100755
--- a/target/linux/mvebu/cortexa9/base-files/lib/upgrade/platform.sh
+++ b/target/linux/mvebu/cortexa9/base-files/lib/upgrade/platform.sh
@@ -13,7 +13,7 @@ platform_check_image() {
 	kobol,helios4|\
 	solidrun,clearfog-base-a1|\
 	solidrun,clearfog-pro-a1)
-		platform_check_image_sdcard "$1"
+		sdcard_check_image "$1"
 		;;
 	*)
 		return 0
@@ -30,7 +30,7 @@ platform_do_upgrade() {
 	kobol,helios4|\
 	solidrun,clearfog-base-a1|\
 	solidrun,clearfog-pro-a1)
-		platform_do_upgrade_sdcard "$1"
+		sdcard_do_upgrade "$1"
 		;;
 	linksys,wrt1200ac|\
 	linksys,wrt1900ac-v1|\
@@ -51,7 +51,7 @@ platform_copy_config() {
 	kobol,helios4|\
 	solidrun,clearfog-base-a1|\
 	solidrun,clearfog-pro-a1)
-		platform_copy_config_sdcard
+		sdcard_copy_config
 		;;
 	linksys,wrt1200ac|\
 	linksys,wrt1900ac-v1|\



More information about the lede-commits mailing list