uboot/dts/Makefile
<<
>>
Prefs
   1# SPDX-License-Identifier: GPL-2.0+
   2#
   3# Copyright (c) 2011 The Chromium OS Authors.
   4
   5# This Makefile builds the internal U-Boot fdt if CONFIG_OF_CONTROL is
   6# enabled. See doc/README.fdt-control for more details.
   7
   8DEVICE_TREE ?= $(CONFIG_DEFAULT_DEVICE_TREE:"%"=%)
   9ifeq ($(DEVICE_TREE),)
  10DEVICE_TREE := unset
  11endif
  12
  13ifeq ($(CONFIG_OF_UPSTREAM),y)
  14ifeq ($(CONFIG_ARM64),y)
  15dt_dir := dts/upstream/src/arm64
  16else
  17dt_dir := dts/upstream/src/$(ARCH)
  18endif
  19else
  20dt_dir := arch/$(ARCH)/dts
  21endif
  22
  23ifneq ($(CONFIG_OF_UPSTREAM_INCLUDE_LOCAL_FALLBACK_DTBOS),)
  24local_dtbos := local-dtbos
  25else
  26local_dtbos :=
  27endif
  28
  29ifneq ($(EXT_DTB),)
  30DTB := $(EXT_DTB)
  31else
  32DTB := $(dt_dir)/$(DEVICE_TREE).dtb
  33endif
  34
  35$(obj)/dt-$(SPL_NAME).dtb: dts/dt.dtb $(objtree)/tools/fdtgrep FORCE
  36        mkdir -p $(dir $@)
  37        $(call if_changed,fdtgrep)
  38
  39ifeq ($(CONFIG_OF_DTB_PROPS_REMOVE),y)
  40$(obj)/dt.dtb: $(DTB) $(objtree)/tools/fdtgrep FORCE
  41        $(call if_changed,fdt_rm_props)
  42else
  43$(obj)/dt.dtb: $(DTB) FORCE
  44        $(call if_changed,shipped)
  45endif
  46
  47targets += dt.dtb
  48
  49$(DTB): arch-dtbs $(local_dtbos)
  50        $(Q)test -e $@ || (                                             \
  51        echo >&2;                                                       \
  52        echo >&2 "Device Tree Source ($@) is not correctly specified."; \
  53        echo >&2 "Please define 'CONFIG_DEFAULT_DEVICE_TREE'";          \
  54        echo >&2 "or build with 'DEVICE_TREE=<device_tree>' argument";  \
  55        echo >&2;                                                       \
  56        /bin/false)
  57
  58PHONY += arch-dtbs
  59arch-dtbs:
  60        $(Q)$(MAKE) $(build)=$(dt_dir) dtbs
  61
  62ifneq ($(CONFIG_OF_UPSTREAM_INCLUDE_LOCAL_FALLBACK_DTBOS),)
  63PHONY += local-dtbos
  64local-dtbos:
  65        $(Q)$(MAKE) $(build)=arch/$(ARCH)/dts dtbos
  66endif
  67
  68ifeq ($(CONFIG_XPL_BUILD),y)
  69obj-$(CONFIG_OF_EMBED) := dt-spl.dtb.o
  70# support "out-of-tree" build for dtb-spl
  71$(obj)/dt-spl.dtb.o: $(obj)/dt-spl.dtb.S FORCE
  72        $(call if_changed_dep,as_o_S)
  73else
  74obj-$(CONFIG_OF_EMBED) := dt.dtb.o
  75endif
  76
  77# Target for U-Boot proper
  78dtbs: $(obj)/dt.dtb
  79        @:
  80
  81# Target for SPL/TPL
  82spl_dtbs: $(obj)/dt-$(SPL_NAME).dtb
  83        @:
  84
  85clean-files := dt.dtb.S
  86
  87# Let clean descend into dts directories
  88subdir- += ../arch/arc/dts ../arch/arm/dts ../arch/m68k/dts ../arch/microblaze/dts      \
  89           ../arch/mips/dts ../arch/nios2/dts ../arch/powerpc/dts ../arch/riscv/dts     \
  90           ../arch/sandbox/dts ../arch/sh/dts ../arch/x86/dts ../arch/xtensa/dts        \
  91           ./upstream/src/arm64 ./upstream/src/$(ARCH)
  92