On Wed, 2023-04-26 at 09:22 +0200, Petr Kubizňák wrote: > Add DT_FILES variable to allow the user of the class to select specific > dts files to build. This is useful for packages featuring dts files > for multiple machines. > > To make DT_FILES consistent with KERNEL_DEVICETREE, the list works > with both dts and dtb files. > > Signed-off-by: Petr Kubizňák <kubiz...@2n.com> > --- > meta/classes-recipe/devicetree.bbclass | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/meta/classes-recipe/devicetree.bbclass > b/meta/classes-recipe/devicetree.bbclass > index ed2a92e447..bd50d7fa1d 100644 > --- a/meta/classes-recipe/devicetree.bbclass > +++ b/meta/classes-recipe/devicetree.bbclass > @@ -53,8 +53,10 @@ KERNEL_INCLUDE ??= " \ > > DT_INCLUDE[doc] = "Search paths to be made available to both the device tree > compiler and preprocessor for inclusion." > DT_INCLUDE ?= "${DT_FILES_PATH} ${KERNEL_INCLUDE}" > -DT_FILES_PATH[doc] = "Defaults to source directory, can be used to select > dts files that are not in source (e.g. generated)." > +DT_FILES_PATH[doc] = "Path to the directory containing dts files to build. > Defaults to source directory." > DT_FILES_PATH ?= "${S}" > +DT_FILES[doc] = "Space-separated list of dts or dtb files (relative to > DT_FILES_PATH) to build. If empty, all dts files are built." > +DT_FILES ?= "" > > DT_PADDING_SIZE[doc] = "Size of padding on the device tree blob, used as > extra space typically for additional properties during boot." > DT_PADDING_SIZE ??= "0x3000" > @@ -125,9 +127,12 @@ def devicetree_compile(dtspath, includes, d): > subprocess.run(dtcargs, check = True, stdout=subprocess.PIPE, > stderr=subprocess.STDOUT) > > python devicetree_do_compile() { > + import re > includes = expand_includes("DT_INCLUDE", d) > + dtfiles = d.getVar("DT_FILES").split() > + dtfiles = [ re.sub(r"\.dtbo?$", ".dts", dtfile) for dtfile in dtfiles ] > listpath = d.getVar("DT_FILES_PATH") > - for dts in os.listdir(listpath): > + for dts in dtfiles or os.listdir(listpath): > dtspath = os.path.join(listpath, dts) > try: > if not(os.path.isfile(dtspath)) or not(dts.endswith(".dts") or > devicetree_source_is_overlay(dtspath)):
I've taken this but could you send a patch to the documentation to add this variable to the glossary and to the devicetree class section please? Thanks, Richard
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#180865): https://lists.openembedded.org/g/openembedded-core/message/180865 Mute This Topic: https://lists.openembedded.org/mt/98510103/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-