blob: 2a731cb2d455cf530cd87867f36e42333a834df9 [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
AUDITYA BHATTARAMf183d552014-12-16 12:19:12 +053020#---------------------------------------------------------------------
21#Add systemimage as a dependency on userdata.img
22#---------------------------------------------------------------------
23$(INSTALLED_USERDATAIMAGE_TARGET) : systemimage \
24 $(INTERNAL_USERIMAGES_DEPS) \
25 $(INTERNAL_USERDATAIMAGE_FILES)
26
David Ng14d83582012-07-31 16:53:06 -070027#----------------------------------------------------------------------
Channagoud Kadabi14ee4072012-08-09 22:19:10 +053028# Generate secure boot image
29#----------------------------------------------------------------------
30ifeq ($(TARGET_BOOTIMG_SIGNED),true)
31INSTALLED_SEC_BOOTIMAGE_TARGET := $(PRODUCT_OUT)/boot.img.secure
Sridhar Parasuramf22173f2014-09-02 15:30:18 -070032INSTALLED_SEC_RECOVERYIMAGE_TARGET := $(PRODUCT_OUT)/recovery.img.secure
Channagoud Kadabi14ee4072012-08-09 22:19:10 +053033
34ifneq ($(BUILD_TINY_ANDROID),true)
35intermediates := $(call intermediates-dir-for,PACKAGING,recovery_patch)
36RECOVERY_FROM_BOOT_PATCH := $(intermediates)/recovery_from_boot.p
37endif
38
39ifndef TARGET_SHA_TYPE
40 TARGET_SHA_TYPE := sha256
41endif
42
43define build-boot-image
44 $(hide) mv -f $(1) $(1).nonsecure
45 $(hide) openssl dgst -$(TARGET_SHA_TYPE) -binary $(1).nonsecure > $(1).$(TARGET_SHA_TYPE)
46 $(hide) openssl rsautl -sign -in $(1).$(TARGET_SHA_TYPE) -inkey $(PRODUCT_PRIVATE_KEY) -out $(1).sig
47 $(hide) dd if=/dev/zero of=$(1).sig.padded bs=$(BOARD_KERNEL_PAGESIZE) count=1
48 $(hide) dd if=$(1).sig of=$(1).sig.padded conv=notrunc
49 $(hide) cat $(1).nonsecure $(1).sig.padded > $(1).secure
50 $(hide) rm -rf $(1).$(TARGET_SHA_TYPE) $(1).sig $(1).sig.padded
51 $(hide) mv -f $(1).secure $(1)
52endef
53
54$(INSTALLED_SEC_BOOTIMAGE_TARGET): $(INSTALLED_BOOTIMAGE_TARGET) $(RECOVERY_FROM_BOOT_PATCH)
55 $(hide) $(call build-boot-image,$(INSTALLED_BOOTIMAGE_TARGET),$(INTERNAL_BOOTIMAGE_ARGS))
56
Sridhar Parasuramf22173f2014-09-02 15:30:18 -070057$(INSTALLED_SEC_RECOVERYIMAGE_TARGET): $(INSTALLED_RECOVERYIMAGE_TARGET) $(RECOVERY_FROM_BOOT_PATCH)
58 $(hide) $(call build-boot-image,$(INSTALLED_RECOVERYIMAGE_TARGET),$(INTERNAL_RECOVERYIMAGE_ARGS))
59
60ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_SEC_BOOTIMAGE_TARGET) $(INSTALLED_SEC_RECOVERYIMAGE_TARGET)
Channagoud Kadabi14ee4072012-08-09 22:19:10 +053061ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_SEC_BOOTIMAGE_TARGET)
Sridhar Parasuramf22173f2014-09-02 15:30:18 -070062ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_SEC_RECOVERYIMAGE_TARGET)
Channagoud Kadabi14ee4072012-08-09 22:19:10 +053063endif
64
65#----------------------------------------------------------------------
David Ng14d83582012-07-31 16:53:06 -070066# Generate persist image (persist.img)
67#----------------------------------------------------------------------
Sreedhar1f89a582013-10-07 00:13:58 +053068ifneq ($(strip $(TARGET_NO_KERNEL)),true)
69
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +053070TARGET_OUT_PERSIST := $(PRODUCT_OUT)/persist
71
72INTERNAL_PERSISTIMAGE_FILES := \
73 $(filter $(TARGET_OUT_PERSIST)/%,$(ALL_DEFAULT_INSTALLED_MODULES))
74
75INSTALLED_PERSISTIMAGE_TARGET := $(PRODUCT_OUT)/persist.img
76
77define build-persistimage-target
78 $(call pretty,"Target persist fs image: $(INSTALLED_PERSISTIMAGE_TARGET)")
79 @mkdir -p $(TARGET_OUT_PERSIST)
80 $(hide) $(MKEXTUSERIMG) -s $(TARGET_OUT_PERSIST) $@ ext4 persist $(BOARD_PERSISTIMAGE_PARTITION_SIZE)
81 $(hide) chmod a+r $@
82 $(hide) $(call assert-max-image-size,$@,$(BOARD_PERSISTIMAGE_PARTITION_SIZE),yaffs)
83endef
84
85$(INSTALLED_PERSISTIMAGE_TARGET): $(MKEXTUSERIMG) $(MAKE_EXT4FS) $(INTERNAL_PERSISTIMAGE_FILES)
86 $(build-persistimage-target)
87
88ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_PERSISTIMAGE_TARGET)
89ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_PERSISTIMAGE_TARGET)
90
Sreedhar1f89a582013-10-07 00:13:58 +053091endif
David Ng14d83582012-07-31 16:53:06 -070092
93#----------------------------------------------------------------------
94# Generate device tree image (dt.img)
95#----------------------------------------------------------------------
96ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true)
David Ng0ef50032012-08-09 14:35:19 -070097ifeq ($(strip $(BUILD_TINY_ANDROID)),true)
98include device/qcom/common/dtbtool/Android.mk
99endif
100
David Ng14d83582012-07-31 16:53:06 -0700101DTBTOOL := $(HOST_OUT_EXECUTABLES)/dtbTool$(HOST_EXECUTABLE_SUFFIX)
102
103INSTALLED_DTIMAGE_TARGET := $(PRODUCT_OUT)/dt.img
104
Stephen Boydb9906fe2013-08-21 17:05:26 -0700105possible_dtb_dirs = $(KERNEL_OUT)/arch/arm/boot/dts/ $(KERNEL_OUT)/arch/arm/boot/
106dtb_dir = $(firstword $(wildcard $(possible_dtb_dirs)))
107
David Ng14d83582012-07-31 16:53:06 -0700108define build-dtimage-target
109 $(call pretty,"Target dt image: $(INSTALLED_DTIMAGE_TARGET)")
Stephen Boydb9906fe2013-08-21 17:05:26 -0700110 $(hide) $(DTBTOOL) -o $@ -s $(BOARD_KERNEL_PAGESIZE) -p $(KERNEL_OUT)/scripts/dtc/ $(dtb_dir)
David Ng14d83582012-07-31 16:53:06 -0700111 $(hide) chmod a+r $@
112endef
113
114$(INSTALLED_DTIMAGE_TARGET): $(DTBTOOL) $(INSTALLED_KERNEL_TARGET)
115 $(build-dtimage-target)
116
117ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_DTIMAGE_TARGET)
118ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_DTIMAGE_TARGET)
119endif
120
Mayank Rana3a15cf42013-09-05 12:49:58 +0530121#---------------------------------------------------------------------
122# Generate usbdisk.img FAT32 image
123# Please NOTICE: the valid max size of usbdisk.bin is 10GB
124#---------------------------------------------------------------------
125ifneq ($(strip $(BOARD_USBIMAGE_PARTITION_SIZE_KB)),)
126define build-usbimage-target
127 $(hide) mkfs.vfat -n "Internal SD" -F 32 -C $(PRODUCT_OUT)/usbdisk.tmp $(BOARD_USBIMAGE_PARTITION_SIZE_KB)
128 $(hide) dd if=$(PRODUCT_OUT)/usbdisk.tmp of=$(INSTALLED_USBIMAGE_TARGET) bs=1024 count=20480
129 $(hide) rm -f $(PRODUCT_OUT)/usbdisk.tmp
130endef
131
132$(INSTALLED_USBIMAGE_TARGET):
133 $(build-usbimage-target)
134ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_USBIMAGE_TARGET)
135ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_DTIMAGE_TARGET)
136endif
137
Xiaogang Cui302eca32013-09-12 12:23:04 +0800138#----------------------------------------------------------------------
139# Generate CDROM image
140#----------------------------------------------------------------------
Xiaogang Cuie44fb7a2014-01-09 19:52:52 +0800141CDROM_RES_FILE := $(TARGET_DEVICE_DIR)/cdrom_res
guopingyd75708b2014-02-21 17:10:02 +0800142CDROM_DUMMY_FILE := $(TARGET_DEVICE_DIR)/cdrom_res/zero.bin
143
Xiaogang Cui302eca32013-09-12 12:23:04 +0800144ifneq ($(wildcard $(CDROM_RES_FILE)),)
145CDROM_ISO_TARGET := $(PRODUCT_OUT)/system/etc/cdrom_install.iso
guopingyd75708b2014-02-21 17:10:02 +0800146#delete the dummy file if it already exists.
147ifneq ($(wildcard $(CDROM_DUMMY_FILE)),)
148$(shell rm -f $(CDROM_DUMMY_FILE))
149endif
Xiaogang Cui6b419492014-02-18 14:07:31 +0800150CDROM_RES_SIZE := $(shell du -bs $(CDROM_RES_FILE) | egrep -o '^[0-9]+')
Xiaogang Cuie44fb7a2014-01-09 19:52:52 +0800151#At least 300 sectors, 2048Bytes per Sector, set as 310 here
152CDROM_MIN_SIZE := 634880
153CDROM_CAPACITY_IS_ENOUGH := $(shell expr $(CDROM_RES_SIZE) / $(CDROM_MIN_SIZE))
154ifeq ($(CDROM_CAPACITY_IS_ENOUGH),0)
155CDROM_DUMMY_SIZE := $(shell expr $(CDROM_MIN_SIZE) - $(CDROM_RES_SIZE))
guopingyd75708b2014-02-21 17:10:02 +0800156CDROM_DUMMY_SIZE_KB := $(shell expr `expr $(CDROM_DUMMY_SIZE) + 1023` / 1024)
Xiaogang Cuie44fb7a2014-01-09 19:52:52 +0800157$(shell dd if=/dev/zero of=$(CDROM_RES_FILE)/zero.bin bs=1024 count=$(CDROM_DUMMY_SIZE_KB))
158endif
Xiaogang Cui302eca32013-09-12 12:23:04 +0800159
160define build-cdrom-target
161 $(hide) mkisofs -o $(CDROM_ISO_TARGET) $(CDROM_RES_FILE)
162endef
163
Xiaogang Cuic239f2c2013-10-14 17:45:23 +0800164$(CDROM_ISO_TARGET): $(CDROM_RES_FILE)
Xiaogang Cui302eca32013-09-12 12:23:04 +0800165 $(build-cdrom-target)
166
167ALL_DEFAULT_INSTALLED_MODULES += $(CDROM_ISO_TARGET)
168ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(CDROM_ISO_TARGET)
169endif
David Ng14d83582012-07-31 16:53:06 -0700170
171#----------------------------------------------------------------------
172# Generate NAND images
173#----------------------------------------------------------------------
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530174ifeq ($(call is-board-platform-in-list,msm7627a msm7630_surf),true)
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530175
1762K_NAND_OUT := $(PRODUCT_OUT)/2k_nand_images
1774K_NAND_OUT := $(PRODUCT_OUT)/4k_nand_images
178BCHECC_OUT := $(PRODUCT_OUT)/bchecc_images
179
180INSTALLED_2K_BOOTIMAGE_TARGET := $(2K_NAND_OUT)/boot.img
181INSTALLED_2K_SYSTEMIMAGE_TARGET := $(2K_NAND_OUT)/system.img
182INSTALLED_2K_USERDATAIMAGE_TARGET := $(2K_NAND_OUT)/userdata.img
183INSTALLED_2K_PERSISTIMAGE_TARGET := $(2K_NAND_OUT)/persist.img
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530184INSTALLED_2K_RECOVERYIMAGE_TARGET := $(2K_NAND_OUT)/recovery.img
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530185
186INSTALLED_4K_BOOTIMAGE_TARGET := $(4K_NAND_OUT)/boot.img
187INSTALLED_4K_SYSTEMIMAGE_TARGET := $(4K_NAND_OUT)/system.img
188INSTALLED_4K_USERDATAIMAGE_TARGET := $(4K_NAND_OUT)/userdata.img
189INSTALLED_4K_PERSISTIMAGE_TARGET := $(4K_NAND_OUT)/persist.img
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530190INSTALLED_4K_RECOVERYIMAGE_TARGET := $(4K_NAND_OUT)/recovery.img
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530191
192INSTALLED_BCHECC_BOOTIMAGE_TARGET := $(BCHECC_OUT)/boot.img
193INSTALLED_BCHECC_SYSTEMIMAGE_TARGET := $(BCHECC_OUT)/system.img
194INSTALLED_BCHECC_USERDATAIMAGE_TARGET := $(BCHECC_OUT)/userdata.img
195INSTALLED_BCHECC_PERSISTIMAGE_TARGET := $(BCHECC_OUT)/persist.img
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530196INSTALLED_BCHECC_RECOVERYIMAGE_TARGET := $(BCHECC_OUT)/recovery.img
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530197
Channagoud Kadabic3445642012-07-31 18:02:29 +0530198recovery_nand_fstab := $(TARGET_DEVICE_DIR)/recovery_nand.fstab
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530199
200NAND_BOOTIMAGE_ARGS := \
201 --kernel $(INSTALLED_KERNEL_TARGET) \
202 --ramdisk $(INSTALLED_RAMDISK_TARGET) \
203 --cmdline "$(BOARD_KERNEL_CMDLINE)" \
204 --base $(BOARD_KERNEL_BASE)
205
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530206NAND_RECOVERYIMAGE_ARGS := \
207 --kernel $(INSTALLED_KERNEL_TARGET) \
208 --ramdisk $(recovery_ramdisk) \
209 --cmdline "$(BOARD_KERNEL_CMDLINE)" \
210 --base $(BOARD_KERNEL_BASE)
211
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530212INTERNAL_4K_BOOTIMAGE_ARGS := $(NAND_BOOTIMAGE_ARGS)
213INTERNAL_4K_BOOTIMAGE_ARGS += --pagesize $(BOARD_KERNEL_PAGESIZE)
214
215INTERNAL_2K_BOOTIMAGE_ARGS := $(NAND_BOOTIMAGE_ARGS)
216INTERNAL_2K_BOOTIMAGE_ARGS += --pagesize $(BOARD_KERNEL_2KPAGESIZE)
217
218INTERNAL_4K_MKYAFFS2_FLAGS := -c $(BOARD_KERNEL_PAGESIZE)
219INTERNAL_4K_MKYAFFS2_FLAGS += -s $(BOARD_KERNEL_SPARESIZE)
220
221INTERNAL_2K_MKYAFFS2_FLAGS := -c $(BOARD_KERNEL_2KPAGESIZE)
222INTERNAL_2K_MKYAFFS2_FLAGS += -s $(BOARD_KERNEL_2KSPARESIZE)
223
224INTERNAL_BCHECC_MKYAFFS2_FLAGS := -c $(BOARD_KERNEL_PAGESIZE)
225INTERNAL_BCHECC_MKYAFFS2_FLAGS += -s $(BOARD_KERNEL_BCHECC_SPARESIZE)
226
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530227INTERNAL_4K_RECOVERYIMAGE_ARGS := $(NAND_RECOVERYIMAGE_ARGS)
228INTERNAL_4K_RECOVERYIMAGE_ARGS += --pagesize $(BOARD_KERNEL_PAGESIZE)
229
230INTERNAL_2K_RECOVERYIMAGE_ARGS := $(NAND_RECOVERYIMAGE_ARGS)
231INTERNAL_2K_RECOVERYIMAGE_ARGS += --pagesize $(BOARD_KERNEL_2KPAGESIZE)
232
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530233# Generate boot image for NAND
Channagoud Kadabi9a92e702012-08-14 18:25:09 +0530234ifeq ($(TARGET_BOOTIMG_SIGNED),true)
235
236ifndef TARGET_SHA_TYPE
237 TARGET_SHA_TYPE := sha256
238endif
239
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530240define build-nand-bootimage
Channagoud Kadabi9a92e702012-08-14 18:25:09 +0530241 @echo "target NAND boot image: $(3)"
242 $(hide) mkdir -p $(1)
243 $(hide) $(MKBOOTIMG) $(2) --output $(3).nonsecure
244 $(hide) openssl dgst -$(TARGET_SHA_TYPE) -binary $(3).nonsecure > $(3).$(TARGET_SHA_TYPE)
245 $(hide) openssl rsautl -sign -in $(3).$(TARGET_SHA_TYPE) -inkey $(PRODUCT_PRIVATE_KEY) -out $(3).sig
246 $(hide) dd if=/dev/zero of=$(3).sig.padded bs=$(BOARD_KERNEL_PAGESIZE) count=1
247 $(hide) dd if=$(3).sig of=$(3).sig.padded conv=notrunc
248 $(hide) cat $(3).nonsecure $(3).sig.padded > $(3)
249 $(hide) rm -rf $(3).$(TARGET_SHA_TYPE) $(3).sig $(3).sig.padded
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530250endef
Channagoud Kadabi9a92e702012-08-14 18:25:09 +0530251else
252define build-nand-bootimage
253 @echo "target NAND boot image: $(3)"
254 $(hide) mkdir -p $(1)
255 $(hide) $(MKBOOTIMG) $(2) --output $(3)
256endef
257 $(hide) $(call assert-max-image-size,$@,$(BOARD_BOOTIMAGE_PARTITION_SIZE),raw)
258endif
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530259
260# Generate system image for NAND
261define build-nand-systemimage
262 @echo "target NAND system image: $(3)"
263 $(hide) mkdir -p $(1)
264 $(hide) $(MKYAFFS2) -f $(2) $(TARGET_OUT) $(3)
265 $(hide) chmod a+r $(3)
266 $(hide) $(call assert-max-image-size,$@,$(BOARD_SYSTEMIMAGE_PARTITION_SIZE),yaffs)
267endef
268
269# Generate userdata image for NAND
270define build-nand-userdataimage
271 @echo "target NAND userdata image: $(3)"
272 $(hide) mkdir -p $(1)
273 $(hide) $(MKYAFFS2) -f $(2) $(TARGET_OUT_DATA) $(3)
274 $(hide) chmod a+r $(3)
275 $(hide) $(call assert-max-image-size,$@,$(BOARD_USERDATAIMAGE_PARTITION_SIZE),yaffs)
276endef
277
278# Generate persist image for NAND
279define build-nand-persistimage
280 @echo "target NAND persist image: $(3)"
281 $(hide) mkdir -p $(1)
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530282 $(hide) $(MKYAFFS2) -f $(2) $(TARGET_OUT_PERSIST) $(3)
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530283 $(hide) chmod a+r $(3)
284 $(hide) $(call assert-max-image-size,$@,$(BOARD_PERSISTIMAGE_PARTITION_SIZE),yaffs)
285endef
286
Satya Durga Srinivasu Prabhala154c9152012-08-15 23:16:23 +0530287$(INSTALLED_4K_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INSTALLED_BOOTIMAGE_TARGET)
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530288 $(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 +0530289ifeq ($(call is-board-platform,msm7627a),true)
290 $(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 +0530291 $(hide) $(call build-nand-bootimage,$(BCHECC_OUT),$(INTERNAL_4K_BOOTIMAGE_ARGS),$(INSTALLED_BCHECC_BOOTIMAGE_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_SYSTEMIMAGE_TARGET): $(MKYAFFS2) $(INSTALLED_SYSTEMIMAGE)
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530295 $(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 +0530296ifeq ($(call is-board-platform,msm7627a),true)
297 $(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 +0530298 $(hide) $(call build-nand-systemimage,$(BCHECC_OUT),$(INTERNAL_BCHECC_MKYAFFS2_FLAGS),$(INSTALLED_BCHECC_SYSTEMIMAGE_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_USERDATAIMAGE_TARGET): $(MKYAFFS2) $(INSTALLED_USERDATAIMAGE_TARGET)
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530302 $(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 +0530303ifeq ($(call is-board-platform,msm7627a),true)
304 $(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 +0530305 $(hide) $(call build-nand-userdataimage,$(BCHECC_OUT),$(INTERNAL_BCHECC_MKYAFFS2_FLAGS),$(INSTALLED_BCHECC_USERDATAIMAGE_TARGET))
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530306endif # is-board-platform
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530307
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530308$(INSTALLED_4K_PERSISTIMAGE_TARGET): $(MKYAFFS2) $(INSTALLED_PERSISTIMAGE_TARGET)
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530309 $(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 +0530310ifeq ($(call is-board-platform,msm7627a),true)
311 $(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 +0530312 $(hide) $(call build-nand-persistimage,$(BCHECC_OUT),$(INTERNAL_BCHECC_MKYAFFS2_FLAGS),$(INSTALLED_BCHECC_PERSISTIMAGE_TARGET))
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530313endif # is-board-platform
314
Satya Durga Srinivasu Prabhala154c9152012-08-15 23:16:23 +0530315$(INSTALLED_4K_RECOVERYIMAGE_TARGET): $(MKBOOTIMG) $(INSTALLED_RECOVERYIMAGE_TARGET) $(recovery_nand_fstab)
Channagoud Kadabic3445642012-07-31 18:02:29 +0530316 $(hide) cp -f $(recovery_nand_fstab) $(TARGET_RECOVERY_ROOT_OUT)/etc
317 $(MKBOOTFS) $(TARGET_RECOVERY_ROOT_OUT) | $(MINIGZIP) > $(recovery_ramdisk)
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530318 $(hide) $(call build-nand-bootimage,$(4K_NAND_OUT),$(INTERNAL_4K_RECOVERYIMAGE_ARGS),$(INSTALLED_4K_RECOVERYIMAGE_TARGET))
319ifeq ($(call is-board-platform,msm7627a),true)
320 $(hide) $(call build-nand-bootimage,$(2K_NAND_OUT),$(INTERNAL_2K_RECOVERYIMAGE_ARGS),$(INSTALLED_2K_RECOVERYIMAGE_TARGET))
321 $(hide) $(call build-nand-bootimage,$(BCHECC_OUT),$(INTERNAL_4K_RECOVERYIMAGE_ARGS),$(INSTALLED_BCHECC_RECOVERYIMAGE_TARGET))
322endif # is-board-platform
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530323
324ALL_DEFAULT_INSTALLED_MODULES += \
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530325 $(INSTALLED_4K_BOOTIMAGE_TARGET) \
326 $(INSTALLED_4K_SYSTEMIMAGE_TARGET) \
327 $(INSTALLED_4K_USERDATAIMAGE_TARGET) \
328 $(INSTALLED_4K_PERSISTIMAGE_TARGET)
329
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530330ALL_MODULES.$(LOCAL_MODULE).INSTALLED += \
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530331 $(INSTALLED_4K_BOOTIMAGE_TARGET) \
332 $(INSTALLED_4K_SYSTEMIMAGE_TARGET) \
333 $(INSTALLED_4K_USERDATAIMAGE_TARGET) \
334 $(INSTALLED_4K_PERSISTIMAGE_TARGET)
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530335
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530336ifneq ($(BUILD_TINY_ANDROID),true)
Satya Durga Srinivasu Prabhala154c9152012-08-15 23:16:23 +0530337ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_4K_RECOVERYIMAGE_TARGET)
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530338ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_4K_RECOVERYIMAGE_TARGET)
339endif # !BUILD_TINY_ANDROID
340
341endif # is-board-platform-in-list
Channagoud Kadabi27614e22012-08-07 17:58:03 +0530342
Sreedhar7f420492014-03-05 14:42:24 +0530343#####################################################################################################
344# support for small user data image
345
346ifneq ($(strip $(BOARD_SMALL_USERDATAIMAGE_PARTITION_SIZE)),)
347# Don't build userdata.img if it's extfs but no partition size
348skip_userdata.img :=
349ifdef INTERNAL_USERIMAGES_EXT_VARIANT
350ifndef BOARD_USERDATAIMAGE_PARTITION_SIZE
351skip_userdata.img := true
352endif
353endif
354
355ifneq ($(skip_userdata.img),true)
356
357INSTALLED_SMALL_USERDATAIMAGE_TARGET := $(PRODUCT_OUT)/userdata_small.img
358
359define build-small-userdataimage
360 @echo "target small userdata image"
361 $(hide) mkdir -p $(1)
362 $(hide) $(MKEXTUSERIMG) -s $(TARGET_OUT_DATA) $(2) ext4 data $(BOARD_SMALL_USERDATAIMAGE_PARTITION_SIZE)
363 $(hide) chmod a+r $@
364 $(hide) $(call assert-max-image-size,$@,$(BOARD_SMALL_USERDATAIMAGE_PARTITION_SIZE),yaffs)
365endef
366
367
368$(INSTALLED_SMALL_USERDATAIMAGE_TARGET): $(MKEXTUSERIMG) $(MAKE_EXT4FS) $(INSTALLED_USERDATAIMAGE_TARGET)
369 $(hide) $(call build-small-userdataimage,$(PRODUCT_OUT),$(INSTALLED_SMALL_USERDATAIMAGE_TARGET))
370
371ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_SMALL_USERDATAIMAGE_TARGET)
372ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_SMALL_USERDATAIMAGE_TARGET)
373
374endif
375
376endif
377
Channagoud Kadabi435d00a2014-05-21 14:58:34 -0700378#----------------------------------------------------------------------
379# Compile (L)ittle (K)ernel bootloader and the nandwrite utility
380#----------------------------------------------------------------------
381ifneq ($(strip $(TARGET_NO_BOOTLOADER)),true)
382
383# Compile
384include bootable/bootloader/lk/AndroidBoot.mk
385
386$(INSTALLED_BOOTLOADER_MODULE): $(TARGET_EMMC_BOOTLOADER) | $(ACP)
387 $(transform-prebuilt-to-target)
388$(BUILT_TARGET_FILES_PACKAGE): $(INSTALLED_BOOTLOADER_MODULE)
389
390droidcore: $(INSTALLED_BOOTLOADER_MODULE)
391endif
392
Sreedhar Lakkaraju146b3bb2014-09-02 22:05:49 +0530393#----------------------------------------------------------------------
394# Generate secure boot image
395#----------------------------------------------------------------------
396ifeq ($(TARGET_BOOTIMG_SIGNED),true)
397.PHONY: bootimage
398bootimage: $(INSTALLED_BOOTIMAGE_TARGET) $(INSTALLED_SEC_BOOTIMAGE_TARGET)
399endif
400
Sreedhar7f420492014-03-05 14:42:24 +0530401###################################################################################################
402
Channagoud Kadabi27614e22012-08-07 17:58:03 +0530403.PHONY: aboot
404aboot: $(INSTALLED_BOOTLOADER_MODULE)
405
Satya Durga Srinivasu Prabhala154c9152012-08-15 23:16:23 +0530406.PHONY: kernel
407kernel: $(INSTALLED_BOOTIMAGE_TARGET) $(INSTALLED_SEC_BOOTIMAGE_TARGET) $(INSTALLED_4K_BOOTIMAGE_TARGET)
Channagoud Kadabib5e7dba2012-09-06 18:21:35 +0530408
409.PHONY: recoveryimage
410recoveryimage: $(INSTALLED_RECOVERYIMAGE_TARGET) $(INSTALLED_4K_RECOVERYIMAGE_TARGET)
SREEDHAR La3027c22013-05-30 00:02:14 +0530411
412.PHONY: kernelclean
413kernelclean:
414 $(hide) make -C kernel O=../$(PRODUCT_OUT)/obj/KERNEL_OBJ/ ARCH=$(TARGET_ARCH) CROSS_COMPILE=arm-eabi- clean
415 $(hide) make -C kernel O=../$(PRODUCT_OUT)/obj/KERNEL_OBJ/ ARCH=$(TARGET_ARCH) CROSS_COMPILE=arm-eabi- mrproper
416 $(hide) make -C kernel O=../$(PRODUCT_OUT)/obj/KERNEL_OBJ/ ARCH=$(TARGET_ARCH) CROSS_COMPILE=arm-eabi- distclean
417 $(hide) if [ -f "$(INSTALLED_BOOTIMAGE_TARGET)" ]; then rm $(INSTALLED_BOOTIMAGE_TARGET); fi
418 $(hide) if [ -f "$(INSTALLED_SEC_BOOTIMAGE_TARGET)" ]; then rm $(INSTALLED_SEC_BOOTIMAGE_TARGET); fi
419 $(hide) if [ -f "$(INSTALLED_BOOTIMAGE_TARGET).nonsecure" ]; then rm $(INSTALLED_BOOTIMAGE_TARGET).nonsecure; fi
420 $(hide) if [ -f "$(PRODUCT_OUT)/kernel" ]; then rm $(PRODUCT_OUT)/kernel; fi
421 $(hide) if [ -f "$(INSTALLED_4K_BOOTIMAGE_TARGET)" ]; then rm $(INSTALLED_4K_BOOTIMAGE_TARGET); fi
422 $(hide) if [ -f "$(INSTALLED_2K_BOOTIMAGE_TARGET)" ]; then rm $(INSTALLED_2K_BOOTIMAGE_TARGET); fi
423 $(hide) if [ -f "$(INSTALLED_BCHECC_BOOTIMAGE_TARGET)" ]; then rm $(INSTALLED_BCHECC_BOOTIMAGE_TARGET); fi
424 @echo "kernel cleanup done"