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

Stephen Warren
2012-06-08T22:36:55Z

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 /?

So, the quick solution here is to upgrade your dtc to a version which
isn't broken.

However, the whole reason this complicated cpp mess is being used in the
first place is because older versions of dtc had no -I (include path)
directive, and the tegra20.dtsi file is in a different directory to
tegra-trimslice.dts. Two solutions were possible:

a) Force everyone to use a newer dtc. Wolfgang rejected this.

b) Do the cpp hack. U-Boot went with this option.

c) Check a copy of dtc (source) into the U-boot source. The kernel went
with this option.

Evidently (b) causes problems with some older versions of dtc too, so
isn't a complete solution:-(

Perhaps the solution is to remove this cpp hack, and check in a symlink
in each directory containing *.dts that need to include others. That
way, we could get rid of the absolute paths that some versions of dtc
doesn't appear to like. I will give that a shot.