From: Christian Melki <christian.melki@t2data.com>
To: oss-lists@triops.cz
Cc: ptxdist@pengutronix.de
Subject: Re: [ptxdist] [PATCH] libfdt: New package.
Date: Thu, 4 Jan 2024 10:26:42 +0100 [thread overview]
Message-ID: <f2fecb30-b999-4515-9dde-95818c9dbad7@t2data.com> (raw)
In-Reply-To: <ZZZ2YbsNEaqD9isi@lenoch>
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.
>
>> The use of libfdt is separate from the host-dtc usage too,
>> so whatever version you'd use for external device trees are probably
>> not the same as target lifdt. There you'd typically want the latest
>> version.
>>
>> 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.melki@t2data.com>
>> ---
>> rules/libfdt.in | 9 +++++++
>> rules/libfdt.make | 69 +++++++++++++++++++++++++++++++++++++++++++++++
>> 2 files changed, 78 insertions(+)
>> create mode 100644 rules/libfdt.in
>> create mode 100644 rules/libfdt.make
>>
>> diff --git a/rules/libfdt.in b/rules/libfdt.in
>> new file mode 100644
>> index 000000000..3e30062e9
>> --- /dev/null
>> +++ b/rules/libfdt.in
>> @@ -0,0 +1,9 @@
>> +## SECTION=system_libraries
>> +
>> +menuconfig LIBFDT
>> + tristate
>> + prompt "libfdt "
>> + help
>> + libfdt is the flattend device tree library.
>> + It's technically a part of the device tree compiler code,
>> + but for target uses, libfdt is sometimes required.
>> \ No newline at end of file
>> diff --git a/rules/libfdt.make b/rules/libfdt.make
>> new file mode 100644
>> index 000000000..a7f5cc566
>> --- /dev/null
>> +++ b/rules/libfdt.make
>> @@ -0,0 +1,69 @@
>> +# -*-makefile-*-
>> +#
>> +# Copyright (C) 2023 Christian Melki <christian.melki@t2data.com>
>> +#
>> +# For further information about the PTXdist project and license conditions
>> +# see the README file.
>> +#
>> +
>> +#
>> +# We provide this package
>> +#
>> +PACKAGES-$(PTXCONF_LIBFDT) += libfdt
>> +
>> +#
>> +# Paths and names
>> +#
>> +LIBFDT_VERSION := 1.7.0
>> +LIBFDT_MD5 := f8b4469ad89f4b882091895ec60dde6b
>> +LIBFDT := dtc-$(LIBFDT_VERSION)
>> +LIBFDT_SUFFIX := tar.gz
>> +LIBFDT_URL := https://git.kernel.org/pub/scm/utils/dtc/dtc.git/snapshot/$(LIBFDT).$(LIBFDT_SUFFIX)
>> +LIBFDT_SOURCE := $(SRCDIR)/$(LIBFDT).$(LIBFDT_SUFFIX)
>> +LIBFDT_DIR := $(BUILDDIR)/$(LIBFDT)
>> +LIBFDT_LICENSE := BSD-2-Clause OR GPL-2.0
>> +LIBFDT_LICENSE_FILES := \
>> + file://README.license;md5=a1eb22e37f09df5b5511b8a278992d0e \
>> + file://GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
>> + file://BSD-2-Clause;md5=5d6306d1b08f8df623178dfd81880927
>> +
>> +# ----------------------------------------------------------------------------
>> +# Prepare
>> +# ----------------------------------------------------------------------------
>> +
>> +LIBFDT_CONF_TOOL := NO
>> +
>> +LIBFDT_MAKE_ENV := \
>> + $(CROSS_ENV)
>> +
>> +LIBFDT_MAKE_OPT := \
>> + PREFIX=/usr \
>> + NO_PYTHON=1 \
>> + NO_VALGRIND=1 \
>> + NO_YAML=1
>> +
>> +LIBFDT_INSTALL_OPT := \
>> + $(LIBFDT_MAKE_OPT) \
>> + install-includes \
>> + install-lib
>> +
>> +# ----------------------------------------------------------------------------
>> +# Target-Install
>> +# ----------------------------------------------------------------------------
>> +
>> +$(STATEDIR)/libfdt.targetinstall:
>> + @$(call targetinfo)
>> +
>> + @$(call install_init, libfdt)
>> + @$(call install_fixup, libfdt,PRIORITY,optional)
>> + @$(call install_fixup, libfdt,SECTION,base)
>> + @$(call install_fixup, libfdt,AUTHOR,"Christian Melki <christian.melki@t2data.com>")
>> + @$(call install_fixup, libfdt,DESCRIPTION,missing)
>> +
>> + @$(call install_lib, libfdt, 0, 0, 0644, libfdt-$(LIBFDT_VERSION))
>> +
>> + @$(call install_finish, libfdt)
>> +
>> + @$(call touch)
>> +
>> +# vim: syntax=make
>> --
>> 2.34.1
>>
>
> PACKAGES-$(PTXCONF_DTC) += dtc
>
> #
> # Paths and names
> #
> DTC_VERSION := 1.6.0
> DTC_MD5 := cd36ac756290597f3cf1c5b6cfe12e77
> DTC := dtc-v$(DTC_VERSION)
> DTC_SUFFIX := tar.gz
> DTC_URL := https://git.kernel.org/pub/scm/utils/dtc/dtc.git/snapshot/$(DTC).$(DTC_SUFFIX)
> DTC_SOURCE := $(SRCDIR)/$(DTC).$(DTC_SUFFIX)
> DTC_DIR := $(BUILDDIR)/$(DTC)
> DTC_LICENSE := GPL-2.0-only
>
> # ----------------------------------------------------------------------------
> # 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-lib
>
> # ----------------------------------------------------------------------------
> # Target-Install
> # ----------------------------------------------------------------------------
>
> DTC_BIN-y :=
> 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 <ladis@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));)
>
> @$(call install_finish, dtc)
>
> @$(call touch)
>
> # vim: syntax=make
>
next prev parent reply other threads:[~2024-01-04 9:29 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-03 19:23 Christian Melki
2024-01-04 9:12 ` Ladislav Michl
2024-01-04 9:26 ` Christian Melki [this message]
2024-01-04 11:16 ` Ladislav Michl
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f2fecb30-b999-4515-9dde-95818c9dbad7@t2data.com \
--to=christian.melki@t2data.com \
--cc=oss-lists@triops.cz \
--cc=ptxdist@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox