mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
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
> 



  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