devicetree-compiler.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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
>>
>>
> 

  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).