[U-Boot] multi-image uImage with fitImage

Simon Glass sjg at chromium.org
Tue Mar 24 00:49:32 CET 2015


Hi,

On 23 March 2015 at 17:42, Andre Wolokita <andre.wolokita at analog.com> wrote:
> Hi Simon,
>
> On 24/03/15 10:14, Simon Glass wrote:
>> Hi,
>>
>> On 23 March 2015 at 00:40, fat loser <george.cluniac at gmail.com> wrote:
>>> Hi all,
>>>
>>> I am currently attempting to port my combined uImage and ramdisk image +
>>> dtb over to the fitImage format. I am creating a linux kernel + ramdisk
>>> with buildroot and dt blob with buildroot. The .its I am using to create a
>>> fitImage is below:
>>>
>>> /dts-v1/;
>>> / {
>>>         description = "Linux kernel";
>>>         #address-cells = <1>;
>>>         images {
>>>                 kernel at 1 {
>>>                         description = "Linux kernel";
>>>                         data = /incbin/("/tftpboot/uImage");
>>>                         arch = "arm";
>>>                         os = "linux";
>>>                         type = "multi";
>> What is multi? Do you want kernel or kernel_noload?
> I read somewhere that multi can represent a kernel+ramdisk uImage (image with ramdisk linked in.) If try to use "kernel" here, I get an error like: ERROR: new format image overwritten - must RESET the board to recover
> resetting ...

Sure, but that's getting further than before, when it was saying it
could not find the kernel. You may need to load the kernel to a
different place, so that it can be decompressed without overwriting.
Also what is uImage? It should be a simple uncompressed kernel image.
If it is a zImage you should likely use kernel_noload.

>>
>>>                         compression = "none";
>>>                         load = <0x89008000>;
>>>                         entry = <0x89008000>;
>>>                 };
>>>                 fdt at 1 {
>>>                         description = "Flattened Device Tree blob";
>>>                         data = /incbin/("/tftpboot/arm.dtb");
>>>                         type = "flat_dt";
>>>                         arch = "arm";
>>>                         compression = "none";
>>>                 };
>>>         };
>>>         configurations {
>>>                 default = "conf at 1";
>>>                 conf at 1 {
>>>                         description = "Boot Linux kernel";
>>>                         kernel = "kernel at 1";
>>>                         fdt = "fdt at 1";
>>>                 };
>>>         };
>>> };
>>>
>>> After tftp'ing the .itb over to address 0x89000000 and running bootm, I get:
>>>
>>> # bootm
>>> ## Loading kernel from FIT Image at 89000000 ...
>>>    Using 'conf at 1' configuration
>>>    Trying 'kernel at 1' kernel subimage
>>>      Description:  Linux kernel
>>>      Type:         Multi-File Image
>>>      Compression:  uncompressed
>>>      Data Start:   0x890000d0
>>>      Data Size:    28604352 Bytes = 27.3 MiB
>>>    Verifying Hash Integrity ... OK
>>> No Linux ARM Kernel Image Image
>>> ERROR: can't get kernel image!
>>>
>>> The images work perfectly before I try to combine them into a fitImage.
>>>
>>> Is there a special configuration option for multi-file (combined
>>> ramdisk-kernel) images in fitImage?
>>>
>>> Regards,
>>>
>>> George.

Regards,
Simon


More information about the U-Boot mailing list