blob: afef32422ef138d4976d436947f1413311b27f6d [file] [log] [blame]
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +05301# This makefile is used to generate extra images for QCOM targets
David Ng14d83582012-07-31 16:53:06 -07002# persist, device tree & NAND images required for different QCOM targets.
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +05303
Satya Durga Srinivasu Prabhala154c9152012-08-15 23:16:23 +05304# These variables are required to make sure that the required
5# files/targets are available before generating NAND images.
6# This file is included from device/qcom/<TARGET>/AndroidBoard.mk
7# and gets parsed before build/core/Makefile, which has these
8# variables defined. build/core/Makefile will overwrite these
9# variables again.
Sreedhar1f89a582013-10-07 00:13:58 +053010ifneq ($(strip $(TARGET_NO_KERNEL)),true)
Satya Durga Srinivasu Prabhala154c9152012-08-15 23:16:23 +053011INSTALLED_BOOTIMAGE_TARGET := $(PRODUCT_OUT)/boot.img
12INSTALLED_RAMDISK_TARGET := $(PRODUCT_OUT)/ramdisk.img
13INSTALLED_SYSTEMIMAGE := $(PRODUCT_OUT)/system.img
14INSTALLED_USERDATAIMAGE_TARGET := $(PRODUCT_OUT)/userdata.img
15INSTALLED_RECOVERYIMAGE_TARGET := $(PRODUCT_OUT)/recovery.img
16recovery_ramdisk := $(PRODUCT_OUT)/ramdisk-recovery.img
Mayank Rana3a15cf42013-09-05 12:49:58 +053017INSTALLED_USBIMAGE_TARGET := $(PRODUCT_OUT)/usbdisk.img
Sreedhar1f89a582013-10-07 00:13:58 +053018endif
Satya Durga Srinivasu Prabhala154c9152012-08-15 23:16:23 +053019
David Ng14d83582012-07-31 16:53:06 -070020#----------------------------------------------------------------------
Channagoud Kadabi14ee4072012-08-09 22:19:10 +053021# Generate secure boot image
22#----------------------------------------------------------------------
23ifeq ($(TARGET_BOOTIMG_SIGNED),true)
24INSTALLED_SEC_BOOTIMAGE_TARGET := $(PRODUCT_OUT)/boot.img.secure
Sridhar Parasuramf22173f2014-09-02 15:30:18 -070025INSTALLED_SEC_RECOVERYIMAGE_TARGET := $(PRODUCT_OUT)/recovery.img.secure
Channagoud Kadabi14ee4072012-08-09 22:19:10 +053026
27ifneq ($(BUILD_TINY_ANDROID),true)
28intermediates := $(call intermediates-dir-for,PACKAGING,recovery_patch)
29RECOVERY_FROM_BOOT_PATCH := $(intermediates)/recovery_from_boot.p
30endif
31
32ifndef TARGET_SHA_TYPE
33 TARGET_SHA_TYPE := sha256
34endif
35
36define build-boot-image
37 $(hide) mv -f $(1) $(1).nonsecure
38 $(hide) openssl dgst -$(TARGET_SHA_TYPE) -binary $(1).nonsecure > $(1).$(TARGET_SHA_TYPE)
39 $(hide) openssl rsautl -sign -in $(1).$(TARGET_SHA_TYPE) -inkey $(PRODUCT_PRIVATE_KEY) -out $(1).sig
40 $(hide) dd if=/dev/zero of=$(1).sig.padded bs=$(BOARD_KERNEL_PAGESIZE) count=1
41 $(hide) dd if=$(1).sig of=$(1).sig.padded conv=notrunc
42 $(hide) cat $(1).nonsecure $(1).sig.padded > $(1).secure
43 $(hide) rm -rf $(1).$(TARGET_SHA_TYPE) $(1).sig $(1).sig.padded
44 $(hide) mv -f $(1).secure $(1)
45endef
46
47$(INSTALLED_SEC_BOOTIMAGE_TARGET): $(INSTALLED_BOOTIMAGE_TARGET) $(RECOVERY_FROM_BOOT_PATCH)
48 $(hide) $(call build-boot-image,$(INSTALLED_BOOTIMAGE_TARGET),$(INTERNAL_BOOTIMAGE_ARGS))
49
Sridhar Parasuramf22173f2014-09-02 15:30:18 -070050$(INSTALLED_SEC_RECOVERYIMAGE_TARGET): $(INSTALLED_RECOVERYIMAGE_TARGET) $(RECOVERY_FROM_BOOT_PATCH)
51 $(hide) $(call build-boot-image,$(INSTALLED_RECOVERYIMAGE_TARGET),$(INTERNAL_RECOVERYIMAGE_ARGS))
52
53ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_SEC_BOOTIMAGE_TARGET) $(INSTALLED_SEC_RECOVERYIMAGE_TARGET)
Channagoud Kadabi14ee4072012-08-09 22:19:10 +053054ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_SEC_BOOTIMAGE_TARGET)
Sridhar Parasuramf22173f2014-09-02 15:30:18 -070055ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_SEC_RECOVERYIMAGE_TARGET)
Channagoud Kadabi14ee4072012-08-09 22:19:10 +053056endif
57
58#----------------------------------------------------------------------
David Ng14d83582012-07-31 16:53:06 -070059# Generate persist image (persist.img)
60#----------------------------------------------------------------------
Sreedhar1f89a582013-10-07 00:13:58 +053061ifneq ($(strip $(TARGET_NO_KERNEL)),true)
62
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +053063TARGET_OUT_PERSIST := $(PRODUCT_OUT)/persist
64
65INTERNAL_PERSISTIMAGE_FILES := \
66 $(filter $(TARGET_OUT_PERSIST)/%,$(ALL_DEFAULT_INSTALLED_MODULES))
67
68INSTALLED_PERSISTIMAGE_TARGET := $(PRODUCT_OUT)/persist.img
69
70define build-persistimage-target
71 $(call pretty,"Target persist fs image: $(INSTALLED_PERSISTIMAGE_TARGET)")
72 @mkdir -p $(TARGET_OUT_PERSIST)
73 $(hide) $(MKEXTUSERIMG) -s $(TARGET_OUT_PERSIST) $@ ext4 persist $(BOARD_PERSISTIMAGE_PARTITION_SIZE)
74 $(hide) chmod a+r $@
75 $(hide) $(call assert-max-image-size,$@,$(BOARD_PERSISTIMAGE_PARTITION_SIZE),yaffs)
76endef
77
78$(INSTALLED_PERSISTIMAGE_TARGET): $(MKEXTUSERIMG) $(MAKE_EXT4FS) $(INTERNAL_PERSISTIMAGE_FILES)
79 $(build-persistimage-target)
80
81ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_PERSISTIMAGE_TARGET)
82ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_PERSISTIMAGE_TARGET)
83
Sreedhar1f89a582013-10-07 00:13:58 +053084endif
David Ng14d83582012-07-31 16:53:06 -070085
86#----------------------------------------------------------------------
87# Generate device tree image (dt.img)
88#----------------------------------------------------------------------
89ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true)
David Ng0ef50032012-08-09 14:35:19 -070090ifeq ($(strip $(BUILD_TINY_ANDROID)),true)
91include device/qcom/common/dtbtool/Android.mk
92endif
93
David Ng14d83582012-07-31 16:53:06 -070094DTBTOOL := $(HOST_OUT_EXECUTABLES)/dtbTool$(HOST_EXECUTABLE_SUFFIX)
95
96INSTALLED_DTIMAGE_TARGET := $(PRODUCT_OUT)/dt.img
97
Stephen Boydb9906fe2013-08-21 17:05:26 -070098possible_dtb_dirs = $(KERNEL_OUT)/arch/arm/boot/dts/ $(KERNEL_OUT)/arch/arm/boot/
99dtb_dir = $(firstword $(wildcard $(possible_dtb_dirs)))
100
David Ng14d83582012-07-31 16:53:06 -0700101define build-dtimage-target
102 $(call pretty,"Target dt image: $(INSTALLED_DTIMAGE_TARGET)")
Stephen Boydb9906fe2013-08-21 17:05:26 -0700103 $(hide) $(DTBTOOL) -o $@ -s $(BOARD_KERNEL_PAGESIZE) -p $(KERNEL_OUT)/scripts/dtc/ $(dtb_dir)
David Ng14d83582012-07-31 16:53:06 -0700104 $(hide) chmod a+r $@
105endef
106
107$(INSTALLED_DTIMAGE_TARGET): $(DTBTOOL) $(INSTALLED_KERNEL_TARGET)
108 $(build-dtimage-target)
109
110ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_DTIMAGE_TARGET)
111ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_DTIMAGE_TARGET)
112endif
113
Mayank Rana3a15cf42013-09-05 12:49:58 +0530114#---------------------------------------------------------------------
115# Generate usbdisk.img FAT32 image
116# Please NOTICE: the valid max size of usbdisk.bin is 10GB
117#---------------------------------------------------------------------
118ifneq ($(strip $(BOARD_USBIMAGE_PARTITION_SIZE_KB)),)
119define build-usbimage-target
120 $(hide) mkfs.vfat -n "Internal SD" -F 32 -C $(PRODUCT_OUT)/usbdisk.tmp $(BOARD_USBIMAGE_PARTITION_SIZE_KB)
121 $(hide) dd if=$(PRODUCT_OUT)/usbdisk.tmp of=$(INSTALLED_USBIMAGE_TARGET) bs=1024 count=20480
122 $(hide) rm -f $(PRODUCT_OUT)/usbdisk.tmp
123endef
124
125$(INSTALLED_USBIMAGE_TARGET):
126 $(build-usbimage-target)
127ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_USBIMAGE_TARGET)
128ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_DTIMAGE_TARGET)
129endif
130
Xiaogang Cui302eca32013-09-12 12:23:04 +0800131#----------------------------------------------------------------------
132# Generate CDROM image
133#----------------------------------------------------------------------
Xiaogang Cuie44fb7a2014-01-09 19:52:52 +0800134CDROM_RES_FILE := $(TARGET_DEVICE_DIR)/cdrom_res
guopingyd75708b2014-02-21 17:10:02 +0800135CDROM_DUMMY_FILE := $(TARGET_DEVICE_DIR)/cdrom_res/zero.bin
136
Xiaogang Cui302eca32013-09-12 12:23:04 +0800137ifneq ($(wildcard $(CDROM_RES_FILE)),)
138CDROM_ISO_TARGET := $(PRODUCT_OUT)/system/etc/cdrom_install.iso
guopingyd75708b2014-02-21 17:10:02 +0800139#delete the dummy file if it already exists.
140ifneq ($(wildcard $(CDROM_DUMMY_FILE)),)
141$(shell rm -f $(CDROM_DUMMY_FILE))
142endif
Xiaogang Cui6b419492014-02-18 14:07:31 +0800143CDROM_RES_SIZE := $(shell du -bs $(CDROM_RES_FILE) | egrep -o '^[0-9]+')
Xiaogang Cuie44fb7a2014-01-09 19:52:52 +0800144#At least 300 sectors, 2048Bytes per Sector, set as 310 here
145CDROM_MIN_SIZE := 634880
146CDROM_CAPACITY_IS_ENOUGH := $(shell expr $(CDROM_RES_SIZE) / $(CDROM_MIN_SIZE))
147ifeq ($(CDROM_CAPACITY_IS_ENOUGH),0)
148CDROM_DUMMY_SIZE := $(shell expr $(CDROM_MIN_SIZE) - $(CDROM_RES_SIZE))
guopingyd75708b2014-02-21 17:10:02 +0800149CDROM_DUMMY_SIZE_KB := $(shell expr `expr $(CDROM_DUMMY_SIZE) + 1023` / 1024)
Xiaogang Cuie44fb7a2014-01-09 19:52:52 +0800150$(shell dd if=/dev/zero of=$(CDROM_RES_FILE)/zero.bin bs=1024 count=$(CDROM_DUMMY_SIZE_KB))
151endif
Xiaogang Cui302eca32013-09-12 12:23:04 +0800152
153define build-cdrom-target
154 $(hide) mkisofs -o $(CDROM_ISO_TARGET) $(CDROM_RES_FILE)
155endef
156
Xiaogang Cuic239f2c2013-10-14 17:45:23 +0800157$(CDROM_ISO_TARGET): $(CDROM_RES_FILE)
Xiaogang Cui302eca32013-09-12 12:23:04 +0800158 $(build-cdrom-target)
159
160ALL_DEFAULT_INSTALLED_MODULES += $(CDROM_ISO_TARGET)
161ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(CDROM_ISO_TARGET)
162endif
David Ng14d83582012-07-31 16:53:06 -0700163
164#----------------------------------------------------------------------
165# Generate NAND images
166#----------------------------------------------------------------------
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530167ifeq ($(call is-board-platform-in-list,msm7627a msm7630_surf),true)
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530168
1692K_NAND_OUT := $(PRODUCT_OUT)/2k_nand_images
1704K_NAND_OUT := $(PRODUCT_OUT)/4k_nand_images
171BCHECC_OUT := $(PRODUCT_OUT)/bchecc_images
172
173INSTALLED_2K_BOOTIMAGE_TARGET := $(2K_NAND_OUT)/boot.img
174INSTALLED_2K_SYSTEMIMAGE_TARGET := $(2K_NAND_OUT)/system.img
175INSTALLED_2K_USERDATAIMAGE_TARGET := $(2K_NAND_OUT)/userdata.img
176INSTALLED_2K_PERSISTIMAGE_TARGET := $(2K_NAND_OUT)/persist.img
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530177INSTALLED_2K_RECOVERYIMAGE_TARGET := $(2K_NAND_OUT)/recovery.img
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530178
179INSTALLED_4K_BOOTIMAGE_TARGET := $(4K_NAND_OUT)/boot.img
180INSTALLED_4K_SYSTEMIMAGE_TARGET := $(4K_NAND_OUT)/system.img
181INSTALLED_4K_USERDATAIMAGE_TARGET := $(4K_NAND_OUT)/userdata.img
182INSTALLED_4K_PERSISTIMAGE_TARGET := $(4K_NAND_OUT)/persist.img
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530183INSTALLED_4K_RECOVERYIMAGE_TARGET := $(4K_NAND_OUT)/recovery.img
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530184
185INSTALLED_BCHECC_BOOTIMAGE_TARGET := $(BCHECC_OUT)/boot.img
186INSTALLED_BCHECC_SYSTEMIMAGE_TARGET := $(BCHECC_OUT)/system.img
187INSTALLED_BCHECC_USERDATAIMAGE_TARGET := $(BCHECC_OUT)/userdata.img
188INSTALLED_BCHECC_PERSISTIMAGE_TARGET := $(BCHECC_OUT)/persist.img
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530189INSTALLED_BCHECC_RECOVERYIMAGE_TARGET := $(BCHECC_OUT)/recovery.img
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530190
Channagoud Kadabic3445642012-07-31 18:02:29 +0530191recovery_nand_fstab := $(TARGET_DEVICE_DIR)/recovery_nand.fstab
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530192
193NAND_BOOTIMAGE_ARGS := \
194 --kernel $(INSTALLED_KERNEL_TARGET) \
195 --ramdisk $(INSTALLED_RAMDISK_TARGET) \
196 --cmdline "$(BOARD_KERNEL_CMDLINE)" \
197 --base $(BOARD_KERNEL_BASE)
198
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530199NAND_RECOVERYIMAGE_ARGS := \
200 --kernel $(INSTALLED_KERNEL_TARGET) \
201 --ramdisk $(recovery_ramdisk) \
202 --cmdline "$(BOARD_KERNEL_CMDLINE)" \
203 --base $(BOARD_KERNEL_BASE)
204
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530205INTERNAL_4K_BOOTIMAGE_ARGS := $(NAND_BOOTIMAGE_ARGS)
206INTERNAL_4K_BOOTIMAGE_ARGS += --pagesize $(BOARD_KERNEL_PAGESIZE)
207
208INTERNAL_2K_BOOTIMAGE_ARGS := $(NAND_BOOTIMAGE_ARGS)
209INTERNAL_2K_BOOTIMAGE_ARGS += --pagesize $(BOARD_KERNEL_2KPAGESIZE)
210
211INTERNAL_4K_MKYAFFS2_FLAGS := -c $(BOARD_KERNEL_PAGESIZE)
212INTERNAL_4K_MKYAFFS2_FLAGS += -s $(BOARD_KERNEL_SPARESIZE)
213
214INTERNAL_2K_MKYAFFS2_FLAGS := -c $(BOARD_KERNEL_2KPAGESIZE)
215INTERNAL_2K_MKYAFFS2_FLAGS += -s $(BOARD_KERNEL_2KSPARESIZE)
216
217INTERNAL_BCHECC_MKYAFFS2_FLAGS := -c $(BOARD_KERNEL_PAGESIZE)
218INTERNAL_BCHECC_MKYAFFS2_FLAGS += -s $(BOARD_KERNEL_BCHECC_SPARESIZE)
219
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530220INTERNAL_4K_RECOVERYIMAGE_ARGS := $(NAND_RECOVERYIMAGE_ARGS)
221INTERNAL_4K_RECOVERYIMAGE_ARGS += --pagesize $(BOARD_KERNEL_PAGESIZE)
222
223INTERNAL_2K_RECOVERYIMAGE_ARGS := $(NAND_RECOVERYIMAGE_ARGS)
224INTERNAL_2K_RECOVERYIMAGE_ARGS += --pagesize $(BOARD_KERNEL_2KPAGESIZE)
225
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530226# Generate boot image for NAND
Channagoud Kadabi9a92e702012-08-14 18:25:09 +0530227ifeq ($(TARGET_BOOTIMG_SIGNED),true)
228
229ifndef TARGET_SHA_TYPE
230 TARGET_SHA_TYPE := sha256
231endif
232
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530233define build-nand-bootimage
Channagoud Kadabi9a92e702012-08-14 18:25:09 +0530234 @echo "target NAND boot image: $(3)"
235 $(hide) mkdir -p $(1)
236 $(hide) $(MKBOOTIMG) $(2) --output $(3).nonsecure
237 $(hide) openssl dgst -$(TARGET_SHA_TYPE) -binary $(3).nonsecure > $(3).$(TARGET_SHA_TYPE)
238 $(hide) openssl rsautl -sign -in $(3).$(TARGET_SHA_TYPE) -inkey $(PRODUCT_PRIVATE_KEY) -out $(3).sig
239 $(hide) dd if=/dev/zero of=$(3).sig.padded bs=$(BOARD_KERNEL_PAGESIZE) count=1
240 $(hide) dd if=$(3).sig of=$(3).sig.padded conv=notrunc
241 $(hide) cat $(3).nonsecure $(3).sig.padded > $(3)
242 $(hide) rm -rf $(3).$(TARGET_SHA_TYPE) $(3).sig $(3).sig.padded
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530243endef
Channagoud Kadabi9a92e702012-08-14 18:25:09 +0530244else
245define build-nand-bootimage
246 @echo "target NAND boot image: $(3)"
247 $(hide) mkdir -p $(1)
248 $(hide) $(MKBOOTIMG) $(2) --output $(3)
249endef
250 $(hide) $(call assert-max-image-size,$@,$(BOARD_BOOTIMAGE_PARTITION_SIZE),raw)
251endif
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530252
253# Generate system image for NAND
254define build-nand-systemimage
255 @echo "target NAND system image: $(3)"
256 $(hide) mkdir -p $(1)
257 $(hide) $(MKYAFFS2) -f $(2) $(TARGET_OUT) $(3)
258 $(hide) chmod a+r $(3)
259 $(hide) $(call assert-max-image-size,$@,$(BOARD_SYSTEMIMAGE_PARTITION_SIZE),yaffs)
260endef
261
262# Generate userdata image for NAND
263define build-nand-userdataimage
264 @echo "target NAND userdata image: $(3)"
265 $(hide) mkdir -p $(1)
266 $(hide) $(MKYAFFS2) -f $(2) $(TARGET_OUT_DATA) $(3)
267 $(hide) chmod a+r $(3)
268 $(hide) $(call assert-max-image-size,$@,$(BOARD_USERDATAIMAGE_PARTITION_SIZE),yaffs)
269endef
270
271# Generate persist image for NAND
272define build-nand-persistimage
273 @echo "target NAND persist image: $(3)"
274 $(hide) mkdir -p $(1)
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530275 $(hide) $(MKYAFFS2) -f $(2) $(TARGET_OUT_PERSIST) $(3)
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530276 $(hide) chmod a+r $(3)
277 $(hide) $(call assert-max-image-size,$@,$(BOARD_PERSISTIMAGE_PARTITION_SIZE),yaffs)
278endef
279
Satya Durga Srinivasu Prabhala154c9152012-08-15 23:16:23 +0530280$(INSTALLED_4K_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INSTALLED_BOOTIMAGE_TARGET)
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530281 $(hide) $(call build-nand-bootimage,$(4K_NAND_OUT),$(INTERNAL_4K_BOOTIMAGE_ARGS),$(INSTALLED_4K_BOOTIMAGE_TARGET))
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530282ifeq ($(call is-board-platform,msm7627a),true)
283 $(hide) $(call build-nand-bootimage,$(2K_NAND_OUT),$(INTERNAL_2K_BOOTIMAGE_ARGS),$(INSTALLED_2K_BOOTIMAGE_TARGET))
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530284 $(hide) $(call build-nand-bootimage,$(BCHECC_OUT),$(INTERNAL_4K_BOOTIMAGE_ARGS),$(INSTALLED_BCHECC_BOOTIMAGE_TARGET))
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530285endif # is-board-platform
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530286
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530287$(INSTALLED_4K_SYSTEMIMAGE_TARGET): $(MKYAFFS2) $(INSTALLED_SYSTEMIMAGE)
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530288 $(hide) $(call build-nand-systemimage,$(4K_NAND_OUT),$(INTERNAL_4K_MKYAFFS2_FLAGS),$(INSTALLED_4K_SYSTEMIMAGE_TARGET))
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530289ifeq ($(call is-board-platform,msm7627a),true)
290 $(hide) $(call build-nand-systemimage,$(2K_NAND_OUT),$(INTERNAL_2K_MKYAFFS2_FLAGS),$(INSTALLED_2K_SYSTEMIMAGE_TARGET))
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530291 $(hide) $(call build-nand-systemimage,$(BCHECC_OUT),$(INTERNAL_BCHECC_MKYAFFS2_FLAGS),$(INSTALLED_BCHECC_SYSTEMIMAGE_TARGET))
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530292endif # is-board-platform
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530293
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530294$(INSTALLED_4K_USERDATAIMAGE_TARGET): $(MKYAFFS2) $(INSTALLED_USERDATAIMAGE_TARGET)
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530295 $(hide) $(call build-nand-userdataimage,$(4K_NAND_OUT),$(INTERNAL_4K_MKYAFFS2_FLAGS),$(INSTALLED_4K_USERDATAIMAGE_TARGET))
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530296ifeq ($(call is-board-platform,msm7627a),true)
297 $(hide) $(call build-nand-userdataimage,$(2K_NAND_OUT),$(INTERNAL_2K_MKYAFFS2_FLAGS),$(INSTALLED_2K_USERDATAIMAGE_TARGET))
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530298 $(hide) $(call build-nand-userdataimage,$(BCHECC_OUT),$(INTERNAL_BCHECC_MKYAFFS2_FLAGS),$(INSTALLED_BCHECC_USERDATAIMAGE_TARGET))
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530299endif # is-board-platform
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530300
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530301$(INSTALLED_4K_PERSISTIMAGE_TARGET): $(MKYAFFS2) $(INSTALLED_PERSISTIMAGE_TARGET)
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530302 $(hide) $(call build-nand-persistimage,$(4K_NAND_OUT),$(INTERNAL_4K_MKYAFFS2_FLAGS),$(INSTALLED_4K_PERSISTIMAGE_TARGET))
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530303ifeq ($(call is-board-platform,msm7627a),true)
304 $(hide) $(call build-nand-persistimage,$(2K_NAND_OUT),$(INTERNAL_2K_MKYAFFS2_FLAGS),$(INSTALLED_2K_PERSISTIMAGE_TARGET))
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530305 $(hide) $(call build-nand-persistimage,$(BCHECC_OUT),$(INTERNAL_BCHECC_MKYAFFS2_FLAGS),$(INSTALLED_BCHECC_PERSISTIMAGE_TARGET))
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530306endif # is-board-platform
307
Satya Durga Srinivasu Prabhala154c9152012-08-15 23:16:23 +0530308$(INSTALLED_4K_RECOVERYIMAGE_TARGET): $(MKBOOTIMG) $(INSTALLED_RECOVERYIMAGE_TARGET) $(recovery_nand_fstab)
Channagoud Kadabic3445642012-07-31 18:02:29 +0530309 $(hide) cp -f $(recovery_nand_fstab) $(TARGET_RECOVERY_ROOT_OUT)/etc
310 $(MKBOOTFS) $(TARGET_RECOVERY_ROOT_OUT) | $(MINIGZIP) > $(recovery_ramdisk)
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530311 $(hide) $(call build-nand-bootimage,$(4K_NAND_OUT),$(INTERNAL_4K_RECOVERYIMAGE_ARGS),$(INSTALLED_4K_RECOVERYIMAGE_TARGET))
312ifeq ($(call is-board-platform,msm7627a),true)
313 $(hide) $(call build-nand-bootimage,$(2K_NAND_OUT),$(INTERNAL_2K_RECOVERYIMAGE_ARGS),$(INSTALLED_2K_RECOVERYIMAGE_TARGET))
314 $(hide) $(call build-nand-bootimage,$(BCHECC_OUT),$(INTERNAL_4K_RECOVERYIMAGE_ARGS),$(INSTALLED_BCHECC_RECOVERYIMAGE_TARGET))
315endif # is-board-platform
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530316
317ALL_DEFAULT_INSTALLED_MODULES += \
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530318 $(INSTALLED_4K_BOOTIMAGE_TARGET) \
319 $(INSTALLED_4K_SYSTEMIMAGE_TARGET) \
320 $(INSTALLED_4K_USERDATAIMAGE_TARGET) \
321 $(INSTALLED_4K_PERSISTIMAGE_TARGET)
322
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530323ALL_MODULES.$(LOCAL_MODULE).INSTALLED += \
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530324 $(INSTALLED_4K_BOOTIMAGE_TARGET) \
325 $(INSTALLED_4K_SYSTEMIMAGE_TARGET) \
326 $(INSTALLED_4K_USERDATAIMAGE_TARGET) \
327 $(INSTALLED_4K_PERSISTIMAGE_TARGET)
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530328
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530329ifneq ($(BUILD_TINY_ANDROID),true)
Satya Durga Srinivasu Prabhala154c9152012-08-15 23:16:23 +0530330ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_4K_RECOVERYIMAGE_TARGET)
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530331ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_4K_RECOVERYIMAGE_TARGET)
332endif # !BUILD_TINY_ANDROID
333
334endif # is-board-platform-in-list
Channagoud Kadabi27614e22012-08-07 17:58:03 +0530335
Sreedhar7f420492014-03-05 14:42:24 +0530336#####################################################################################################
337# support for small user data image
338
339ifneq ($(strip $(BOARD_SMALL_USERDATAIMAGE_PARTITION_SIZE)),)
340# Don't build userdata.img if it's extfs but no partition size
341skip_userdata.img :=
342ifdef INTERNAL_USERIMAGES_EXT_VARIANT
343ifndef BOARD_USERDATAIMAGE_PARTITION_SIZE
344skip_userdata.img := true
345endif
346endif
347
348ifneq ($(skip_userdata.img),true)
349
350INSTALLED_SMALL_USERDATAIMAGE_TARGET := $(PRODUCT_OUT)/userdata_small.img
351
352define build-small-userdataimage
353 @echo "target small userdata image"
354 $(hide) mkdir -p $(1)
355 $(hide) $(MKEXTUSERIMG) -s $(TARGET_OUT_DATA) $(2) ext4 data $(BOARD_SMALL_USERDATAIMAGE_PARTITION_SIZE)
356 $(hide) chmod a+r $@
357 $(hide) $(call assert-max-image-size,$@,$(BOARD_SMALL_USERDATAIMAGE_PARTITION_SIZE),yaffs)
358endef
359
360
361$(INSTALLED_SMALL_USERDATAIMAGE_TARGET): $(MKEXTUSERIMG) $(MAKE_EXT4FS) $(INSTALLED_USERDATAIMAGE_TARGET)
362 $(hide) $(call build-small-userdataimage,$(PRODUCT_OUT),$(INSTALLED_SMALL_USERDATAIMAGE_TARGET))
363
364ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_SMALL_USERDATAIMAGE_TARGET)
365ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_SMALL_USERDATAIMAGE_TARGET)
366
367endif
368
369endif
370
Channagoud Kadabi435d00a2014-05-21 14:58:34 -0700371#----------------------------------------------------------------------
372# Compile (L)ittle (K)ernel bootloader and the nandwrite utility
373#----------------------------------------------------------------------
374ifneq ($(strip $(TARGET_NO_BOOTLOADER)),true)
375
376# Compile
377include bootable/bootloader/lk/AndroidBoot.mk
378
379$(INSTALLED_BOOTLOADER_MODULE): $(TARGET_EMMC_BOOTLOADER) | $(ACP)
380 $(transform-prebuilt-to-target)
381$(BUILT_TARGET_FILES_PACKAGE): $(INSTALLED_BOOTLOADER_MODULE)
382
383droidcore: $(INSTALLED_BOOTLOADER_MODULE)
384endif
385
Sreedhar7f420492014-03-05 14:42:24 +0530386###################################################################################################
387
Channagoud Kadabi27614e22012-08-07 17:58:03 +0530388.PHONY: aboot
389aboot: $(INSTALLED_BOOTLOADER_MODULE)
390
Satya Durga Srinivasu Prabhala154c9152012-08-15 23:16:23 +0530391.PHONY: kernel
392kernel: $(INSTALLED_BOOTIMAGE_TARGET) $(INSTALLED_SEC_BOOTIMAGE_TARGET) $(INSTALLED_4K_BOOTIMAGE_TARGET)
Channagoud Kadabib5e7dba2012-09-06 18:21:35 +0530393
394.PHONY: recoveryimage
395recoveryimage: $(INSTALLED_RECOVERYIMAGE_TARGET) $(INSTALLED_4K_RECOVERYIMAGE_TARGET)
SREEDHAR La3027c22013-05-30 00:02:14 +0530396
397.PHONY: kernelclean
398kernelclean:
399 $(hide) make -C kernel O=../$(PRODUCT_OUT)/obj/KERNEL_OBJ/ ARCH=$(TARGET_ARCH) CROSS_COMPILE=arm-eabi- clean
400 $(hide) make -C kernel O=../$(PRODUCT_OUT)/obj/KERNEL_OBJ/ ARCH=$(TARGET_ARCH) CROSS_COMPILE=arm-eabi- mrproper
401 $(hide) make -C kernel O=../$(PRODUCT_OUT)/obj/KERNEL_OBJ/ ARCH=$(TARGET_ARCH) CROSS_COMPILE=arm-eabi- distclean
402 $(hide) if [ -f "$(INSTALLED_BOOTIMAGE_TARGET)" ]; then rm $(INSTALLED_BOOTIMAGE_TARGET); fi
403 $(hide) if [ -f "$(INSTALLED_SEC_BOOTIMAGE_TARGET)" ]; then rm $(INSTALLED_SEC_BOOTIMAGE_TARGET); fi
404 $(hide) if [ -f "$(INSTALLED_BOOTIMAGE_TARGET).nonsecure" ]; then rm $(INSTALLED_BOOTIMAGE_TARGET).nonsecure; fi
405 $(hide) if [ -f "$(PRODUCT_OUT)/kernel" ]; then rm $(PRODUCT_OUT)/kernel; fi
406 $(hide) if [ -f "$(INSTALLED_4K_BOOTIMAGE_TARGET)" ]; then rm $(INSTALLED_4K_BOOTIMAGE_TARGET); fi
407 $(hide) if [ -f "$(INSTALLED_2K_BOOTIMAGE_TARGET)" ]; then rm $(INSTALLED_2K_BOOTIMAGE_TARGET); fi
408 $(hide) if [ -f "$(INSTALLED_BCHECC_BOOTIMAGE_TARGET)" ]; then rm $(INSTALLED_BCHECC_BOOTIMAGE_TARGET); fi
409 @echo "kernel cleanup done"