mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-21 12:25:27 +00:00
dts: Add ability to build fallback DTBOs from arch/$(ARCH)/dts
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. Add dedicated 'dtbos' target which builds only .dtbos and not .dtbs and in case CONFIG_OF_UPSTREAM_INCLUDE_LOCAL_FALLBACK_DTBOS 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 in case CONFIG_OF_UPSTREAM_INCLUDE_LOCAL_FALLBACK_DTBOS is enabled. Reviewed-by: Sumit Garg <sumit.garg@linaro.org> Signed-off-by: Marek Vasut <marex@denx.de>
This commit is contained in:
parent
608a31bdec
commit
a55c4836f3
4 changed files with 39 additions and 1 deletions
4
Makefile
4
Makefile
|
@ -1383,7 +1383,11 @@ of_list := "$(ext_dtb_list)"
|
||||||
of_list_dirs := $(dir $(EXT_DTB))
|
of_list_dirs := $(dir $(EXT_DTB))
|
||||||
else
|
else
|
||||||
of_list := $(CONFIG_OF_LIST)
|
of_list := $(CONFIG_OF_LIST)
|
||||||
|
ifneq ($(CONFIG_OF_UPSTREAM_INCLUDE_LOCAL_FALLBACK_DTBOS),)
|
||||||
|
of_list_dirs := $(dt_dir) arch/$(ARCH)/dts
|
||||||
|
else
|
||||||
of_list_dirs := $(dt_dir)
|
of_list_dirs := $(dt_dir)
|
||||||
|
endif
|
||||||
default_dt := $(if $(DEVICE_TREE),$(DEVICE_TREE),$(CONFIG_DEFAULT_DEVICE_TREE))
|
default_dt := $(if $(DEVICE_TREE),$(DEVICE_TREE),$(CONFIG_DEFAULT_DEVICE_TREE))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
16
dts/Kconfig
16
dts/Kconfig
|
@ -125,6 +125,22 @@ config OF_UPSTREAM_VENDOR
|
||||||
help
|
help
|
||||||
Select the vendor to build all devicetree files for.
|
Select the vendor to build all devicetree files for.
|
||||||
|
|
||||||
|
config OF_UPSTREAM_INCLUDE_LOCAL_FALLBACK_DTBOS
|
||||||
|
bool "Build local DTBOs as fallback for DTBOs missing upstream"
|
||||||
|
default n
|
||||||
|
depends on OF_UPSTREAM
|
||||||
|
help
|
||||||
|
Enable building DTBOs from arch/$(ARCH)/dts as a fallback for
|
||||||
|
DTBOs which are not part of Linux kernel upstream yet. This is
|
||||||
|
a stopgap measure to expedite OF_UPSTREAM switch for platforms
|
||||||
|
which already have main DT in Linux kernel upstream, but still
|
||||||
|
have leftover DTBOs in U-Boot tree.
|
||||||
|
|
||||||
|
Do not use this option, upstream your DTs and DTBOs instead.
|
||||||
|
If the upstreaming is in progress, use with utmost caution.
|
||||||
|
|
||||||
|
If unsure, say N.
|
||||||
|
|
||||||
choice
|
choice
|
||||||
prompt "Provider of DTB for DT control"
|
prompt "Provider of DTB for DT control"
|
||||||
depends on OF_CONTROL
|
depends on OF_CONTROL
|
||||||
|
|
14
dts/Makefile
14
dts/Makefile
|
@ -20,6 +20,12 @@ else
|
||||||
dt_dir := arch/$(ARCH)/dts
|
dt_dir := arch/$(ARCH)/dts
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifneq ($(CONFIG_OF_UPSTREAM_INCLUDE_LOCAL_FALLBACK_DTBOS),)
|
||||||
|
local_dtbos := local-dtbos
|
||||||
|
else
|
||||||
|
local_dtbos :=
|
||||||
|
endif
|
||||||
|
|
||||||
ifneq ($(EXT_DTB),)
|
ifneq ($(EXT_DTB),)
|
||||||
DTB := $(EXT_DTB)
|
DTB := $(EXT_DTB)
|
||||||
else
|
else
|
||||||
|
@ -40,7 +46,7 @@ endif
|
||||||
|
|
||||||
targets += dt.dtb
|
targets += dt.dtb
|
||||||
|
|
||||||
$(DTB): arch-dtbs
|
$(DTB): arch-dtbs $(local_dtbos)
|
||||||
$(Q)test -e $@ || ( \
|
$(Q)test -e $@ || ( \
|
||||||
echo >&2; \
|
echo >&2; \
|
||||||
echo >&2 "Device Tree Source ($@) is not correctly specified."; \
|
echo >&2 "Device Tree Source ($@) is not correctly specified."; \
|
||||||
|
@ -53,6 +59,12 @@ PHONY += arch-dtbs
|
||||||
arch-dtbs:
|
arch-dtbs:
|
||||||
$(Q)$(MAKE) $(build)=$(dt_dir) dtbs
|
$(Q)$(MAKE) $(build)=$(dt_dir) dtbs
|
||||||
|
|
||||||
|
ifneq ($(CONFIG_OF_UPSTREAM_INCLUDE_LOCAL_FALLBACK_DTBOS),)
|
||||||
|
PHONY += local-dtbos
|
||||||
|
local-dtbos:
|
||||||
|
$(Q)$(MAKE) $(build)=arch/$(ARCH)/dts dtbos
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_XPL_BUILD),y)
|
ifeq ($(CONFIG_XPL_BUILD),y)
|
||||||
obj-$(CONFIG_OF_EMBED) := dt-spl.dtb.o
|
obj-$(CONFIG_OF_EMBED) := dt-spl.dtb.o
|
||||||
# support "out-of-tree" build for dtb-spl
|
# support "out-of-tree" build for dtb-spl
|
||||||
|
|
|
@ -21,4 +21,10 @@ PHONY += dtbs
|
||||||
dtbs: $(addprefix $(obj)/, $(dtb-y))
|
dtbs: $(addprefix $(obj)/, $(dtb-y))
|
||||||
@:
|
@:
|
||||||
|
|
||||||
|
ifneq ($(CONFIG_OF_UPSTREAM_INCLUDE_LOCAL_FALLBACK_DTBOS),)
|
||||||
|
PHONY += dtbos
|
||||||
|
dtbos: $(addprefix $(obj)/, $(filter-out %.dtb,$(dtb-y)))
|
||||||
|
@:
|
||||||
|
endif
|
||||||
|
|
||||||
clean-files := *.dtb *.dtbo */*.dtb */*.dtbo *_HS
|
clean-files := *.dtb *.dtbo */*.dtb */*.dtbo *_HS
|
||||||
|
|
Loading…
Add table
Reference in a new issue