|
|
|
#----------------------------------------------------------------------
|
|
|
|
# Generate device tree image (dt.img)
|
|
|
|
#----------------------------------------------------------------------
|
|
|
|
ifeq ($(strip $(BOARD_CUSTOM_BOOTIMG_MK)),)
|
|
|
|
ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true)
|
|
|
|
ifneq ($(strip $(BOARD_KERNEL_PREBUILT_DT)),true)
|
|
|
|
|
|
|
|
ifeq ($(strip $(TARGET_CUSTOM_DTBTOOL)),)
|
|
|
|
DTBTOOL_NAME := dtbToolLineage
|
|
|
|
else
|
|
|
|
DTBTOOL_NAME := $(TARGET_CUSTOM_DTBTOOL)
|
|
|
|
endif
|
|
|
|
|
|
|
|
DTBTOOL := $(HOST_OUT_EXECUTABLES)/$(DTBTOOL_NAME)$(HOST_EXECUTABLE_SUFFIX)
|
|
|
|
|
|
|
|
INSTALLED_DTIMAGE_TARGET := $(PRODUCT_OUT)/dt.img
|
|
|
|
|
|
|
|
ifeq ($(strip $(TARGET_CUSTOM_DTBTOOL)),)
|
|
|
|
# dtbToolLineage will search subdirectories
|
|
|
|
possible_dtb_dirs = $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/
|
|
|
|
else
|
|
|
|
# Most specific paths must come first in possible_dtb_dirs
|
|
|
|
possible_dtb_dirs = $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/dts/ $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/
|
|
|
|
endif
|
|
|
|
|
|
|
|
define build-dtimage-target
|
|
|
|
$(call pretty,"Target dt image: $@")
|
|
|
|
$(hide) for dir in $(possible_dtb_dirs); do \
|
|
|
|
if [ -d "$$dir" ]; then \
|
|
|
|
dtb_dir="$$dir"; \
|
|
|
|
break; \
|
|
|
|
fi; \
|
|
|
|
done; \
|
|
|
|
$(DTBTOOL) $(BOARD_DTBTOOL_ARGS) -o $@ -s $(BOARD_KERNEL_PAGESIZE) -p $(KERNEL_OUT)/scripts/dtc/ "$$dtb_dir";
|
|
|
|
$(hide) chmod a+r $@
|
|
|
|
endef
|
|
|
|
|
|
|
|
ifeq ($(strip $(BOARD_KERNEL_LZ4C_DT)),true)
|
|
|
|
LZ4_DT_IMAGE := $(PRODUCT_OUT)/dt-lz4.img
|
|
|
|
endif
|
|
|
|
|
|
|
|
$(INSTALLED_DTIMAGE_TARGET): $(DTBTOOL) $(INSTALLED_KERNEL_TARGET)
|
|
|
|
$(build-dtimage-target)
|
|
|
|
ifeq ($(strip $(BOARD_KERNEL_LZ4C_DT)),true)
|
|
|
|
lz4 -9 < $@ > $(LZ4_DT_IMAGE) || lz4c -c1 -y $@ $(LZ4_DT_IMAGE)
|
|
|
|
$(hide) $(ACP) $(LZ4_DT_IMAGE) $@
|
|
|
|
endif
|
|
|
|
@echo "Made DT image: $@"
|
|
|
|
|
|
|
|
ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_DTIMAGE_TARGET)
|
|
|
|
ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_DTIMAGE_TARGET)
|
|
|
|
|
|
|
|
.PHONY: dtimage
|
|
|
|
dtimage: $(INSTALLED_DTIMAGE_TARGET)
|
|
|
|
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|