[U-Boot] Avoiding overwriting FDT from FIT image

Simon Glass sjg at chromium.org
Tue Jul 12 18:00:23 CEST 2016


+Masahiro


On 21 June 2016 at 17:30, Chris Packham <judge.packham at gmail.com> wrote:
> Hi,
>
> We have several boards making use of FIT images for the kernel/initrd/fdt.
>
> With v2015.04 we can successfully boot our application image. With
> v2016.05 we run into a problem where the FDT is overwritten when the
> ramdisk is relocated.
>
> Here's a snippet of boot output that illustrates the problem
>
> v2015.04
> -------------
> Booting image 01000000#x930-52GPX ...
> WARNING: adjusting available memory to 30000000
> ## Loading kernel from FIT Image at 01000000 ...
> ## Loading ramdisk from FIT Image at 01000000 ...
> ## Loading fdt from FIT Image at 01000000 ...
>    Booting using the fdt blob at 0x34ab4d4
>    Uncompressing Kernel Image ... OK
>    Loading Ramdisk to 2df6b000, end 30000000 ... OK
>    Loading Device Tree to 03fe6000, end 03fff862 ... OK
>
> v2016.04
> -------------
> Booting image 01000000#x930-52GPX ...
> WARNING: adjusting available memory to 30000000
> ## Loading kernel from FIT Image at 01000000 ...
> ## Loading ramdisk from FIT Image at 01000000 ...
> ## Loading fdt from FIT Image at 01000000 ...
>    Booting using the fdt blob at 0x34ab4d4
>    Uncompressing Kernel Image ... OK
>    Loading Ramdisk to 01f6a000, end 03fff000 ... OK
> ERROR: image is not a fdt - must RESET the board to recover.
> Error: -9
>
> Reverting commit 20e072f37402 ("image: check "bootm_low" and
> "bootm_size" if "initrd_high" is missing") avoids the problem as does
> setting initrd_high to 0xfffffffff. But I'm wondering if a better fix
> would be to tell boot_ramdisk_high() to avoid overwriting anything in
> the range $loadaddr -- +$filesize. Any suggestion as to how to go
> about this?
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot


More information about the U-Boot mailing list