2 # Copyright (c) 2011 The Chromium OS Authors.
4 # SPDX-License-Identifier: GPL-2.0+
7 # This Makefile builds the internal U-Boot fdt if CONFIG_OF_CONTROL is
8 # enabled. See doc/README.fdt-control for more details.
10 DEVICE_TREE ?
= $(CONFIG_DEFAULT_DEVICE_TREE
:"%"=%)
11 ifeq ($(DEVICE_TREE
),)
15 ARCH_PATH
:= arch
/$(ARCH
)/dts
16 dtb_depends
:= arch-dtbs
21 DTB
:= $(ARCH_PATH
)/$(DEVICE_TREE
).dtb
22 dtb_depends
+= $(DTB
:.dtb
=.dts
)
25 $(obj
)/dt-spl.dtb
: $(DTB
) $(objtree
)/tools
/fdtgrep FORCE
26 $(call if_changed
,fdtgrep
)
28 $(obj
)/dt.dtb
: $(DTB
) FORCE
29 $(call if_changed
,shipped
)
31 targets
+= dt.dtb dt-spl.dtb
33 $(DTB
): $(dtb_depends
)
35 $(Q
)$(MAKE
) $(build
)=$(ARCH_PATH
) $@
39 echo
>&2 "Device Tree Source is not correctly specified."; \
40 echo
>&2 "Please define 'CONFIG_DEFAULT_DEVICE_TREE'"; \
41 echo
>&2 "or build with 'DEVICE_TREE=<device_tree>' argument"; \
46 $(Q
)$(MAKE
) $(build
)=$(ARCH_PATH
) dtbs
48 .SECONDARY
: $(obj
)/dt.dtb.S
$(obj
)/dt-spl.dtb.S
51 ifeq ($(CONFIG_SPL_BUILD
),y
)
52 obj-
$(CONFIG_OF_EMBED
) := dt-spl.dtb.o
53 # support "out-of-tree" build for dtb-spl
54 $(obj
)/dt-spl.dtb.o
: $(obj
)/dt-spl.dtb.S FORCE
55 $(call if_changed_dep
,as_o_S
)
57 obj-
$(CONFIG_OF_EMBED
) := dt.dtb.o
60 dtbs
: $(obj
)/dt.dtb
$(obj
)/dt-spl.dtb
63 clean-files
:= dt.dtb.S dt-spl.dtb.S
65 # Let clean descend into dts directories
66 subdir-
+= ..
/arch
/arm
/dts ..
/arch
/microblaze
/dts ..
/arch
/mips
/dts ..
/arch
/sandbox
/dts ..
/arch
/x86
/dts