On Thu, Sep 06, 2012 at 12:04:50PM +0100, Matthew Leach wrote: > I believe that you are loading the dtb at an offset from the base > of 0x1000, this is where the problem lies in that the dtb can be > corrupted by the page tables of the decompressor. Aha, so it is still using the KEXEC_ARM_ATAGS_OFFSET stuff. Sorry if I confused anybody about the DTB-append comments, I guess I was confusing the segment layout with the final loaded layout. It's worth pointing out that, with LPAE kernels, the page tables are larger and sit at offset 0x3000, so this leaves only 8k for the .dtb which is definitely not enough. > I suggest that we put the DTB out of the way, perhaps just after > the initrd segment, or at the initrd_offset in the case that > there is no initrd. This would require a kernel change to set the > correct parameter to the relocate_new_kerenel function, but the > change is minimal. I'm fine with changing the kernel, as long as it doesn't break existing users (it doesn't). Will