imx: decouple sdcard sysupgrade from Apalis boards
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>
This commit is contained in:
		 Lech Perczak
					Lech Perczak
				
			
				
					committed by
					
						 Piotr Dymacz
						Piotr Dymacz
					
				
			
			
				
	
			
			
			 Piotr Dymacz
						Piotr Dymacz
					
				
			
						parent
						
							f987887e14
						
					
				
				
					commit
					70a9c75ef3
				
			
							
								
								
									
										63
									
								
								target/linux/imx/base-files/lib/imx.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								target/linux/imx/base-files/lib/imx.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -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 | ||||
| } | ||||
| @@ -1,30 +0,0 @@ | ||||
| # | ||||
| # 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 | ||||
| } | ||||
|  | ||||
| apalis_mount_boot() { | ||||
| 	mkdir -p /boot | ||||
| 	[ -f /boot/uImage ] || { | ||||
| 		mount -o rw,noatime $(bootpart_from_uuid) /boot > /dev/null | ||||
| 	} | ||||
| } | ||||
| @@ -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 | ||||
| } | ||||
|   | ||||
| @@ -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) | ||||
|  | ||||
| @@ -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 | ||||
| } | ||||
| @@ -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 | ||||
| } | ||||
| @@ -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 | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user