On Thu, Jan 04, 2024 at 01:51:12PM +0100, Denis OSTERLAND-HEIM wrote:
> Hi,
> 
> great work.
> There is also rules/host-dtc.make which maybe can be simplified.
> 
> -----Original Message-----
> From: ptxdist <ptxdist-boun...@pengutronix.de> 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 <la...@linux-mips.org>
> 
> Please note this package is not as symmetrical as the typical
> host-* and normal variants. Here the latest version is usually needed.

Right. It may be time to remove the special version handling in host-dtc
but that's a different discussion.

> 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 <christian.me...@t2data.com>
> Signed-off-by: Ladislav Michl <la...@linux-mips.org>
> ---
>  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 <la...@linux-mips.org> # Copyright 
> +(C) 2023 Christian Melki <christian.me...@t2data.com> # # 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.

Agreed.

> 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
> <la...@linux-mips.org>")
> +     @$(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));)

                /usr/bin/$(tool))$(ptx/nl))

Michael

> +
> +     @$(call install_finish, dtc)
> +
> +     @$(call touch)
> +
> +# vim: syntax=make
> --
> 2.39.2
> 



-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

Reply via email to