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.
This commit is contained in:
kszaq 2019-04-17 20:59:58 +02:00
parent 8a6766031e
commit 2b4f957638

View File

@ -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() {