[U-Boot] [PATCH v3 11/14] dtbo: make dtbos special

Stephen Warren swarren at wwwdotorg.org
Fri Sep 15 16:21:28 UTC 2017


On 09/15/2017 10:13 AM, Tom Rini wrote:
> On Fri, Sep 15, 2017 at 09:52:41AM -0600, Stephen Warren wrote:
>> On 09/15/2017 09:50 AM, Stephen Warren wrote:
>>> On 09/04/2017 02:12 PM, Pantelis Antoniou wrote:
>>>> Special rule for dtbo generation
>>>
>>>> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
>>>
>>>> +quiet_cmd_dtco = DTCO    $@
>>>> +# Rule for objects only; does not put specific u-boot include at the end
>>>> +# No generation of assembly file either
>>>> +# Modified for U-Boot
>>>> +cmd_dtco = mkdir -p $(dir ${dtc-tmp}) ; \
>>>> +    $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) - ; \
>>>> +    $(DTC) -@ -O dtb -o $@ -b 0 \
>>>> +        -i $(dir $<) $(DTC_FLAGS) \
>>>> +        -d $(depfile).dtc.tmp $(dtc-tmp) ; \
>>>
>>> As of u-boot-fdt/master commit 503afc3ca1e5 "test: overlay: Add
>>> unit test for stacked overlay", the U-Boot build fails for sandbox
>>> with the error below. I guess it's due to this commit. Does U-Boot
>>> now intentionally rely on a newer dtc or is this an accident?
>>>
>>>    DTC     test/overlay/test-fdt-base.dtb
>>>    LD      lib/libfdt/built-in.o
>>>    CC      lib/charset.o
>>>    CC      lib/rsa/rsa-verify.o
>>> dtc: invalid option -- '@'
>>> Usage: dtc [options] <input file>
>>>
>>> Options: -[qI:O:o:V:d:R:S:p:fb:i:H:sW:E:hv]
>>>    -q, --quiet
>>>      Quiet: -q suppress warnings, -qq errors, -qqq all
>>> ...
>>
>> Related, the following check in Makefile doesn't trigger:
>>
>> checkdtc:
>> 	@if test $(call dtc-version) -lt 0104; then \
>> 		echo '*** Your dtc is too old, please upgrade to dtc 1.4 or newer'; \
>> 		false; \
>> 	fi
>>
>> ... because I have dtc 1.4.0. If U-Boot requires a new version now,
>> that Makefile chunk should be updated.
> 
> Ah, this is what needs updating, yes, it needs to cehck for 1.4.3 or
> newer.

Related: The Travis systems run Ubuntu 14.04 (same as my systems) and 
hence have dtc 1.4.0. If u-boot-fdt/master is merged into u-boot/master, 
the build will break in Travis.

The logic in .travis.yml to use a newer dtc (built from upstream dtc 
source) is disabled since apparently more recent dtc spew lots of 
warnings and make the logs too long for Travis. Ideally, .travis.yml 
would check out and build the exact same dtc version/tag that Makefile 
dictates as the minimum, but I'm not sure that's possible given the log 
spew issue.


More information about the U-Boot mailing list