Hi, great work. There is also rules/host-dtc.make which maybe can be simplified. -----Original Message----- From: ptxdist On Behalf Of Ladislav Michl Sent: Thursday, January 4, 2024 12:16 PM To: ptxdist@pengutronix.de Subject: [EXT] Re: [ptxdist] [PATCH] libfdt: New package. [EXTERNAL EMAIL] Hi Christian! On Thu, Jan 04, 2024 at 10:26:42AM +0100, Christian Melki wrote: > Hi Ladis, > > On 1/4/24 10:12 AM, Ladislav Michl wrote: > > Hi, > > > > On Wed, Jan 03, 2024 at 08:23:52PM +0100, Christian Melki wrote: > > > Add the device-tree-compiler source as libfdt. > > > I guess the package could have been named dtc as a target variant > > > with libfdt, but I don't know of any uses of the dtc on target > > > environments. > > > > Appended my version created about two years ago... Those DTC tools > > were used to patch devicetree during on field board upgrade when > > moving from ancient kernel. Flash repartioning was part of that > > upgrade as well as use of RAUC. Basically all userspace was moved to > > ramdisk, detached from flash, new image was prepared and flashed at > > once - single point of failure, board was dead when this failed, but > > as far as I know, it never happened. So yes, dtc on target > > environment is very usefull :) > > > > Oh. Didn't know you already had a version. > > I would probably have written my own tool using libfdt, integrated > into something else. :) But that isn't saying there is no need for > anyone. > > > > So the only use I can think of is libfdt. I think the name is more > > > accurate towards usage, but it isn't as symmetrical as the typical > > > host-* and normal variants. > > > > In case you reconsider, I'll merge your and my variant (I didn't > > bother with licenses as it was part of local BSP). > > I'll gladly reconsider. It's perfectly fine if there are usecases. > Please go ahead and do a merge if you like. > But keep binaries as optional. I prefer it that way. > > Either way, libfdt needs to happen on target because of qemu afaict. Yes. I expect qemu select DTC once someone (hint, hint) updates qemu :) Here's updated version, please give it a try. -- >8 -- Subject: [PATCH] dtc: new package From: Ladislav Michl Please note this package is not as symmetrical as the typical host-* and normal variants. Here the latest version is usually needed. This work is prepping for qemu 8.2.0+, as it requires libfdt as a separate library. It has stopped providing one internally. Signed-off-by: Christian Melki Signed-off-by: Ladislav Michl --- rules/dtc.in | 36 +++++++++++++++++++++++ rules/dtc.make | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 rules/dtc.in create mode 100644 rules/dtc.make diff --git a/rules/dtc.in b/rules/dtc.in new file mode 100644 index 000000000..2edb6f925 --- /dev/null +++ b/rules/dtc.in @@ -0,0 +1,36 @@ +## SECTION=system_libraries +menuconfig DTC + tristate + prompt "dtc " + help + Device Tree Compiler (dtc) toolchain. While dtc itself is + occasionally needed for device tree manipulaton on the + target, libfdt may be required. + +if DTC + +config DTC_DTC + bool + prompt "dtc" + +config DTC_DTDIFF + bool + prompt "dtdiff" + +config DTC_FDTDUMP + bool + prompt "fdtdump" + +config DTC_FDTGET + bool + prompt "fdtget" + +config DTC_FDTOVERLAY + bool + prompt "fdtoverlay" + +config DTC_FDTPUT + bool + prompt "fdtput" + +endif diff --git a/rules/dtc.make b/rules/dtc.make new file mode 100644 index 000000000..d0e6a7617 --- /dev/null +++ b/rules/dtc.make @@ -0,0 +1,80 @@ +# -*-makefile-*- +# +# Copyright (C) 2022 Ladislav Michl # Copyright +(C) 2023 Christian Melki # # For further +information about the PTXdist project and license conditions # see the +README file. +# + +# +# We provide this package +# +PACKAGES-$(PTXCONF_DTC) += dtc + +# +# Paths and names +# +DTC_VERSION := 1.7.0 +DTC_MD5 := 58f007905843f6ed6cecf820eeada0ef +DTC := dtc-v$(DTC_VERSION) +DTC_SUFFIX := tar.gz +DTC_URL := https://git.kernel.org/pub/scm/utils/dtc/dtc.git/snapshot/$(DTC).$(DTC_SUFFI X) +DTC_SOURCE := $(SRCDIR)/$(DTC).$(DTC_SUFFIX) +DTC_DIR := $(BUILDDIR)/$(DTC) +DTC_LICENSE := BSD-2-Clause OR GPL-2.0 +DTC_LICENSE_FILES := \ + file://README.license;md5=a1eb22e37f09df5b5511b8a278992d0e \ + file://GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://BSD-2-Clause;md5=5d6306d1b08f8df623178dfd81880927 + +# +----------------------------------------------------------------------- +----- +# Prepare +# +----------------------------------------------------------------------- +----- + +DTC_CONF_TOOL := NO +DTC_MAKE_OPT := \ + PREFIX=/usr \ + NO_PYTHON=1 \ + NO_VALGRIND=1 \ + NO_YAML=1 \ + $(CROSS_ENV_CC) + +DTC_INSTALL_OPT := \ + $(DTC_MAKE_OPT) \ + install-bin \ + install-includes \ + install-lib + +# +----------------------------------------------------------------------- +----- +# Target-Install +# +----------------------------------------------------------------------- +----- + +DTC_BIN-y := DTC_BIN- is not defined AFAIK it is okay to append to a not yet defined symbol I would suggest to either define both or none. Regards Denis +DTC_BIN-$(PTXCONF_DTC_DTC) += dtc +DTC_BIN-$(PTXCONF_DTC_DTDIFF) += dtdiff +DTC_BIN-$(PTXCONF_DTC_FDTDUMP) += fdtdump +DTC_BIN-$(PTXCONF_DTC_FDTGET) += fdtget +DTC_BIN-$(PTXCONF_DTC_FDTOVERLAY) += fdtoverlay +DTC_BIN-$(PTXCONF_DTC_FDTPUT) += fdtput + +$(STATEDIR)/dtc.targetinstall: + @$(call targetinfo) + + @$(call install_init, dtc) + @$(call install_fixup, dtc,PRIORITY,optional) + @$(call install_fixup, dtc,SECTION,base) + @$(call install_fixup, dtc,AUTHOR,"Ladislav Michl ") + @$(call install_fixup, dtc,DESCRIPTION,missing) + + @$(call install_lib, dtc, 0, 0, 0644, libfdt-$(DTC_VERSION)) + + @$(foreach tool, $(DTC_BIN-y), \ + $(call install_copy, dtc, 0, 0, 0755, -, \ + /usr/bin/$(tool));) + + @$(call install_finish, dtc) + + @$(call touch) + +# vim: syntax=make -- 2.39.2