mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Christian Melki <christian.melki@t2data.com>
To: Michael Olbrich <m.olbrich@pengutronix.de>
Cc: oss-lists@triops.cz, ptxdist@pengutronix.de
Subject: Re: [ptxdist] [EXT] Re: [PATCH] libfdt: New package.
Date: Fri, 5 Jan 2024 09:53:31 +0100	[thread overview]
Message-ID: <e136cd67-8778-4151-b1cd-39b72ca70334@t2data.com> (raw)
In-Reply-To: <ZZezviEyIpXyN7-U@pengutronix.de>

On 1/5/24 8:46 AM, Michael Olbrich wrote:
> 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-bounces@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 <ladis@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.melki@t2data.com>
>> Signed-off-by: Ladislav Michl <ladis@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 <ladis@linux-mips.org> # 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_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)

Is it fine to do like this or should it be split into MAKE_ENV
with $(CROSS_ENV) and MAKE_OPT be free from CROSS things?

>> +
>> +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
>> <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));)
> 
> 		/usr/bin/$(tool))$(ptx/nl))
> 
> Michael
> 
>> +
>> +	@$(call install_finish, dtc)
>> +
>> +	@$(call touch)
>> +
>> +# vim: syntax=make
>> --
>> 2.39.2
>>
> 
> 
> 



  reply	other threads:[~2024-01-05  8:55 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-04 12:51 Denis OSTERLAND-HEIM
2024-01-05  7:46 ` Michael Olbrich
2024-01-05  8:53   ` Christian Melki [this message]
2024-01-05  9:01     ` Michael Olbrich

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=e136cd67-8778-4151-b1cd-39b72ca70334@t2data.com \
    --to=christian.melki@t2data.com \
    --cc=m.olbrich@pengutronix.de \
    --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