blob: ddd4c983a65a4d04703833fe5244ac0ddb5b6e6d [file] [log] [blame]
Michael Bestas8d6c4372016-08-26 01:12:08 +03001#----------------------------------------------------------------------
2# Generate device tree image (dt.img)
3#----------------------------------------------------------------------
4ifeq ($(strip $(BOARD_CUSTOM_BOOTIMG_MK)),)
5ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true)
Simon Shields87b78602018-04-05 15:02:29 +10006INSTALLED_DTIMAGE_TARGET := $(PRODUCT_OUT)/dt.img
7
8ifeq ($(strip $(BOARD_KERNEL_PREBUILT_DT)),)
Michael Bestas8d6c4372016-08-26 01:12:08 +03009
10ifeq ($(strip $(TARGET_CUSTOM_DTBTOOL)),)
karthikkm0071d8c9d02018-04-22 21:30:31 +053011DTBTOOL_NAME := dtbToolLineage
Michael Bestas8d6c4372016-08-26 01:12:08 +030012else
13DTBTOOL_NAME := $(TARGET_CUSTOM_DTBTOOL)
14endif
15
16DTBTOOL := $(HOST_OUT_EXECUTABLES)/$(DTBTOOL_NAME)$(HOST_EXECUTABLE_SUFFIX)
17
Michael Bestas8d6c4372016-08-26 01:12:08 +030018ifeq ($(strip $(TARGET_CUSTOM_DTBTOOL)),)
19# dtbToolCM will search subdirectories
20possible_dtb_dirs = $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/
21else
22# Most specific paths must come first in possible_dtb_dirs
23possible_dtb_dirs = $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/dts/ $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/
24endif
25
26define build-dtimage-target
27 $(call pretty,"Target dt image: $@")
28 $(hide) for dir in $(possible_dtb_dirs); do \
29 if [ -d "$$dir" ]; then \
30 dtb_dir="$$dir"; \
31 break; \
32 fi; \
33 done; \
34 $(DTBTOOL) $(BOARD_DTBTOOL_ARGS) -o $@ -s $(BOARD_KERNEL_PAGESIZE) -p $(KERNEL_OUT)/scripts/dtc/ "$$dtb_dir";
35 $(hide) chmod a+r $@
36endef
37
Dan Pasanen069194a2017-01-24 14:09:10 -060038ifeq ($(strip $(BOARD_KERNEL_LZ4C_DT)),true)
39LZ4_DT_IMAGE := $(PRODUCT_OUT)/dt-lz4.img
40endif
41
Michael Bestas8d6c4372016-08-26 01:12:08 +030042$(INSTALLED_DTIMAGE_TARGET): $(DTBTOOL) $(INSTALLED_KERNEL_TARGET)
43 $(build-dtimage-target)
Dan Pasanen069194a2017-01-24 14:09:10 -060044ifeq ($(strip $(BOARD_KERNEL_LZ4C_DT)),true)
45 lz4 -9 < $@ > $(LZ4_DT_IMAGE) || lz4c -c1 -y $@ $(LZ4_DT_IMAGE)
46 $(hide) $(ACP) $(LZ4_DT_IMAGE) $@
47endif
Michael Bestas8d6c4372016-08-26 01:12:08 +030048 @echo "Made DT image: $@"
49
Simon Shields87b78602018-04-05 15:02:29 +100050else
51
52$(INSTALLED_DTIMAGE_TARGET) : $(BOARD_KERNEL_PREBUILT_DT) | $(ACP)
53 $(transform-prebuilt-to-target)
54
55endif # BOARD_KERNEL_PREBUILT_DT
56
Michael Bestas8d6c4372016-08-26 01:12:08 +030057ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_DTIMAGE_TARGET)
58ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_DTIMAGE_TARGET)
59
60.PHONY: dtimage
61dtimage: $(INSTALLED_DTIMAGE_TARGET)
62
Simon Shields87b78602018-04-05 15:02:29 +100063
Michael Bestas8d6c4372016-08-26 01:12:08 +030064endif
65endif