[U-Boot] Wrong Image Format for bootm command

Ottavio Campana o.campana at videotec.com
Fri Aug 26 09:30:51 CEST 2016


Hello everybody,

I am writing here because I'm having an issue with u-boot, I tried searching online and found that many others had the same issue but I was not able to find an answer.

I am trying to boot a 4.4.0 kernel on U-Boot 2012.10. The problem that I'm having is that I get this error:

u-boot> tftp 0x84000000 uImage
...
u-boot> bootm 0x84000000
Wrong Image Format for bootm command
ERROR: can't get kernel image!
u-boot>

My experience with embedded linux was always based on 2.* kernels, so this is the first time that I'm trying to learn how to user a modern kernel.

As far as I understand, on modern kernels there's the possibility of having a flat image tree, so that the dtb can be bundled with the kernel, together with initramfs and other components. This feature is not supported by old versions of the bootloader. If an old version of u-boot is used, it is still possible to have a single file, by not using initramfs and by appending the dtb at the end of the kernel.

My uImage looks like this:


ottavio at ottavio:~$ mkimage -l /srv/tftp/uImage
Image Name:   Linux-4.4.0
Created:      Fri Aug 26 08:39:54 2016
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    3589592 Bytes = 3505.46 kB = 3.42 MB
Load Address: 81008000
Entry Point:  81008000
ottavio at ottavio:~$ file /srv/tftp/uImage
/srv/tftp/uImage: u-boot legacy uImage, Linux-4.4.0, Linux/ARM, OS Kernel Image (Not compressed), 3589592 bytes, Fri Aug 26 08:39:54 2016, Load Address: 0x81008000, Entry Point: 0x81008000, Header CRC: 0x538260F4, Data CRC: 0x8D5C2A77
ottavio at ottavio:~$

For booting, my kernel is configured as follows:

#
# Boot options
#
# CONFIG_USE_OF is not set
CONFIG_ATAGS=y
# CONFIG_DEPRECATED_PARAM_STRUCT is not set
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_ARM_APPENDED_DTB=y
CONFIG_ARM_ATAG_DTB_COMPAT=y
CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y
# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set
CONFIG_CMDLINE="console=ttyS0,115200n8 maxcpus=1"
CONFIG_CMDLINE_FROM_BOOTLOADER=y
# CONFIG_CMDLINE_EXTEND is not set
# CONFIG_CMDLINE_FORCE is not set
# CONFIG_XIP_KERNEL is not set
# CONFIG_KEXEC is not set
# CONFIG_CRASH_DUMP is not set
CONFIG_AUTO_ZRELADDR=y

So I'm wondering, why is u-boot refusing to boot the kernel? Can you help me and give me a hint please?

Thank you for your help,

Ottavio



More information about the U-Boot mailing list