Device Tree on ARM status report - Mar 20
grant.likely at secretlab.ca
Sun Mar 27 05:35:53 UTC 2011
On Sat, Mar 26, 2011 at 9:33 AM, Tixy <tixy at yxit.co.uk> wrote:
> 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?
No, the dtb replaces the command line and other ATAGs, so no worries
there. The initial stack is much higher in RAM, and the initial page
tables start at 16k from the base of ram.
The beagleboard sets CONFIG_SYS_BOOTMAPSZ to the first 16k or RAM
which is an obsolete limitation and the kernel can handle the dtb
located anywhere in RAM. I've got a couple of patches that eliminates
the requirement to set CONFIG_SYS_BOOTMAPSZ, but in the current code
that means it tries to relocate the dtb to the end of RAM which
doesn't seem to work. Relocating to a lower address works fine from
>> 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 :-)
:-) The tree I posted as a reply to the Device Tree on ARM status
report email shows my current trees. There were 2 initrd off-by-one
bugs, one in the kernel and one in u-boot. Both are fixed in my tree.
More information about the linaro-dev