11a459660SWolfgang Denk# SPDX-License-Identifier: GPL-2.0+ 2bbb0b128SSimon Glass# 383d290c5STom Rini# Copyright (c) 2011 The Chromium OS Authors. 4bbb0b128SSimon Glass 5bbb0b128SSimon Glass# This Makefile builds the internal U-Boot fdt if CONFIG_OF_CONTROL is 6bbb0b128SSimon Glass# enabled. See doc/README.fdt-control for more details. 7bbb0b128SSimon Glass 8efcf8619SMasahiro YamadaDEVICE_TREE ?= $(CONFIG_DEFAULT_DEVICE_TREE:"%"=%) 9efcf8619SMasahiro Yamadaifeq ($(DEVICE_TREE),) 103284c8b8SMasahiro YamadaDEVICE_TREE := unset 11efcf8619SMasahiro Yamadaendif 12bbb0b128SSimon Glass 13d18926afSSimon Glassifneq ($(EXT_DTB),) 14d18926afSSimon GlassDTB := $(EXT_DTB) 1563b4b5baSSimon Glasselse 16*a3444bd0SMasahiro YamadaDTB := arch/$(ARCH)/dts/$(DEVICE_TREE).dtb 1763b4b5baSSimon Glassendif 18bbb0b128SSimon Glass 199bd76b80SGoldschmidt Simon$(obj)/dt-spl.dtb: $(DTB) $(objtree)/tools/fdtgrep FORCE 209bd76b80SGoldschmidt Simon $(call if_changed,fdtgrep) 219bd76b80SGoldschmidt Simon 223284c8b8SMasahiro Yamada$(obj)/dt.dtb: $(DTB) FORCE 23b9d1dbd4SMasahiro Yamada $(call if_changed,shipped) 24bbb0b128SSimon Glass 259bd76b80SGoldschmidt Simontargets += dt.dtb dt-spl.dtb 26bbb0b128SSimon Glass 27*a3444bd0SMasahiro Yamada$(DTB): arch-dtbs 283284c8b8SMasahiro Yamada $(Q)test -e $@ || ( \ 293284c8b8SMasahiro Yamada echo >&2; \ 303284c8b8SMasahiro Yamada echo >&2 "Device Tree Source is not correctly specified."; \ 313284c8b8SMasahiro Yamada echo >&2 "Please define 'CONFIG_DEFAULT_DEVICE_TREE'"; \ 323284c8b8SMasahiro Yamada echo >&2 "or build with 'DEVICE_TREE=<device_tree>' argument"; \ 333284c8b8SMasahiro Yamada echo >&2; \ 343284c8b8SMasahiro Yamada /bin/false) 353284c8b8SMasahiro Yamada 362737dfe0SStephen WarrenPHONY += arch-dtbs 373284c8b8SMasahiro Yamadaarch-dtbs: 38*a3444bd0SMasahiro Yamada $(Q)$(MAKE) $(build)=arch/$(ARCH)/dts dtbs 396ab6b2afSMasahiro Yamada 409bd76b80SGoldschmidt Simonifeq ($(CONFIG_SPL_BUILD),y) 419bd76b80SGoldschmidt Simonobj-$(CONFIG_OF_EMBED) := dt-spl.dtb.o 429bd76b80SGoldschmidt Simon# support "out-of-tree" build for dtb-spl 439bd76b80SGoldschmidt Simon$(obj)/dt-spl.dtb.o: $(obj)/dt-spl.dtb.S FORCE 449bd76b80SGoldschmidt Simon $(call if_changed_dep,as_o_S) 459bd76b80SGoldschmidt Simonelse 466ab6b2afSMasahiro Yamadaobj-$(CONFIG_OF_EMBED) := dt.dtb.o 479bd76b80SGoldschmidt Simonendif 486ab6b2afSMasahiro Yamada 499bd76b80SGoldschmidt Simondtbs: $(obj)/dt.dtb $(obj)/dt-spl.dtb 506ab6b2afSMasahiro Yamada @: 516ab6b2afSMasahiro Yamada 529bd76b80SGoldschmidt Simonclean-files := dt.dtb.S dt-spl.dtb.S 533284c8b8SMasahiro Yamada 543284c8b8SMasahiro Yamada# Let clean descend into dts directories 5517f2ffeaSLukas Auersubdir- += ../arch/arm/dts ../arch/microblaze/dts ../arch/mips/dts ../arch/sandbox/dts ../arch/x86/dts ../arch/powerpc/dts ../arch/riscv/dts 56