Skip to content

Commit

Permalink
imx: decouple sdcard sysupgrade from Apalis boards
Browse files Browse the repository at this point in the history
Sysupgrade procedure for i.MX 6 Apalis boards is suitable for most other
i.MX boards booting from eMMC or SD card. Extract the common parts and
decouple the procedure from "apalis" board name in sysupgrade TAR
contents, so the procedure is reusable for i.MX 7 boards.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
  • Loading branch information
Leo-PL authored and pepe2k committed Jul 11, 2022
1 parent f987887 commit 70a9c75
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 56 deletions.
63 changes: 63 additions & 0 deletions target/linux/imx/base-files/lib/imx.sh
@@ -0,0 +1,63 @@
#
# Copyright (C) 2010-2013 OpenWrt.org
#

rootpartuuid() {
local cmdline=$(cat /proc/cmdline)
local bootpart=${cmdline##*root=}
bootpart=${bootpart%% *}
local uuid=${bootpart#PARTUUID=}
echo ${uuid%-02}
}

bootdev_from_uuid() {
blkid | grep "PTUUID=\"$(rootpartuuid)\"" | cut -d : -f1
}

bootpart_from_uuid() {
blkid | grep $(rootpartuuid)-01 | cut -d : -f1
}

rootpart_from_uuid() {
blkid | grep $(rootpartuuid)-02 | cut -d : -f1
}

imx_sdcard_mount_boot() {
mkdir -p /boot
[ -f /boot/uImage ] || {
mount -o rw,noatime $(bootpart_from_uuid) /boot > /dev/null
}
}

imx_sdcard_copy_config() {
imx_sdcard_mount_boot
cp -af "$UPGRADE_BACKUP" "/boot/$BACKUP_FILE"
sync
umount /boot
}

imx_sdcard_do_upgrade() {
local board_dir="$(tar tf "${1}" | grep -m 1 '^sysupgrade-.*/$')"
board_dir="${board_dir%/}"

imx_sdcard_mount_boot
get_image "$1" | tar Oxf - ${board_dir}/kernel > /boot/uImage
get_image "$1" | tar Oxf - ${board_dir}/root > $(rootpart_from_uuid)
sync
umount /boot
}

imx_sdcard_pre_upgrade() {
[ -z "$UPGRADE_BACKUP" ] && {
jffs2reset -y
umount /overlay
}
}

imx_sdcard_move_config() {
if [ -b $(bootpart_from_uuid) ]; then
imx_sdcard_mount_boot
[ -f "/boot/$BACKUP_FILE" ] && mv -f "/boot/$BACKUP_FILE" /
umount /boot
fi
}
30 changes: 0 additions & 30 deletions target/linux/imx/cortexa9/base-files/lib/imx.sh

This file was deleted.

Expand Up @@ -9,11 +9,7 @@ move_config() {
toradex,apalis_imx6q-eval|\
toradex,apalis_imx6q-ixora|\
toradex,apalis_imx6q-ixora-v1.1)
if [ -b $(bootpart_from_uuid) ]; then
apalis_mount_boot
[ -f "/boot/$BACKUP_FILE" ] && mv -f "/boot/$BACKUP_FILE" /
umount /boot
fi
imx_sdcard_move_config
;;
esac
}
Expand Down
24 changes: 3 additions & 21 deletions target/linux/imx/cortexa9/base-files/lib/upgrade/platform.sh
Expand Up @@ -17,21 +17,6 @@ enable_image_metadata_check() {
}
enable_image_metadata_check

apalis_copy_config() {
apalis_mount_boot
cp -af "$UPGRADE_BACKUP" "/boot/$BACKUP_FILE"
sync
umount /boot
}

apalis_do_upgrade() {
apalis_mount_boot
get_image "$1" | tar Oxf - sysupgrade-apalis/kernel > /boot/uImage
get_image "$1" | tar Oxf - sysupgrade-apalis/root > $(rootpart_from_uuid)
sync
umount /boot
}

platform_check_image() {
local board=$(board_name)

Expand Down Expand Up @@ -109,7 +94,7 @@ platform_do_upgrade() {
toradex,apalis_imx6q-eval|\
toradex,apalis_imx6q-ixora|\
toradex,apalis_imx6q-ixora-v1.1)
apalis_do_upgrade "$1"
imx_sdcard_do_upgrade "$1"
;;
esac
}
Expand All @@ -121,7 +106,7 @@ platform_copy_config() {
toradex,apalis_imx6q-eval|\
toradex,apalis_imx6q-ixora|\
toradex,apalis_imx6q-ixora-v1.1)
apalis_copy_config
imx_sdcard_copy_config
;;
esac
}
Expand All @@ -133,10 +118,7 @@ platform_pre_upgrade() {
toradex,apalis_imx6q-eval|\
toradex,apalis_imx6q-ixora|\
toradex,apalis_imx6q-ixora-v1.1)
[ -z "$UPGRADE_BACKUP" ] && {
jffs2reset -y
umount /overlay
}
imx_sdcard_pre_upgrade
;;
esac
}

0 comments on commit 70a9c75

Please sign in to comment.