From: Alexandre Torgue <alexandre.torgue-qxv4g6HH51o@public.gmane.org>
To: David Gibson
<david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org>,
Ian Lepore <ian-h+KGxgPPiopAfugRpC6u6w@public.gmane.org>
Cc: Devicetree Compiler
<devicetree-compiler-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Frank Rowand
<frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Steve McIntyre
<steve.mcintyre-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Subject: Re: [RFC PATCH 1/3] dtc: Add dtb build information option
Date: Fri, 17 Apr 2020 16:27:11 +0200 [thread overview]
Message-ID: <31245fea-da41-72f3-6f14-9c326c301aa9@st.com> (raw)
In-Reply-To: <20200121020525.GL54439@umbus>
Hi David
On 1/21/20 3:05 AM, David Gibson wrote:
> On Mon, Jan 20, 2020 at 11:55:52AM -0700, Ian Lepore wrote:
>> On Sun, 2020-01-19 at 16:39 +1000, David Gibson wrote:
>>> On Fri, Jan 17, 2020 at 08:43:23AM -0600, Rob Herring wrote:
>>>> On Fri, Jan 17, 2020 at 6:26 AM David Gibson
>>>> <david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org> wrote:
>>>>>
>>>>> On Thu, Jan 16, 2020 at 09:58:23AM +0100, Alexandre Torgue wrote:
>>>>>> Hi David
>>>>>>
>>>>>> [...]
>>>>>>
>>>>>> My first idea was to not modify all existing .dts files. Adding
>>>>>> an extra option in dtc is (for me) the softer way to do it. I
>>>>>> mean, compile information should come through compiler without
>>>>>> modify .dts files outside from dtc. In this way it will be easy
>>>>>> to everybody using dtc (inside our outside Linux tree) to add
>>>>>> dtb build info (even if they don't how to write a dts file).
>>>>>
>>>>> But you're not really having this information coming from the
>>>>> compiler. Instead you're adding a compiler option that just
>>>>> force includes another file into the generated tree, and it's up
>>>>> to your build scripts to put something useful into that file.
>>>>>
>>>>> I don't really see that as preferable to modifying the .dts
>>>>> files.
>>>>>
>>>>> I also dislike the fact that the option as proposed is much more
>>>>> general than the name suggests, but also very similar too, but
>>>>> much more specific than the existing /incbin/ option.
>>>>>
>>>>> What might be better would be to have a dtc option which force
>>>>> appends an extra .dts to the mail .dts compiled. You can then
>>>>> put an overlay template in that file, something like:
>>>>>
>>>>> &{/} {
>>>>> linux,build-info = /incbin/ "build-info.txt;
>>>>> }
>>>>
>>>> I like this suggestion either as an include another dts file or an
>>>> overlay.
>>>
>>> Sorry, to be clear what I'm talking about here is just including
>>> another dts file, and using the compile-type overlay syntax. This is
>>> not the same as .dtbo style runtime overlays (though the final result
>>> is about the same in this case).
>>
>> Given that dts files are run through the C preprocessor before being
>> fed to dtc, the build script could use the '-include' flag to force-
>> include a fragment containing generated build info without any need to
>> modify existing dts files.
>
> Uh... maybe. -include will essentially prepend the forced file, which
> is a bit awkward for our purposes. It means that the prepended file
> would need the /dts-v1/ tag, and we couldn't have it in the main files
> which would be a bit confusing. I think it would also cause problems
> with any /memreserve/ tags and means that the main tree could in
> theory overwrite the build information which we don't necessarily
> want.
>
> I guess we could build things the other way around: have the main .dts
> file specified with -include and have the dts on the dtc commandline
> be a fixed one with the build information. It'd be a little weird,
> though.
>
I reopen this old RFC on my side (sorry for the delay). I sent a v2 for
it some weeks but without adding modifications you suggested. I'm now
looking at it. Just to remind you my goal: I want to add a property in
the ongoing build dts. This property will contain build-info (date ...).
So I created a toto.dtsi, with :
&{/} {
build-info = /incbin/ "build-info.txt;
}
In Makefile.lib, before calling:
test ?= $(objtree)/scripts/toto.dtsi
$(HOSTCC) ...
cat $(test) >> $(dtc-tmp) ;\
$(DTC) -O ...
Is it something acceptable? Or did you have something else in mind ?
(and if nothing in mind, it's my fault, to long time to reopen this
subject :))
thanks in advance
alex
>>>> The latter could be useful as a way to maintain current dtb
>>>> files while splitting the source files into base and overlay dts
>>>> files.
>>>>
>>>> But no, let's not prepend this with 'linux'. It's not a property
>>>> specific for Linux to consume.
>>>
>>> It's not really about who consumes it. It's about defining a
>>> namespace for the new property to exist in, since it's not part of a
>>> relevant standard (if we wanted to make it such, we should pin down
>>> what goes in there with much more precision).
>>>
>>> This is specific to files built in the Linux tree, hence my
>>> suggestion of "linux", whoever ends up consuming them.
>>>
>>
>> I tend to agree with this. We use the dts files in freebsd, and if we
>> wanted to include some build metadata, it would probably have different
>> info in a different format than what linux uses. I would be inclined
>> to add those as freebsd,build-info. As well as the namespace, this
>> would give consumers some clue about what format the build info string
>> might have.
>>
>> -- Ian
>>
>>
>
next prev parent reply other threads:[~2020-04-17 14:27 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-13 18:16 [RFC PATCH 0/3] Add device tree build information Alexandre Torgue
2020-01-13 18:16 ` [RFC PATCH 1/3] dtc: Add dtb build information option Alexandre Torgue
2020-01-16 0:57 ` David Gibson
2020-01-16 8:58 ` Alexandre Torgue
2020-01-17 9:09 ` David Gibson
2020-01-17 14:43 ` Rob Herring
2020-01-17 15:11 ` Alexandre Torgue
2020-01-19 6:40 ` David Gibson
2020-01-19 6:39 ` David Gibson
2020-01-20 18:55 ` Ian Lepore
[not found] ` <9c4e873ef998a5800a4cac673b7e925fc90e3293.camel-h+KGxgPPiopAfugRpC6u6w@public.gmane.org>
2020-01-21 2:05 ` David Gibson
2020-01-21 15:37 ` Ian Lepore
[not found] ` <52f4b34454ab41151113c4ba5e4011d8b992e21f.camel-h+KGxgPPiopAfugRpC6u6w@public.gmane.org>
2020-01-22 1:28 ` David Gibson
2020-04-17 14:27 ` Alexandre Torgue [this message]
2020-01-21 15:59 ` Rob Herring
2020-01-21 17:18 ` Steve McIntyre
2020-01-23 5:13 ` David Gibson
[not found] ` <20200123051316.GP2347-K0bRW+63XPQe6aEkudXLsA@public.gmane.org>
2020-01-23 14:05 ` Rob Herring
[not found] ` <CAL_JsqKTsX9efYDMjGahFDxj0cEfzozeNrY1Nq1bECzgOZGqdQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2020-01-20 18:17 ` Steve McIntyre
[not found] ` <20200120181708.GN3697-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2020-01-22 18:00 ` Alexandre Torgue
2020-01-22 19:54 ` Frank Rowand
[not found] ` <20200113181625.3130-1-alexandre.torgue-qxv4g6HH51o@public.gmane.org>
2020-01-13 18:16 ` [RFC PATCH 2/3] of: fdt: print dtb build information Alexandre Torgue
2020-01-13 18:16 ` [RFC PATCH 3/3] scripts: Use -B dtc option to generate " Alexandre Torgue
2020-01-17 19:20 ` Frank Rowand
[not found] ` <bc5a94e3-389e-7ef4-5d14-1f7ab30a0826-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2020-01-22 19:54 ` Frank Rowand
2020-01-20 16:16 ` Frank Rowand
2020-01-15 15:56 ` [RFC PATCH 0/3] Add device tree " Steve McIntyre
2020-01-16 2:28 ` Frank Rowand
2020-01-16 8:19 ` Alexandre Torgue
[not found] ` <233e0a5f-d38f-908c-5ca7-66ee87d0fcae-qxv4g6HH51o@public.gmane.org>
2020-01-17 19:13 ` Frank Rowand
2020-01-20 10:56 ` Alexandre Torgue
2020-01-20 16:14 ` Frank Rowand
[not found] ` <a1233cd8-e73a-82d7-74bf-69109d1a0a07-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2020-01-20 18:28 ` Steve McIntyre
2020-01-21 3:20 ` Frank Rowand
[not found] ` <f09ce50c-6721-c9d3-4f27-3f98a2d0b183-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2020-01-21 3:39 ` Frank Rowand
2020-01-21 17:10 ` Steve McIntyre
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=31245fea-da41-72f3-6f14-9c326c301aa9@st.com \
--to=alexandre.torgue-qxv4g6hh51o@public.gmane.org \
--cc=david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org \
--cc=devicetree-compiler-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=ian-h+KGxgPPiopAfugRpC6u6w@public.gmane.org \
--cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=steve.mcintyre-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).