xref: /OK3568_Linux_fs/yocto/poky/meta/classes/kernel-uboot.bbclass (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# fitImage kernel compression algorithm
2*4882a593SmuzhiyunFIT_KERNEL_COMP_ALG ?= "gzip"
3*4882a593SmuzhiyunFIT_KERNEL_COMP_ALG_EXTENSION ?= ".gz"
4*4882a593Smuzhiyun
5*4882a593Smuzhiyun# Kernel image type passed to mkimage (i.e. kernel kernel_noload...)
6*4882a593SmuzhiyunUBOOT_MKIMAGE_KERNEL_TYPE ?= "kernel"
7*4882a593Smuzhiyun
8*4882a593Smuzhiyunuboot_prep_kimage() {
9*4882a593Smuzhiyun	if [ -e arch/${ARCH}/boot/compressed/vmlinux ]; then
10*4882a593Smuzhiyun		vmlinux_path="arch/${ARCH}/boot/compressed/vmlinux"
11*4882a593Smuzhiyun		linux_suffix=""
12*4882a593Smuzhiyun		linux_comp="none"
13*4882a593Smuzhiyun	elif [ -e arch/${ARCH}/boot/vmlinuz.bin ]; then
14*4882a593Smuzhiyun		rm -f linux.bin
15*4882a593Smuzhiyun		cp -l arch/${ARCH}/boot/vmlinuz.bin linux.bin
16*4882a593Smuzhiyun		vmlinux_path=""
17*4882a593Smuzhiyun		linux_suffix=""
18*4882a593Smuzhiyun		linux_comp="none"
19*4882a593Smuzhiyun	else
20*4882a593Smuzhiyun		vmlinux_path="vmlinux"
21*4882a593Smuzhiyun		# Use vmlinux.initramfs for linux.bin when INITRAMFS_IMAGE_BUNDLE set
22*4882a593Smuzhiyun		# As per the implementation in kernel.bbclass.
23*4882a593Smuzhiyun		# See do_bundle_initramfs function
24*4882a593Smuzhiyun		if [ "${INITRAMFS_IMAGE_BUNDLE}" = "1" ] && [ -e vmlinux.initramfs ]; then
25*4882a593Smuzhiyun			vmlinux_path="vmlinux.initramfs"
26*4882a593Smuzhiyun		fi
27*4882a593Smuzhiyun		linux_suffix="${FIT_KERNEL_COMP_ALG_EXTENSION}"
28*4882a593Smuzhiyun		linux_comp="${FIT_KERNEL_COMP_ALG}"
29*4882a593Smuzhiyun	fi
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun	[ -n "${vmlinux_path}" ] && ${OBJCOPY} -O binary -R .note -R .comment -S "${vmlinux_path}" linux.bin
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun	if [ "${linux_comp}" != "none" ] ; then
34*4882a593Smuzhiyun		if [ "${linux_comp}" = "gzip" ] ; then
35*4882a593Smuzhiyun			gzip -9 linux.bin
36*4882a593Smuzhiyun		elif [ "${linux_comp}" = "lzo" ] ; then
37*4882a593Smuzhiyun			lzop -9 linux.bin
38*4882a593Smuzhiyun		fi
39*4882a593Smuzhiyun		mv -f "linux.bin${linux_suffix}" linux.bin
40*4882a593Smuzhiyun	fi
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun	echo "${linux_comp}"
43*4882a593Smuzhiyun}
44