mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01:00
u-boot-mkimage-native is needed to build any type of uImages, be it the uImage target itself or for example uImage.lzma. The dependency however gets only added when at least one of KERNEL_IMAGETYPE and KERNEL_ALT_IMAGETYPE is exactly uImage. Building uImage.bin and uImage.lzma is not possible this way. This patch adds a dependency to u-boot-mkimage-native for all imagetypes which contains the string uImage. (From OE-Core rev: ac4ce0b07b2742c64d44f988ecb27e7200b5a0bc) Signed-off-by: Reto Schneider <code@reto-schneider.ch> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
36 lines
1.4 KiB
Plaintext
36 lines
1.4 KiB
Plaintext
inherit kernel-uboot
|
|
|
|
python __anonymous () {
|
|
if "uImage" in d.getVar('KERNEL_IMAGETYPES'):
|
|
depends = d.getVar("DEPENDS")
|
|
depends = "%s u-boot-mkimage-native" % depends
|
|
d.setVar("DEPENDS", depends)
|
|
|
|
# Override KERNEL_IMAGETYPE_FOR_MAKE variable, which is internal
|
|
# to kernel.bbclass . We override the variable here, since we need
|
|
# to build uImage using the kernel build system if and only if
|
|
# KEEPUIMAGE == yes. Otherwise, we pack compressed vmlinux into
|
|
# the uImage .
|
|
if d.getVar("KEEPUIMAGE") != 'yes':
|
|
typeformake = d.getVar("KERNEL_IMAGETYPE_FOR_MAKE") or ""
|
|
if "uImage" in typeformake.split():
|
|
d.setVar('KERNEL_IMAGETYPE_FOR_MAKE', typeformake.replace('uImage', 'vmlinux'))
|
|
|
|
# Enable building of uImage with mkimage
|
|
bb.build.addtask('do_uboot_mkimage', 'do_install', 'do_kernel_link_images', d)
|
|
}
|
|
|
|
do_uboot_mkimage[dirs] += "${B}"
|
|
do_uboot_mkimage() {
|
|
uboot_prep_kimage
|
|
|
|
ENTRYPOINT=${UBOOT_ENTRYPOINT}
|
|
if [ -n "${UBOOT_ENTRYSYMBOL}" ]; then
|
|
ENTRYPOINT=`${HOST_PREFIX}nm ${B}/vmlinux | \
|
|
awk '$3=="${UBOOT_ENTRYSYMBOL}" {print "0x"$1;exit}'`
|
|
fi
|
|
|
|
uboot-mkimage -A ${UBOOT_ARCH} -O linux -T kernel -C "${linux_comp}" -a ${UBOOT_LOADADDRESS} -e $ENTRYPOINT -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin ${B}/arch/${ARCH}/boot/uImage
|
|
rm -f linux.bin
|
|
}
|