[PATCH 2/3] dts: Add ability to build DTOs only from arch/$(ARCH)/dts
Jan Kiszka
jan.kiszka at siemens.com
Mon Sep 30 08:10:43 CEST 2024
On 30.09.24 08:02, Sumit Garg wrote:
> + Jan
>
> Hi Marek,
>
> On Sat, 28 Sept 2024 at 03:20, Marek Vasut <marex at denx.de> wrote:
>>
>> Currently the enablement of OF_UPSTREAM results on the build system
>> searching for DTs only in dts/upstream/ . There are platforms which
>> use U-Boot specific DTBOs applied on top of U-Boot control DT during
>> SPL stage, and source DTs for these are located in arch/$(ARCH)/dtb.
>
> I would like to understand the need to maintain DTBOs separately from
> DTBs. Why aren't we pushing DTBOs to Linux kernel sources as we do for
> DTBs? Jan recently pushed those so-called U-Boot specific DTBOs for a
> TI platform which were accepted in the Linux kernel upstream. This
> patch will just deny the ability to build those DTBOs from dts
> upstream tree. IMHO, this takes a step backwards on the whole notion
> of OF_UPSTREAM.
Exactly - I was sent the other direction (get DTSOs upstream), and I'm
now only waiting for 6.12-rc1-dts so that the first round to make use of
that can be integrated into U-Boot [1]. Anything that would prevent that
here is not welcome anymore.
>
> If we really want a middle ground solution to allow migration to
> OF_UPSTREAM easier then we need to find a way to build DTBOs from both
> directories (local and upstream dts). I would imagine that will likely
> complicate building and packaging DTBOs.
I tried that, and I got the clear signal that it is not desired.
Jan
[1] https://github.com/siemens/u-boot/commits/jan/iot2050
>
> -Sumit
>
>>
>> Add dedicated 'dtbos' target which builds only .dtbos and not .dtbs and
>> in case OF_UPSTREAM is enabled, build this target for arch/$(ARCH)/dtb
>> to generate local U-Boot specific DTBOs.
>>
>> Adjust top level Makefile so binman would search for .dtb and .dtbo in
>> both OF_UPSTREAM specific paths and arch/$(ARCH)/dtb for the .dtbo case.
>>
>> Signed-off-by: Marek Vasut <marex at denx.de>
>> ---
>> Cc: "NXP i.MX U-Boot Team" <uboot-imx at nxp.com>
>> Cc: Caleb Connolly <caleb.connolly at linaro.org>
>> Cc: Christoph Niedermaier <cniedermaier at dh-electronics.com>
>> Cc: Fabio Estevam <festevam at gmail.com>
>> Cc: Heinrich Schuchardt <xypron.glpk at gmx.de>
>> Cc: Jonas Karlman <jonas at kwiboo.se>
>> Cc: Lothar Rubusch <l.rubusch at gmail.com>
>> Cc: Michal Simek <michal.simek at amd.com>
>> Cc: Nobuhiro Iwamatsu <iwamatsu at nigauri.org>
>> Cc: Rasmus Villemoes <rasmus.villemoes at prevas.dk>
>> Cc: Simon Glass <sjg at chromium.org>
>> Cc: Stefano Babic <sbabic at denx.de>
>> Cc: Sumit Garg <sumit.garg at linaro.org>
>> Cc: Tom Rini <trini at konsulko.com>
>> Cc: u-boot at dh-electronics.com
>> Cc: u-boot at lists.denx.de
>> ---
>> Makefile | 5 ++++-
>> dts/Makefile | 11 +++++++++--
>> scripts/Makefile.dts | 5 ++++-
>> 3 files changed, 17 insertions(+), 4 deletions(-)
>>
>> diff --git a/Makefile b/Makefile
>> index 525576f987d..fba8e48681e 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -1194,6 +1194,8 @@ else
>> dt_dir := arch/$(ARCH)/dts
>> endif
>>
>> +local_dto_dir := arch/$(ARCH)/dts
>> +
>> ifeq ($(CONFIG_MULTI_DTB_FIT),y)
>>
>> ifeq ($(CONFIG_MULTI_DTB_FIT_LZO),y)
>> @@ -1377,7 +1379,8 @@ cmd_binman = $(srctree)/tools/binman/binman $(if $(BINMAN_DEBUG),-D) \
>> build -u -d u-boot.dtb -O . -m \
>> --allow-missing $(if $(BINMAN_ALLOW_MISSING),--ignore-missing) \
>> -I . -I $(srctree) -I $(srctree)/board/$(BOARDDIR) \
>> - -I $(dt_dir) -a of-list=$(CONFIG_OF_LIST) \
>> + -I $(dt_dir) -I $(local_dto_dir) \
>> + -a of-list=$(CONFIG_OF_LIST) \
>> $(foreach f,$(BINMAN_INDIRS),-I $(f)) \
>> -a atf-bl31-path=${BL31} \
>> -a tee-os-path=${TEE} \
>> diff --git a/dts/Makefile b/dts/Makefile
>> index d6c2c9daf31..f872a867667 100644
>> --- a/dts/Makefile
>> +++ b/dts/Makefile
>> @@ -11,12 +11,16 @@ DEVICE_TREE := unset
>> endif
>>
>> ifeq ($(CONFIG_OF_UPSTREAM),y)
>> +local_dtbos := local-dtbos
>> +local_dtbo_dir := arch/$(ARCH)/dts
>> ifeq ($(CONFIG_ARM64),y)
>> dt_dir := dts/upstream/src/arm64
>> else
>> dt_dir := dts/upstream/src/$(ARCH)
>> endif
>> else
>> +local_dtbos :=
>> +local_dtbo_dir :=
>> dt_dir := arch/$(ARCH)/dts
>> endif
>>
>> @@ -40,7 +44,7 @@ endif
>>
>> targets += dt.dtb
>>
>> -$(DTB): arch-dtbs
>> +$(DTB): arch-dtbs $(local_dtbos)
>> $(Q)test -e $@ || ( \
>> echo >&2; \
>> echo >&2 "Device Tree Source ($@) is not correctly specified."; \
>> @@ -49,10 +53,13 @@ $(DTB): arch-dtbs
>> echo >&2; \
>> /bin/false)
>>
>> -PHONY += arch-dtbs
>> +PHONY += arch-dtbs local-dtbos
>> arch-dtbs:
>> $(Q)$(MAKE) $(build)=$(dt_dir) dtbs
>>
>> +local-dtbos:
>> + $(Q)$(MAKE) $(build)=$(local_dtbo_dir) dtbos
>> +
>> ifeq ($(CONFIG_SPL_BUILD),y)
>> obj-$(CONFIG_OF_EMBED) := dt-spl.dtb.o
>> # support "out-of-tree" build for dtb-spl
>> diff --git a/scripts/Makefile.dts b/scripts/Makefile.dts
>> index 1fe142f2bbf..f4d3a37010a 100644
>> --- a/scripts/Makefile.dts
>> +++ b/scripts/Makefile.dts
>> @@ -17,8 +17,11 @@ endif
>>
>> targets += $(dtb-y)
>>
>> -PHONY += dtbs
>> +PHONY += dtbs dtbos
>> dtbs: $(addprefix $(obj)/, $(dtb-y))
>> @:
>>
>> +dtbos: $(addprefix $(obj)/, $(filter-out %.dtb,$(dtb-y)))
>> + @:
>> +
>> clean-files := *.dtb *.dtbo */*.dtb */*.dtbo *_HS
>> --
>> 2.45.2
>>
--
Siemens AG, Technology
Linux Expert Center
More information about the U-Boot
mailing list