On Wed, Aug 07, 2013 at 04:06:24PM +0400, Alexander Shiyan wrote: > > On Wed, Aug 07, 2013 at 01:55:42PM +0400, Alexander Shiyan wrote: > > > > This patch placed the flattened devicetree to armlinux_bootparams. > > > > armlinux_bootparams normally is at SDRAM_START + 0x100. The kernels > > > > initial page tables are normally at SDRAM_START + 0x4000, so the > > > > flattened devicetree gets overwritten once it exceeds 0x3f00 bytes > > > > which is quite common. > > > > > > > > Revert this patch for now once a better solution can be found > > > > > > In such a case, tree may be placed immediately after the kernel? > > > It can also serve as an automatic option "ARM_APPENDED_DTB". > > > > That won't work either, since the DTB will be overwritten by the kernel > > decompressor. > > arch/arm/Kconfig: > ... > config ARM_APPENDED_DTB > bool "Use appended device tree blob to zImage (EXPERIMENTAL)" > depends on OF && !ZBOOT_ROM > help > With this option, the boot code will look for a device tree binary > (DTB) appended to zImage > (e.g. cat zImage .dtb > zImage_w_dtb). > ... > > So, DTB is placed immediately after the kernel. Yes, in the case where you have APPENDED_DTB, the decompressor relocates the DTB before doing the decompression. The trouble is when you don't have APPENDED_DTB enabled, when there is no such relocation happening. -- Maxime Ripard, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com