Re: [PATCH v13 0/7] dtc: Dynamic DT support
From: David Gibson <hidden>
Date: 2016-12-09 05:57:09
On Wed, Dec 07, 2016 at 02:48:16PM +0200, Pantelis Antoniou wrote:
This patchset adds Dynamic DT support in the DTC compiler
as used in a number of boards like the beaglebone/rpi/chip and others.
The first patch documents the internals of overlay generation, while
the second one adds dynamic object/overlay support proper.
The third patch adds a test method that can is used by the subsequent
patch which adds a few overlay tests verifying operation.
The following 3 patches add support for the syntactic sugar version
of &foo { }; in a similar manner.
This patchset is against DTC mainline and is also available for a pull
request from https://github.com/pantoniou/dtc/tree/overlaysOk, I've merged patches 1-4 into mainline, along with a bunch of minor fixes of my own on top. 5..7 (the start of the new) I want to hold off on for now, to thrash out the details of what we want a new cleaner format to look like a bit more thoroughly.
Regards
-- Pantelis
Changes since v12:
* Dropped DTBO magic option completely.
* Dropped fixup generation option.
* Renamed dstversionflags to dstflags
* Drop support for the new style /plugin/ tag.
Changes since v11:
* Syntax and grammatical fixes to the documentation.
* Renamed options and internal variables controlling generation of symbols
and fixups.
* Rename version flags to specify that they refer to DTS version.
* Made sure that no symbols/fixup nodes are only generated if they contain
entries.
Changes since v10:
* Split out the syntactic sugar version of &foo { }; into a different
patches to make things clearer.
* Reworked a bit the arguments passed to fixup node generation method
making things simpler and utilize common methodology.
* Avoid string parsing the full path using the node walking instead for
local fixup generation.
* Added an option to suppress generation of fixup nodes on base trees.
* Added automatic generation of symbols and fixups when compiling a
plugin.
* Minor rework according to maintainer requests.
Changes since v9:
* Reversed -M switch to by default use new DTBO magic value.
* Removed global versionflags in the parser by using inherited
attributes.
* build_node instead of malloc at add_orphan_node().
* Do not use escape for path copy
* Do not generate /plugin/ when generating a dts file even when
the plugin flag is set..
Changes since v8:
* Removed extra member of boot_info in each node; passing boot_info
parameter to the check methods instead.
* Reworked yacc syntax that supports both old and new plugin syntax
* Added handling for new magic number (enabled by 'M' switch).
* Dropped dtbo/asmo formats.
* Added overlay testsuite.
* Addressed last version maintainer comments.
Changes since v7:
* Dropped xasprintf & backward compatibility patch
* Rebased against dgibson's overlay branch
* Minor doc wording fixes.
Changes since v6:
* Introduced xasprintf
* Added append_to_property and used it
* Changed some die()'s to assert
* Reordered node generation to respect sort
* Addressed remaining maintainer changes from v6
Changes since v5:
* Rebase to latest dtc version.
* Addressed all the maintainer requested changes from v5
* Added new magic value for dynamic objects and new format
Changes since v4:
* Rebase to latest dtc version.
* Completely redesigned the generation of resolution data.
Now instead of being generated as part of blob generation
they are created in the live tree.
* Consequently the patchset is much smaller.
* Added -A auto-label alias generation option.
* Addressed maintainer comments.
* Added syntactic sugar for overlays in the form of .dtsi
* Added /dts-v1/ /plugin/ preferred plugin form and deprecate
the previous form (although still works for backward compatibility)
Changes since v3:
* Rebase to latest dtc version.
Changes since v2:
* Split single patch to a patchset.
* Updated to dtc mainline.
* Changed __local_fixups__ format
* Clean up for better legibility.
Pantelis Antoniou (7):
dtc: Document the dynamic plugin internals
dtc: Plugin and fixup support
tests: Add check_path test
tests: Add overlay tests
overlay: Documentation for the overlay sugar syntax
overlay: Add syntactic sugar version of overlays
tests: Add a test for overlays syntactic sugar
Documentation/dt-object-internal.txt | 327 +++++++++++++++++++++++++++++++++++
Documentation/manual.txt | 21 ++-
checks.c | 8 +-
dtc-lexer.l | 5 +
dtc-parser.y | 48 ++++-
dtc.c | 33 +++-
dtc.h | 17 +-
flattree.c | 2 +-
fstree.c | 2 +-
livetree.c | 291 ++++++++++++++++++++++++++++++-
tests/.gitignore | 1 +
tests/Makefile.tests | 3 +-
tests/check_path.c | 82 +++++++++
tests/overlay_base_fixups.dts | 22 +++
tests/overlay_overlay_dtc.dts | 1 +
tests/overlay_overlay_simple.dts | 12 ++
tests/run_tests.sh | 38 ++++
17 files changed, 898 insertions(+), 15 deletions(-)
create mode 100644 Documentation/dt-object-internal.txt
create mode 100644 tests/check_path.c
create mode 100644 tests/overlay_base_fixups.dts
create mode 100644 tests/overlay_overlay_simple.dts-- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
Attachments
- signature.asc [application/pgp-signature] 819 bytes