Device tree boot mapping issue

Andy Green andy.green at linaro.org
Fri Mar 2 02:29:07 UTC 2012


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

-- 
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  -
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog



More information about the linaro-dev mailing list