[yocto] Wrong ENTRYPOINT and LOADADDRESS in uImage

Martin Jansa martin.jansa at gmail.com
Thu Aug 23 02:32:02 PDT 2012


On Thu, Aug 23, 2012 at 11:24:20AM +0200, Markus Hubig wrote:
> Hi @all,
> 
> I have a customized Yocto-Linux Recipe in my BSP, and now I'm seeing that
> the UBOOT_ENTRYPOINT and UBOOT_LOADADDRESS settings in my ${MACHINE}.conf
> is not honored in the resulting uImage.

You need newer oe-core with this commit and KEEPUIMAGE set to "no"

commit 72a7049526ee107005bd39c7bdd814ed71345829
Author: Koen Kooi <koen at dominion.thruhere.net>
Date:   Mon Jul 23 13:45:30 2012 -0700

    kernel bbclass: Recreate uImage only when KEEPUIMAGE != "yes"

    The intent of the uImage code in this class includes the following

    1) be able to specify custom load addresses without needing to patch the kernel
    2) add better information to the uImage description field

    The current state is a NOP anyway, the kernel will always build a uImage when you tell it to 'make uImage'.

    weakly Set KEEPUIMAGE to 'yes' in default-distrovars.inc which preserve the
    current OE-Core behavior. Machines which are being ported from oe.dev and need to
    regenerate uImage can set this to be empty

    Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
    Signed-off-by: Khem Raj <raj.khem at gmail.com>
    Signed-off-by: Saul Wold <sgw at linux.intel.com>


> 
> The relevant part of kernel.bbclass is in kernel_do_deploy():
> 
> | if test "x${KERNEL_IMAGETYPE}" = "xuImage" ; then 
> |
> |     if test -e arch/${ARCH}/boot/uImage ; then
> |         cp arch/${ARCH}/boot/uImage ${DEPLOYDIR}/${KERNEL_IMAGE_BASE_NAME}.bin
> |
> |     elif test -e arch/${ARCH}/boot/compressed/vmlinux ; then
> | 	${OBJCOPY} -O binary -R .note -R .comment -S \
> | 	    arch/${ARCH}/boot/compressed/vmlinux linux.bin
> | 	uboot-mkimage -A ${ARCH} -O linux -T kernel -C none \
> | 	    -a ${UBOOT_ENTRYPOINT} -e ${UBOOT_ENTRYPOINT} \
> | 	    -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin \
> | 	    ${DEPLOYDIR}/${KERNEL_IMAGE_BASE_NAME}.bin
> | 	rm -f linux.bin
> |
> |     else
> | 	${OBJCOPY} -O binary -R .note -R .comment -S vmlinux linux.bin
> | 	rm -f linux.bin.gz
> | 	gzip -9 linux.bin
> | 	uboot-mkimage -A ${ARCH} -O linux -T kernel -C gzip \
> | 	    -a ${UBOOT_ENTRYPOINT} -e ${UBOOT_ENTRYPOINT} \
> | 	    -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin.gz \
> | 	    ${DEPLOYDIR}/${KERNEL_IMAGE_BASE_NAME}.bin
> |         rm -f linux.bin.gz
> |     fi
> | fi
> 
> As you can easily see, if there is an "arch/${ARCH}/boot/uImage" present,
> uboot-mkimage is not used to set the ENTRYPOINT and LOADADDRESS. So I'm
> wondering who is setting these entries instead, and how do I adjust them?
> 
> Cheers, Markus
> 
> -- 
> Human beings were created by water to transport it uphill.
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20120823/c8ce73e6/attachment.pgp>


More information about the yocto mailing list