[U-Boot] pull request for u-boot-tegra/master

Stephen Warren
2012-06-08T22:52:26Z

On 06/08/2012 04:36 PM, Stephen Warren wrote:
> On 06/08/2012 04:00 PM, Stephen Warren wrote:
>> On 06/08/2012 03:44 PM, Albert ARIBAUD wrote:
>>> Hi Tom,
>>>
>>> Le 31/05/2012 18:47, Tom Warren a ?crit :
>>>> Albert,
>>>>
>>>> Please pull u-boot-tegra/master into ARM master. Thanks!
>>>>
>>>> The following changes since commit
>>>> 2ca4a209a5b961ad1be8782c68dabe326d77dfaf:
>>>> SRICHARAN R (1):
>>>> OMAP4/5: Change omap4_sdp, omap4_panda, omap5_evm maintainer
>>>>
>>>> are available in the git repository at:
>>>>
>>>> git://git.denx.de/u-boot-tegra master
>>>
>>> Trying trimslice with the stock Linaro toolchain from Xubuntu:
>>>
>>> uboot at lilith:~/src/u-boot-arm$ LC_ALL=C ./MAKEALL trimslice
>>> Configuring for trimslice board...
>>> text data bss dec hex filename
>>> 234794 4716 276460 515970 7df82 ./u-boot
>>> /bin/sh: line 1: exit: too many arguments
>>> make[1]: *** [dt.dtb] Error 1
>>> make: *** [u-boot.dtb] Error 2
>>>
>>> Are there special needs for building trimslice?
>>
>> There should be nothing special about TrimSlice vs. any other Tegra board.
>>
>> This is somehow related to the dtc (device tree compiler) version that's
>> picked up by the build process. I can reproduce it by placing Ubuntu
>> Lucid's dtc in my PATH, but not with another version of dtc I had in my
>> path (require to build our downstream U-Boot device trees).
>>
>> I'll investigate, unless anyone else wants to.
>
> In order to see the real problem with dtc, you will need:
>
> http://lists.denx.de/pipermail/u-boot/2012-June/125967.html
>
> The problem is as follows:
>
>> /home/swarren/shared/git_wa/u-boot/arch/arm/dts/tegra20.dtsi:3 syntax error
>> FATAL ERROR: Couldn't read input tree
>> make[1]: *** [dt.dtb] Error 1
>
> This is because tegra-trimslice.dts contains:
>
>> /include/ ARCH_CPU_DTS
>
> which is run through cpp to substitute the correct absolute path:
>
>> /include/ "/home/swarren/shared/git_wa/u-boot/arch/arm/dts/tegra20.dtsi"
>
> However, some versions of dtc appear to have a problem parsing this
> path; perhaps it's the leading /?

Uggh. The problem is that older versions of dtc would only accept a
single definition of the root node; they don't allow another copy to be
specified, which "overlays" or is "merged with" it. Put another way, dtc
can't compile a simple:

> /dts-v1/;
>
> / {
> foo = "bar";
> };
>
> / {
> foo = "bar";
> };

That means we can't separate the device tree source into separate
skeleton.dtsi, tegra20.dtsi, and tegra2-$board.dts.

So, we have basically no choice but to require people to upgrade to a
recent dtc. If we do that, we can also get rid of the cpp hacks, since
the latest dtc has a -i option that can be used to set an include path.