From 2b4f957638f14a1c0c4f696a23075be529715419 Mon Sep 17 00:00:00 2001 From: kszaq Date: Wed, 17 Apr 2019 20:59:58 +0200 Subject: [PATCH] linux: support creating uImage for arm64 arm64 target does not support creating uImage. Build Image first, then wrap it using u-boot's mkimage. Requires defining UIMAGE_LOADADDR and UIMAGE_ENTRYADDR in project options. --- packages/linux/package.mk | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/packages/linux/package.mk b/packages/linux/package.mk index e542b78ad4..c0d15a964c 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -205,6 +205,13 @@ make_target() { done fi + # arm64 target does not support creating uImage. + # Build Image first, then wrap it using u-boot's mkimage. + if [[ "$TARGET_KERNEL_ARCH" == "arm64" && "$KERNEL_TARGET" == uImage* ]]; then + KERNEL_UIMAGE_TARGET="$KERNEL_TARGET" + KERNEL_TARGET="${KERNEL_TARGET/uImage/Image}" + fi + # the modules target is required to get a proper Module.symvers # file with symbols from built-in and external modules. # Without that it'll contain only the symbols from the kernel @@ -230,6 +237,19 @@ make_target() { mv -f arch/$TARGET_KERNEL_ARCH/boot/boot.img arch/$TARGET_KERNEL_ARCH/boot/$KERNEL_TARGET fi + + if [ -n "$KERNEL_UIMAGE_TARGET" ] ; then + KERNEL_UIMAGE_COMP=${KERNEL_UIMAGE_TARGET:7} + KERNEL_UIMAGE_COMP=${KERNEL_UIMAGE_COMP:-none} + mkimage -A $TARGET_KERNEL_ARCH \ + -O linux \ + -T kernel \ + -C $KERNEL_UIMAGE_COMP \ + -a $KERNEL_UIMAGE_LOADADDR \ + -e $KERNEL_UIMAGE_ENTRYADDR \ + -d arch/$TARGET_KERNEL_ARCH/boot/$KERNEL_TARGET \ + arch/$TARGET_KERNEL_ARCH/boot/$KERNEL_UIMAGE_TARGET + fi } makeinstall_target() {