Re: [RFC PATCH v2 0/4] Add device tree build information

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Franck

On 2/28/20 6:47 PM, Frank Rowand wrote:
Hi Alexandred,

Ping.


Sorry I was off last week.

-Frank


On 2/21/20 11:47 AM, Frank Rowand wrote:
On 2/21/20 10:14 AM, Alexandre Torgue wrote:
(with title it's better ;)

Hi,

The goal of this series is to add device tree build information in dtb.
This information can be dtb build date, where devicetree files come from,
who built the dtb ... Actually, same kind of information that you can find
in the Linux banner which is printout during kernel boot. Having the same
kind of information for device tree is useful for debugging and maintenance.

A file (dtb-build.txt) containing a string with build information (e.g.,
>From Linux 5.5.0-rc1 by alex the Mon Jan 13 18:25:38 CET 2020) is generated by
"gen_dtb_build_info.sh" script.

This file has to be included manually in each dts file that would like to use
this build information.

In the RFC series, you said:

   "I gonna prepare a V2 with David proposition (to use overlay format) by
    keeping in mind not to modify existing dts(i) files."

    https://lore.kernel.org/linux-devicetree/9d83a36c-78c5-3452-bb48-209d68c46038@xxxxxx/

But here in v2 instead requires including dtb-build.txt.

This would require modifying every single main .dts file to get the build info
I would prefer the method that Ian and David came up with (sorry, no lore link,
it did not go to lkml).  Extract from David's email:

    Date:   Tue, 21 Jan 2020 13:05:25 +1100
    From:   David Gibson <david@xxxxxxxxxxxxxxxxxxxxx>
    Subject: Re: [RFC PATCH 1/3] dtc: Add dtb build information option

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

-Frank

Yes. I try briefly this idea but I got issues with dts-v1 tag. I agree, it is cleaner to not modify input dts file. I can rework int this way.

regards
Alex



of/fdt.c is modified to printout "build-info" property during Kernel boot and
scripts/Makefile.lib is modified to call "gen_dtb_build_info.sh" script.

Patch 1 & 2 script and of/fdt.c updates
Patch 3 is an example of use in stm32mp157c-dk2.dts file.
Patch 4 is a tentative to make it automatic (not yet 100% functional).

regards
Alex

Changes since v1;
  - Remove modification in dtc (no more -B option)
  - Generate a file containing build info which is directly included in dts
    file.


Regards
Alex

Alexandre Torgue (4):
   scripts: Add script to generate dtb build information
   of: fdt: print dtb build information
   ARM: dts: stm32: Add dtb build information entry for stm32mp157c-dk2
   script: make automatic dtb build info generation

  arch/arm/boot/dts/stm32mp157c-dk2.dts |  1 +
  drivers/of/fdt.c                      |  9 +++++++++
  scripts/Makefile.lib                  |  3 +++
  scripts/gen_dtb_build_info.sh         | 12 ++++++++++++
  4 files changed, 25 insertions(+)
  create mode 100755 scripts/gen_dtb_build_info.sh







[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux