[openwrt/openwrt] base-files: split ubi attaching out of nand_upgrade_prepare_ubi

LEDE Commits lede-commits at lists.infradead.org
Fri Dec 16 23:43:53 PST 2022


981213 pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/c48e511fef37c42820c02119dab68c2b6cde3374

commit c48e511fef37c42820c02119dab68c2b6cde3374
Author: Chuanhong Guo <gch981213 at gmail.com>
AuthorDate: Sun Dec 11 18:25:42 2022 +0800

    base-files: split ubi attaching out of nand_upgrade_prepare_ubi
    
    split ubi reformat/attach into nand_attach_ubi in preparation
    for reusing this code in other functions.
    
    Signed-off-by: Chuanhong Guo <gch981213 at gmail.com>
---
 package/base-files/files/lib/upgrade/nand.sh | 65 ++++++++++++++++------------
 1 file changed, 38 insertions(+), 27 deletions(-)

diff --git a/package/base-files/files/lib/upgrade/nand.sh b/package/base-files/files/lib/upgrade/nand.sh
index 1019b9927c..258483fbf4 100644
--- a/package/base-files/files/lib/upgrade/nand.sh
+++ b/package/base-files/files/lib/upgrade/nand.sh
@@ -146,6 +146,42 @@ nand_remove_ubiblock() {
 	fi
 }
 
+nand_attach_ubi() {
+	local ubipart="$1"
+	local has_env="${2:-0}"
+
+	local mtdnum="$( find_mtd_index "$ubipart" )"
+	if [ ! "$mtdnum" ]; then
+		>&2 echo "cannot find ubi mtd partition $ubipart"
+		return 1
+	fi
+
+	local ubidev="$( nand_find_ubi "$ubipart" )"
+	if [ ! "$ubidev" ]; then
+		>&2 ubiattach -m "$mtdnum"
+		ubidev="$( nand_find_ubi "$ubipart" )"
+
+		if [ ! "$ubidev" ]; then
+			>&2 ubiformat /dev/mtd$mtdnum -y
+			>&2 ubiattach -m "$mtdnum"
+			ubidev="$( nand_find_ubi "$ubipart" )"
+
+			if [ ! "$ubidev" ]; then
+				>&2 echo "cannot attach ubi mtd partition $ubipart"
+				return 1
+			fi
+
+			if [ "$has_env" -gt 0 ]; then
+				>&2 ubimkvol /dev/$ubidev -n 0 -N ubootenv -s 1MiB
+				>&2 ubimkvol /dev/$ubidev -n 1 -N ubootenv2 -s 1MiB
+			fi
+		fi
+	fi
+
+	echo "$ubidev"
+	return 0
+}
+
 nand_detach_ubi() {
 	local ubipart="$1"
 
@@ -180,33 +216,8 @@ nand_upgrade_prepare_ubi() {
 
 	[ -n "$rootfs_length" -o -n "$kernel_length" ] || return 1
 
-	local mtdnum="$( find_mtd_index "$CI_UBIPART" )"
-	if [ ! "$mtdnum" ]; then
-		echo "cannot find ubi mtd partition $CI_UBIPART"
-		return 1
-	fi
-
-	local ubidev="$( nand_find_ubi "$CI_UBIPART" )"
-	if [ ! "$ubidev" ]; then
-		ubiattach -m "$mtdnum"
-		ubidev="$( nand_find_ubi "$CI_UBIPART" )"
-
-		if [ ! "$ubidev" ]; then
-			ubiformat /dev/mtd$mtdnum -y
-			ubiattach -m "$mtdnum"
-			ubidev="$( nand_find_ubi "$CI_UBIPART" )"
-
-			if [ ! "$ubidev" ]; then
-				echo "cannot attach ubi mtd partition $CI_UBIPART"
-				return 1
-			fi
-
-			if [ "$has_env" -gt 0 ]; then
-				ubimkvol /dev/$ubidev -n 0 -N ubootenv -s 1MiB
-				ubimkvol /dev/$ubidev -n 1 -N ubootenv2 -s 1MiB
-			fi
-		fi
-	fi
+	local ubidev="$( nand_attach_ubi "$CI_UBIPART" "$has_env" )"
+	[ -n "$ubidev" ] || return 1
 
 	local kern_ubivol="$( nand_find_volume $ubidev "$CI_KERNPART" )"
 	local root_ubivol="$( nand_find_volume $ubidev "$CI_ROOTPART" )"




More information about the lede-commits mailing list