Hi -
I have a problem with DT during fairly early boot on OMAP5 / 3.3-rc5 I'm hoping someone has met before.
The problem is setup_machine_fdt() is working correctly and selecting the compatible machine, and we start to boot, with a stub dtb, which is all good.
However by the time we reach unflatten_device_tree(), the virtual mapping that it saved on to the dt blob is no longer present and we die if we try to touch the virtual region it used before.
Some actual numbers, it copies the DT blob from U-Boot to phys 0xfef14000, and during setup_machine_fdt() it can walk it using virt 0x3ef14000.
However when it tries to dereference virt 0x3ef14000 later, in unflatten_device_tree(), it dies immediately.
Inbetweentimes, the main virtual memory stuff has initialized, I guess whatever mapping it had is nuked.
What is the correct approach for keeping the earlier dtb mapping around long enough so it can be unflattened? This used to work on Omap4 DT without problems so I guess we're missing a trick.
-Andy