On Thu, 2011-07-14 at 14:43 -0500, Scott Wood wrote:
You need to use lmb_reserve() to exclude any memory regions that are not
suitable for boot images -- see powerpc's arch_lmb_reserve() and
get_effective_memsize()/CONFIG_SYS_LINUX_LOWMEM_MAX_SIZE.
If one excludes HIGHMEM from the area u-boot is allowed to relocate the fdt/initrd to, then it will put it at the end of the 3/4GB boundary (can one exclude all memory above the kernel start address?). This splits memory into three, instead of two regions in the kernel. I don't think that split ever goes away. Then there's the additional region we already have to create for the Ducati memory. That's at least five memory regions total. There are only eight regions currently allowed by default. I don't have a feel for the implications of this, but it seems unnecessary.
Again, I don't think the problem is where u-boot relocates this data TOO, but the fact that the new default is to relocate it at all. Is there a reason for relocating this stuff? The initrd always used to be happy left where it was.