
Replying to myself
2018-02-21 17:16 GMT+01:00 Clément Péron peron.clem@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