On Fri, 2011-03-25 at 22:46 -0600, Grant Likely wrote: [...]
It appears that when U-Boot relocates the .dtb, it either moves it to a location that the kernel cannot read during early boot, or it corrupts it when it is moved. Either way, the kernel is hooped when it tries to parse the device tree data, it falls back to the old ATAGs support, but there aren't any ATAGs either so it cannot actually boot.
I didn't appear to have any problems with dtb relocation on a beagleboard. It does get put at the bottom of RAM just before the kernel, are there things down there like initial stacks or command-line args that could corrupt the dtb?
I've got it working at the moment by hacking u-boot to /not/ relocate the .dtb blob which gets me much farther, but it also looks like it also causes problems with the initramfs image. It currently has an oops when it cannot mount the initramfs. Still investigating...
Thanks for posting to the mailing lists. I was just about to start tackling the off-by-one ramdisk sizes when I thought I'd check the list to see if anyone had been there before me :-)