aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorljzyal <ljzyal@gmail.com>2015-05-25 23:02:46 +0800
committerOptX <lxseibel@gmail.com>2015-05-28 19:18:18 +0200
commitbe26bf7bf66c91f7463363c35ec881804dad0758 (patch)
tree1ce5a1b96a9c928bb722e3961976a7b00c79e121
parent880ee16ab330b866c9d62de6e81f8d89fe26790b (diff)
klteusc: Move mkbootimg to device (2/2)HEADlp5.1
Change-Id: Ie746cd88674b95f9b53b26d224cfcdd2f73002fb
-rw-r--r--BoardConfig.mk1
-rw-r--r--mkbootimg.mk50
2 files changed, 51 insertions, 0 deletions
diff --git a/BoardConfig.mk b/BoardConfig.mk
index c7043ba..3434f02 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -18,6 +18,7 @@
TARGET_OTA_ASSERT_DEVICE := klteusc,klte
# Kernel
+BOARD_CUSTOM_BOOTIMG_MK := device/samsung/klteusc/mkbootimg.mk
TARGET_KERNEL_VARIANT_CONFIG := msm8974pro_sec_klte_usc_defconfig
# Init
diff --git a/mkbootimg.mk b/mkbootimg.mk
new file mode 100644
index 0000000..47d8f4f
--- /dev/null
+++ b/mkbootimg.mk
@@ -0,0 +1,50 @@
+LOCAL_PATH := $(call my-dir)
+
+## Don't change anything under here. The variables are named G2_whatever
+## on purpose, to avoid conflicts with similarly named variables at other
+## parts of the build environment
+
+## Imported from the original makefile...
+G2_DTS_NAMES := msm8974
+
+G2_DTS_FILES = $(wildcard $(TOP)/$(TARGET_KERNEL_SOURCE)/arch/arm/boot/dts/msm8974pro/msm8974pro-ac-sec-k-*.dts)
+G2_DTS_FILE = $(lastword $(subst /, ,$(1)))
+DTB_FILE = $(addprefix $(KERNEL_OUT)/arch/arm/boot/,$(patsubst %.dts,%.dtb,$(call G2_DTS_FILE,$(1))))
+ZIMG_FILE = $(addprefix $(KERNEL_OUT)/arch/arm/boot/,$(patsubst %.dts,%-zImage,$(call G2_DTS_FILE,$(1))))
+KERNEL_ZIMG = $(KERNEL_OUT)/arch/arm/boot/zImage
+
+define append-g2-dtb
+mkdir -p $(KERNEL_OUT)/arch/arm/boot;\
+$(foreach G2_DTS_NAME, $(G2_DTS_NAMES), \
+ $(foreach d, $(G2_DTS_FILES), \
+ cat $(KERNEL_ZIMG) $(call DTB_FILE,$(d)) > $(call ZIMG_FILE,$(d));))
+endef
+
+
+## Build and run dtbtool
+DTBTOOL := $(HOST_OUT_EXECUTABLES)/dtbToolCM$(HOST_EXECUTABLE_SUFFIX)
+INSTALLED_DTIMAGE_TARGET := $(PRODUCT_OUT)/dt.img
+
+$(INSTALLED_DTIMAGE_TARGET): $(DTBTOOL) $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr $(INSTALLED_KERNEL_TARGET)
+ @echo -e ${CL_CYN}"Start DT image: $@"${CL_RST}
+ $(call append-g2-dtb)
+ $(call pretty,"Target dt image: $(INSTALLED_DTIMAGE_TARGET)")
+ $(hide) $(DTBTOOL) -o $(INSTALLED_DTIMAGE_TARGET) -s $(BOARD_KERNEL_PAGESIZE) -p $(KERNEL_OUT)/scripts/dtc/ $(KERNEL_OUT)/arch/arm/boot/
+ @echo -e ${CL_CYN}"Made DT image: $@"${CL_RST}
+
+
+## Overload bootimg generation: Same as the original, + --dt arg
+$(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES) $(INSTALLED_DTIMAGE_TARGET)
+ $(call pretty,"Target boot image: $@")
+ $(hide) $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --dt $(INSTALLED_DTIMAGE_TARGET) --output $@
+ $(hide) $(call assert-max-image-size,$@,$(BOARD_BOOTIMAGE_PARTITION_SIZE),raw)
+ @echo -e ${CL_CYN}"Made boot image: $@"${CL_RST}
+
+## Overload recoveryimg generation: Same as the original, + --dt arg
+$(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTIMG) $(INSTALLED_DTIMAGE_TARGET) \
+ $(recovery_ramdisk) \
+ $(recovery_kernel)
+ @echo -e ${CL_CYN}"----- Making recovery image ------"${CL_RST}
+ $(hide) $(MKBOOTIMG) $(INTERNAL_RECOVERYIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --dt $(INSTALLED_DTIMAGE_TARGET) --output $@
+ $(hide) $(call assert-max-image-size,$@,$(BOARD_RECOVERYIMAGE_PARTITION_SIZE),raw)
+ @echo -e ${CL_CYN}"Made recovery image: $@"${CL_RST}