[U-Boot] Can't boot with initramfs but It's ok without

Clément Péron peron.clem at gmail.com
Thu Feb 22 09:39:10 UTC 2018


Replying to myself

2018-02-21 17:16 GMT+01:00 Clément Péron <peron.clem at gmail.com>:
> Hi,
>
> I'm working on a dev board the SoC is Broadcom Cygnus with 256MiB of RAM
> Booting a Kernel and device tree works fine.
> But booting a Kernel with initramfs and a device tree make a strange behavior.
>
> Don't want to say stupid things but It seems that the Kernel didn't
> find the device tree and try to fall back using the ATAGS, but since I
> don't use them the machine ID is not set up.
>
> Do you have any idea of what I did wrong in my setup ?

Make an early printk in the kernel arm setup and found that the
__atags_pointer is NULL.
I verified the r2 argument passed by U-boot and it is OK.
This value is set by head-common.S sets __atags_pointer (hold in r2)
to 0 due to an invalid signature.

So what append ?
What i understood is that when i build with the initramfs the size is
much more bigger and doesn't fit.
So it overwrites the device tree and corrupt it.
DT is at 0x62000000 and Kernel boot at 0x60000000.

Change the dt_loadaddr to 0x6F000000 and no more issue :)

Regards,
Clement


More information about the U-Boot mailing list