[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#845779: [PATCH 1/1] functions: call mkimage with correct architecture



64bit u-boot and kernel cannot load 32bit u-boot images.

Hence on 32bit arm systems use 'mkimage -A arm',
on 64bit arm systems use 'mkimage -A arm64'.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
---
 functions | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/functions b/functions
index 368cbf2..a62ea4c 100644
--- a/functions
+++ b/functions
@@ -33,6 +33,15 @@ read_machine_db() {
 }
 MACHINE_DB="$(read_machine_db)"
 
+get_mkimage_architecture() {
+	local arch="$(uname -m)"
+	case "$arch" in
+		"aarch64") echo "arm64" ;;
+		*)	   echo "arm"   ;;
+	esac
+	}
+MKARCH="$(get_mkimage_architecture)"
+
 error() {
 	echo "$@" >&2
 	exit 1
@@ -423,7 +432,7 @@ mkimage_kernel() {
 	local uimage="$5"
 
 	printf "Generating kernel u-boot image... " >&2
-	mkimage -A arm -O linux -T kernel -C none -a "$kaddr" -e "$epoint" \
+	mkimage -A "$MKARCH" -O linux -T kernel -C none -a "$kaddr" -e "$epoint" \
 		-n "$kdesc" -d "$kdata" "$uimage" >&2 1>/dev/null
 	echo "done." >&2
 }
@@ -435,7 +444,7 @@ mkimage_initrd() {
 	local uinitrd="$4"
 
 	printf "Generating initramfs u-boot image... " >&2
-	mkimage -A arm -O linux -T ramdisk -C none -a "$iaddr" -e "$iaddr" \
+	mkimage -A "$MKARCH" -O linux -T ramdisk -C none -a "$iaddr" -e "$iaddr" \
 		-n "$idesc" -d "$idata" "$uinitrd" >&2 1>/dev/null
 	echo "done." >&2
 }
@@ -459,7 +468,7 @@ mkimage_script() {
                   s/@@UBOOT_ENV_EXTRA@@//g
                   r $ubootenv
                 }" < $sdata > $tdata
-	mkimage -A arm -O linux -T script -C none -a "$saddr" -e "$saddr" \
+	mkimage -A "$MKARCH" -O linux -T script -C none -a "$saddr" -e "$saddr" \
 		-n "$sdesc" -d "$tdata" "$script" >&2 1>/dev/null
 	echo "done." >&2
 }
@@ -472,7 +481,7 @@ mkimage_multi() {
 	local umulti="$5"
 
 	printf "Generating u-boot image..." >&2
-	mkimage -A arm -O linux -T multi -C none -a "$maddr" -e "$maddr" \
+	mkimage -A "$MKARCH" -O linux -T multi -C none -a "$maddr" -e "$maddr" \
 		-n "$mdesc" -d "$kdata:$idata" "$umulti" >&2 1>/dev/null
 	echo "done." >&2
 }
-- 
2.10.2


Reply to: