1# 2# Copyright OpenEmbedded Contributors 3# 4# SPDX-License-Identifier: MIT 5# 6 7# fitImage kernel compression algorithm 8FIT_KERNEL_COMP_ALG ?= "gzip" 9FIT_KERNEL_COMP_ALG_EXTENSION ?= ".gz" 10 11# Kernel image type passed to mkimage (i.e. kernel kernel_noload...) 12UBOOT_MKIMAGE_KERNEL_TYPE ?= "kernel" 13 14uboot_prep_kimage() { 15 if [ -e arch/${ARCH}/boot/compressed/vmlinux ]; then 16 vmlinux_path="arch/${ARCH}/boot/compressed/vmlinux" 17 linux_suffix="" 18 linux_comp="none" 19 elif [ -e arch/${ARCH}/boot/vmlinuz.bin ]; then 20 rm -f linux.bin 21 cp -l arch/${ARCH}/boot/vmlinuz.bin linux.bin 22 vmlinux_path="" 23 linux_suffix="" 24 linux_comp="none" 25 else 26 vmlinux_path="vmlinux" 27 # Use vmlinux.initramfs for linux.bin when INITRAMFS_IMAGE_BUNDLE set 28 # As per the implementation in kernel.bbclass. 29 # See do_bundle_initramfs function 30 if [ "${INITRAMFS_IMAGE_BUNDLE}" = "1" ] && [ -e vmlinux.initramfs ]; then 31 vmlinux_path="vmlinux.initramfs" 32 fi 33 linux_suffix="${FIT_KERNEL_COMP_ALG_EXTENSION}" 34 linux_comp="${FIT_KERNEL_COMP_ALG}" 35 fi 36 37 [ -n "${vmlinux_path}" ] && ${KERNEL_OBJCOPY} -O binary -R .note -R .comment -S "${vmlinux_path}" linux.bin 38 39 if [ "${linux_comp}" != "none" ] ; then 40 if [ "${linux_comp}" = "gzip" ] ; then 41 gzip -9 linux.bin 42 elif [ "${linux_comp}" = "lzo" ] ; then 43 lzop -9 linux.bin 44 fi 45 mv -f "linux.bin${linux_suffix}" linux.bin 46 fi 47 48 echo "${linux_comp}" 49} 50