aboutsummaryrefslogtreecommitdiffstats
path: root/package/base-files/files
diff options
context:
space:
mode:
authorChuanhong Guo <gch981213@gmail.com>2022-12-11 18:25:42 +0800
committerChen Minqiang <ptpt52@gmail.com>2022-12-17 14:08:58 +0800
commitc48e511fef37c42820c02119dab68c2b6cde3374 (patch)
tree47dcfd7049971a62cf007dba0dc50420d7537ddd /package/base-files/files
parentd7876daf6552a9f39bd5e0bf50b554e9406ec275 (diff)
downloadupstream-c48e511fef37c42820c02119dab68c2b6cde3374.tar.gz
upstream-c48e511fef37c42820c02119dab68c2b6cde3374.tar.bz2
upstream-c48e511fef37c42820c02119dab68c2b6cde3374.zip
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@gmail.com>
Diffstat (limited to 'package/base-files/files')
-rw-r--r--package/base-files/files/lib/upgrade/nand.sh65
1 files 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" )"