blob: 22d88ec10dbe12a1033e70f20ae8bcf30b9f29a4 [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
Channagoud Kadabi14ee4072012-08-09 22:19:10 +053025
26ifneq ($(BUILD_TINY_ANDROID),true)
27intermediates := $(call intermediates-dir-for,PACKAGING,recovery_patch)
28RECOVERY_FROM_BOOT_PATCH := $(intermediates)/recovery_from_boot.p
29endif
30
31ifndef TARGET_SHA_TYPE
32 TARGET_SHA_TYPE := sha256
33endif
34
35define build-boot-image
36 $(hide) mv -f $(1) $(1).nonsecure
37 $(hide) openssl dgst -$(TARGET_SHA_TYPE) -binary $(1).nonsecure > $(1).$(TARGET_SHA_TYPE)
38 $(hide) openssl rsautl -sign -in $(1).$(TARGET_SHA_TYPE) -inkey $(PRODUCT_PRIVATE_KEY) -out $(1).sig
39 $(hide) dd if=/dev/zero of=$(1).sig.padded bs=$(BOARD_KERNEL_PAGESIZE) count=1
40 $(hide) dd if=$(1).sig of=$(1).sig.padded conv=notrunc
41 $(hide) cat $(1).nonsecure $(1).sig.padded > $(1).secure
42 $(hide) rm -rf $(1).$(TARGET_SHA_TYPE) $(1).sig $(1).sig.padded
43 $(hide) mv -f $(1).secure $(1)
44endef
45
46$(INSTALLED_SEC_BOOTIMAGE_TARGET): $(INSTALLED_BOOTIMAGE_TARGET) $(RECOVERY_FROM_BOOT_PATCH)
47 $(hide) $(call build-boot-image,$(INSTALLED_BOOTIMAGE_TARGET),$(INTERNAL_BOOTIMAGE_ARGS))
48
49ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_SEC_BOOTIMAGE_TARGET)
50ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_SEC_BOOTIMAGE_TARGET)
51endif
52
53#----------------------------------------------------------------------
David Ng14d83582012-07-31 16:53:06 -070054# Generate persist image (persist.img)
55#----------------------------------------------------------------------
Sreedhar1f89a582013-10-07 00:13:58 +053056ifneq ($(strip $(TARGET_NO_KERNEL)),true)
57
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +053058TARGET_OUT_PERSIST := $(PRODUCT_OUT)/persist
59
60INTERNAL_PERSISTIMAGE_FILES := \
61 $(filter $(TARGET_OUT_PERSIST)/%,$(ALL_DEFAULT_INSTALLED_MODULES))
62
63INSTALLED_PERSISTIMAGE_TARGET := $(PRODUCT_OUT)/persist.img
64
65define build-persistimage-target
66 $(call pretty,"Target persist fs image: $(INSTALLED_PERSISTIMAGE_TARGET)")
67 @mkdir -p $(TARGET_OUT_PERSIST)
68 $(hide) $(MKEXTUSERIMG) -s $(TARGET_OUT_PERSIST) $@ ext4 persist $(BOARD_PERSISTIMAGE_PARTITION_SIZE)
69 $(hide) chmod a+r $@
70 $(hide) $(call assert-max-image-size,$@,$(BOARD_PERSISTIMAGE_PARTITION_SIZE),yaffs)
71endef
72
73$(INSTALLED_PERSISTIMAGE_TARGET): $(MKEXTUSERIMG) $(MAKE_EXT4FS) $(INTERNAL_PERSISTIMAGE_FILES)
74 $(build-persistimage-target)
75
76ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_PERSISTIMAGE_TARGET)
77ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_PERSISTIMAGE_TARGET)
78
Sreedhar1f89a582013-10-07 00:13:58 +053079endif
David Ng14d83582012-07-31 16:53:06 -070080
81#----------------------------------------------------------------------
82# Generate device tree image (dt.img)
83#----------------------------------------------------------------------
84ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true)
David Ng0ef50032012-08-09 14:35:19 -070085ifeq ($(strip $(BUILD_TINY_ANDROID)),true)
86include device/qcom/common/dtbtool/Android.mk
87endif
88
David Ng14d83582012-07-31 16:53:06 -070089DTBTOOL := $(HOST_OUT_EXECUTABLES)/dtbTool$(HOST_EXECUTABLE_SUFFIX)
90
91INSTALLED_DTIMAGE_TARGET := $(PRODUCT_OUT)/dt.img
92
Stephen Boydb9906fe2013-08-21 17:05:26 -070093possible_dtb_dirs = $(KERNEL_OUT)/arch/arm/boot/dts/ $(KERNEL_OUT)/arch/arm/boot/
94dtb_dir = $(firstword $(wildcard $(possible_dtb_dirs)))
95
David Ng14d83582012-07-31 16:53:06 -070096define build-dtimage-target
97 $(call pretty,"Target dt image: $(INSTALLED_DTIMAGE_TARGET)")
Stephen Boydb9906fe2013-08-21 17:05:26 -070098 $(hide) $(DTBTOOL) -o $@ -s $(BOARD_KERNEL_PAGESIZE) -p $(KERNEL_OUT)/scripts/dtc/ $(dtb_dir)
David Ng14d83582012-07-31 16:53:06 -070099 $(hide) chmod a+r $@
100endef
101
102$(INSTALLED_DTIMAGE_TARGET): $(DTBTOOL) $(INSTALLED_KERNEL_TARGET)
103 $(build-dtimage-target)
104
105ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_DTIMAGE_TARGET)
106ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_DTIMAGE_TARGET)
107endif
108
Mayank Rana3a15cf42013-09-05 12:49:58 +0530109#---------------------------------------------------------------------
110# Generate usbdisk.img FAT32 image
111# Please NOTICE: the valid max size of usbdisk.bin is 10GB
112#---------------------------------------------------------------------
113ifneq ($(strip $(BOARD_USBIMAGE_PARTITION_SIZE_KB)),)
114define build-usbimage-target
115 $(hide) mkfs.vfat -n "Internal SD" -F 32 -C $(PRODUCT_OUT)/usbdisk.tmp $(BOARD_USBIMAGE_PARTITION_SIZE_KB)
116 $(hide) dd if=$(PRODUCT_OUT)/usbdisk.tmp of=$(INSTALLED_USBIMAGE_TARGET) bs=1024 count=20480
117 $(hide) rm -f $(PRODUCT_OUT)/usbdisk.tmp
118endef
119
120$(INSTALLED_USBIMAGE_TARGET):
121 $(build-usbimage-target)
122ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_USBIMAGE_TARGET)
123ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_DTIMAGE_TARGET)
124endif
125
Xiaogang Cui302eca32013-09-12 12:23:04 +0800126#----------------------------------------------------------------------
127# Generate CDROM image
128#----------------------------------------------------------------------
Xiaogang Cuie44fb7a2014-01-09 19:52:52 +0800129CDROM_RES_FILE := $(TARGET_DEVICE_DIR)/cdrom_res
guopingyd75708b2014-02-21 17:10:02 +0800130CDROM_DUMMY_FILE := $(TARGET_DEVICE_DIR)/cdrom_res/zero.bin
131
Xiaogang Cui302eca32013-09-12 12:23:04 +0800132ifneq ($(wildcard $(CDROM_RES_FILE)),)
133CDROM_ISO_TARGET := $(PRODUCT_OUT)/system/etc/cdrom_install.iso
guopingyd75708b2014-02-21 17:10:02 +0800134#delete the dummy file if it already exists.
135ifneq ($(wildcard $(CDROM_DUMMY_FILE)),)
136$(shell rm -f $(CDROM_DUMMY_FILE))
137endif
Xiaogang Cui6b419492014-02-18 14:07:31 +0800138CDROM_RES_SIZE := $(shell du -bs $(CDROM_RES_FILE) | egrep -o '^[0-9]+')
Xiaogang Cuie44fb7a2014-01-09 19:52:52 +0800139#At least 300 sectors, 2048Bytes per Sector, set as 310 here
140CDROM_MIN_SIZE := 634880
141CDROM_CAPACITY_IS_ENOUGH := $(shell expr $(CDROM_RES_SIZE) / $(CDROM_MIN_SIZE))
142ifeq ($(CDROM_CAPACITY_IS_ENOUGH),0)
143CDROM_DUMMY_SIZE := $(shell expr $(CDROM_MIN_SIZE) - $(CDROM_RES_SIZE))
guopingyd75708b2014-02-21 17:10:02 +0800144CDROM_DUMMY_SIZE_KB := $(shell expr `expr $(CDROM_DUMMY_SIZE) + 1023` / 1024)
Xiaogang Cuie44fb7a2014-01-09 19:52:52 +0800145$(shell dd if=/dev/zero of=$(CDROM_RES_FILE)/zero.bin bs=1024 count=$(CDROM_DUMMY_SIZE_KB))
146endif
Xiaogang Cui302eca32013-09-12 12:23:04 +0800147
148define build-cdrom-target
149 $(hide) mkisofs -o $(CDROM_ISO_TARGET) $(CDROM_RES_FILE)
150endef
151
Xiaogang Cuic239f2c2013-10-14 17:45:23 +0800152$(CDROM_ISO_TARGET): $(CDROM_RES_FILE)
Xiaogang Cui302eca32013-09-12 12:23:04 +0800153 $(build-cdrom-target)
154
155ALL_DEFAULT_INSTALLED_MODULES += $(CDROM_ISO_TARGET)
156ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(CDROM_ISO_TARGET)
157endif
David Ng14d83582012-07-31 16:53:06 -0700158
159#----------------------------------------------------------------------
160# Generate NAND images
161#----------------------------------------------------------------------
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530162ifeq ($(call is-board-platform-in-list,msm7627a msm7630_surf),true)
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530163
1642K_NAND_OUT := $(PRODUCT_OUT)/2k_nand_images
1654K_NAND_OUT := $(PRODUCT_OUT)/4k_nand_images
166BCHECC_OUT := $(PRODUCT_OUT)/bchecc_images
167
168INSTALLED_2K_BOOTIMAGE_TARGET := $(2K_NAND_OUT)/boot.img
169INSTALLED_2K_SYSTEMIMAGE_TARGET := $(2K_NAND_OUT)/system.img
170INSTALLED_2K_USERDATAIMAGE_TARGET := $(2K_NAND_OUT)/userdata.img
171INSTALLED_2K_PERSISTIMAGE_TARGET := $(2K_NAND_OUT)/persist.img
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530172INSTALLED_2K_RECOVERYIMAGE_TARGET := $(2K_NAND_OUT)/recovery.img
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530173
174INSTALLED_4K_BOOTIMAGE_TARGET := $(4K_NAND_OUT)/boot.img
175INSTALLED_4K_SYSTEMIMAGE_TARGET := $(4K_NAND_OUT)/system.img
176INSTALLED_4K_USERDATAIMAGE_TARGET := $(4K_NAND_OUT)/userdata.img
177INSTALLED_4K_PERSISTIMAGE_TARGET := $(4K_NAND_OUT)/persist.img
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530178INSTALLED_4K_RECOVERYIMAGE_TARGET := $(4K_NAND_OUT)/recovery.img
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530179
180INSTALLED_BCHECC_BOOTIMAGE_TARGET := $(BCHECC_OUT)/boot.img
181INSTALLED_BCHECC_SYSTEMIMAGE_TARGET := $(BCHECC_OUT)/system.img
182INSTALLED_BCHECC_USERDATAIMAGE_TARGET := $(BCHECC_OUT)/userdata.img
183INSTALLED_BCHECC_PERSISTIMAGE_TARGET := $(BCHECC_OUT)/persist.img
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530184INSTALLED_BCHECC_RECOVERYIMAGE_TARGET := $(BCHECC_OUT)/recovery.img
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530185
Channagoud Kadabic3445642012-07-31 18:02:29 +0530186recovery_nand_fstab := $(TARGET_DEVICE_DIR)/recovery_nand.fstab
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530187
188NAND_BOOTIMAGE_ARGS := \
189 --kernel $(INSTALLED_KERNEL_TARGET) \
190 --ramdisk $(INSTALLED_RAMDISK_TARGET) \
191 --cmdline "$(BOARD_KERNEL_CMDLINE)" \
192 --base $(BOARD_KERNEL_BASE)
193
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530194NAND_RECOVERYIMAGE_ARGS := \
195 --kernel $(INSTALLED_KERNEL_TARGET) \
196 --ramdisk $(recovery_ramdisk) \
197 --cmdline "$(BOARD_KERNEL_CMDLINE)" \
198 --base $(BOARD_KERNEL_BASE)
199
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530200INTERNAL_4K_BOOTIMAGE_ARGS := $(NAND_BOOTIMAGE_ARGS)
201INTERNAL_4K_BOOTIMAGE_ARGS += --pagesize $(BOARD_KERNEL_PAGESIZE)
202
203INTERNAL_2K_BOOTIMAGE_ARGS := $(NAND_BOOTIMAGE_ARGS)
204INTERNAL_2K_BOOTIMAGE_ARGS += --pagesize $(BOARD_KERNEL_2KPAGESIZE)
205
206INTERNAL_4K_MKYAFFS2_FLAGS := -c $(BOARD_KERNEL_PAGESIZE)
207INTERNAL_4K_MKYAFFS2_FLAGS += -s $(BOARD_KERNEL_SPARESIZE)
208
209INTERNAL_2K_MKYAFFS2_FLAGS := -c $(BOARD_KERNEL_2KPAGESIZE)
210INTERNAL_2K_MKYAFFS2_FLAGS += -s $(BOARD_KERNEL_2KSPARESIZE)
211
212INTERNAL_BCHECC_MKYAFFS2_FLAGS := -c $(BOARD_KERNEL_PAGESIZE)
213INTERNAL_BCHECC_MKYAFFS2_FLAGS += -s $(BOARD_KERNEL_BCHECC_SPARESIZE)
214
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530215INTERNAL_4K_RECOVERYIMAGE_ARGS := $(NAND_RECOVERYIMAGE_ARGS)
216INTERNAL_4K_RECOVERYIMAGE_ARGS += --pagesize $(BOARD_KERNEL_PAGESIZE)
217
218INTERNAL_2K_RECOVERYIMAGE_ARGS := $(NAND_RECOVERYIMAGE_ARGS)
219INTERNAL_2K_RECOVERYIMAGE_ARGS += --pagesize $(BOARD_KERNEL_2KPAGESIZE)
220
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530221# Generate boot image for NAND
Channagoud Kadabi9a92e702012-08-14 18:25:09 +0530222ifeq ($(TARGET_BOOTIMG_SIGNED),true)
223
224ifndef TARGET_SHA_TYPE
225 TARGET_SHA_TYPE := sha256
226endif
227
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530228define build-nand-bootimage
Channagoud Kadabi9a92e702012-08-14 18:25:09 +0530229 @echo "target NAND boot image: $(3)"
230 $(hide) mkdir -p $(1)
231 $(hide) $(MKBOOTIMG) $(2) --output $(3).nonsecure
232 $(hide) openssl dgst -$(TARGET_SHA_TYPE) -binary $(3).nonsecure > $(3).$(TARGET_SHA_TYPE)
233 $(hide) openssl rsautl -sign -in $(3).$(TARGET_SHA_TYPE) -inkey $(PRODUCT_PRIVATE_KEY) -out $(3).sig
234 $(hide) dd if=/dev/zero of=$(3).sig.padded bs=$(BOARD_KERNEL_PAGESIZE) count=1
235 $(hide) dd if=$(3).sig of=$(3).sig.padded conv=notrunc
236 $(hide) cat $(3).nonsecure $(3).sig.padded > $(3)
237 $(hide) rm -rf $(3).$(TARGET_SHA_TYPE) $(3).sig $(3).sig.padded
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530238endef
Channagoud Kadabi9a92e702012-08-14 18:25:09 +0530239else
240define build-nand-bootimage
241 @echo "target NAND boot image: $(3)"
242 $(hide) mkdir -p $(1)
243 $(hide) $(MKBOOTIMG) $(2) --output $(3)
244endef
245 $(hide) $(call assert-max-image-size,$@,$(BOARD_BOOTIMAGE_PARTITION_SIZE),raw)
246endif
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530247
248# Generate system image for NAND
249define build-nand-systemimage
250 @echo "target NAND system image: $(3)"
251 $(hide) mkdir -p $(1)
252 $(hide) $(MKYAFFS2) -f $(2) $(TARGET_OUT) $(3)
253 $(hide) chmod a+r $(3)
254 $(hide) $(call assert-max-image-size,$@,$(BOARD_SYSTEMIMAGE_PARTITION_SIZE),yaffs)
255endef
256
257# Generate userdata image for NAND
258define build-nand-userdataimage
259 @echo "target NAND userdata image: $(3)"
260 $(hide) mkdir -p $(1)
261 $(hide) $(MKYAFFS2) -f $(2) $(TARGET_OUT_DATA) $(3)
262 $(hide) chmod a+r $(3)
263 $(hide) $(call assert-max-image-size,$@,$(BOARD_USERDATAIMAGE_PARTITION_SIZE),yaffs)
264endef
265
266# Generate persist image for NAND
267define build-nand-persistimage
268 @echo "target NAND persist image: $(3)"
269 $(hide) mkdir -p $(1)
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530270 $(hide) $(MKYAFFS2) -f $(2) $(TARGET_OUT_PERSIST) $(3)
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530271 $(hide) chmod a+r $(3)
272 $(hide) $(call assert-max-image-size,$@,$(BOARD_PERSISTIMAGE_PARTITION_SIZE),yaffs)
273endef
274
Satya Durga Srinivasu Prabhala154c9152012-08-15 23:16:23 +0530275$(INSTALLED_4K_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INSTALLED_BOOTIMAGE_TARGET)
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530276 $(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 +0530277ifeq ($(call is-board-platform,msm7627a),true)
278 $(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 +0530279 $(hide) $(call build-nand-bootimage,$(BCHECC_OUT),$(INTERNAL_4K_BOOTIMAGE_ARGS),$(INSTALLED_BCHECC_BOOTIMAGE_TARGET))
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530280endif # is-board-platform
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530281
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530282$(INSTALLED_4K_SYSTEMIMAGE_TARGET): $(MKYAFFS2) $(INSTALLED_SYSTEMIMAGE)
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530283 $(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 +0530284ifeq ($(call is-board-platform,msm7627a),true)
285 $(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 +0530286 $(hide) $(call build-nand-systemimage,$(BCHECC_OUT),$(INTERNAL_BCHECC_MKYAFFS2_FLAGS),$(INSTALLED_BCHECC_SYSTEMIMAGE_TARGET))
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530287endif # is-board-platform
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530288
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530289$(INSTALLED_4K_USERDATAIMAGE_TARGET): $(MKYAFFS2) $(INSTALLED_USERDATAIMAGE_TARGET)
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530290 $(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 +0530291ifeq ($(call is-board-platform,msm7627a),true)
292 $(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 +0530293 $(hide) $(call build-nand-userdataimage,$(BCHECC_OUT),$(INTERNAL_BCHECC_MKYAFFS2_FLAGS),$(INSTALLED_BCHECC_USERDATAIMAGE_TARGET))
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530294endif # is-board-platform
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530295
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530296$(INSTALLED_4K_PERSISTIMAGE_TARGET): $(MKYAFFS2) $(INSTALLED_PERSISTIMAGE_TARGET)
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530297 $(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 +0530298ifeq ($(call is-board-platform,msm7627a),true)
299 $(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 +0530300 $(hide) $(call build-nand-persistimage,$(BCHECC_OUT),$(INTERNAL_BCHECC_MKYAFFS2_FLAGS),$(INSTALLED_BCHECC_PERSISTIMAGE_TARGET))
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530301endif # is-board-platform
302
Satya Durga Srinivasu Prabhala154c9152012-08-15 23:16:23 +0530303$(INSTALLED_4K_RECOVERYIMAGE_TARGET): $(MKBOOTIMG) $(INSTALLED_RECOVERYIMAGE_TARGET) $(recovery_nand_fstab)
Channagoud Kadabic3445642012-07-31 18:02:29 +0530304 $(hide) cp -f $(recovery_nand_fstab) $(TARGET_RECOVERY_ROOT_OUT)/etc
305 $(MKBOOTFS) $(TARGET_RECOVERY_ROOT_OUT) | $(MINIGZIP) > $(recovery_ramdisk)
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530306 $(hide) $(call build-nand-bootimage,$(4K_NAND_OUT),$(INTERNAL_4K_RECOVERYIMAGE_ARGS),$(INSTALLED_4K_RECOVERYIMAGE_TARGET))
307ifeq ($(call is-board-platform,msm7627a),true)
308 $(hide) $(call build-nand-bootimage,$(2K_NAND_OUT),$(INTERNAL_2K_RECOVERYIMAGE_ARGS),$(INSTALLED_2K_RECOVERYIMAGE_TARGET))
309 $(hide) $(call build-nand-bootimage,$(BCHECC_OUT),$(INTERNAL_4K_RECOVERYIMAGE_ARGS),$(INSTALLED_BCHECC_RECOVERYIMAGE_TARGET))
310endif # is-board-platform
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530311
312ALL_DEFAULT_INSTALLED_MODULES += \
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530313 $(INSTALLED_4K_BOOTIMAGE_TARGET) \
314 $(INSTALLED_4K_SYSTEMIMAGE_TARGET) \
315 $(INSTALLED_4K_USERDATAIMAGE_TARGET) \
316 $(INSTALLED_4K_PERSISTIMAGE_TARGET)
317
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530318ALL_MODULES.$(LOCAL_MODULE).INSTALLED += \
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530319 $(INSTALLED_4K_BOOTIMAGE_TARGET) \
320 $(INSTALLED_4K_SYSTEMIMAGE_TARGET) \
321 $(INSTALLED_4K_USERDATAIMAGE_TARGET) \
322 $(INSTALLED_4K_PERSISTIMAGE_TARGET)
Satya Durga Srinivasu Prabhalad88e8882012-07-13 02:40:24 +0530323
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530324ifneq ($(BUILD_TINY_ANDROID),true)
Satya Durga Srinivasu Prabhala154c9152012-08-15 23:16:23 +0530325ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_4K_RECOVERYIMAGE_TARGET)
Satya Durga Srinivasu Prabhala16e118c2012-07-17 21:34:35 +0530326ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_4K_RECOVERYIMAGE_TARGET)
327endif # !BUILD_TINY_ANDROID
328
329endif # is-board-platform-in-list
Channagoud Kadabi27614e22012-08-07 17:58:03 +0530330
Sreedhar7f420492014-03-05 14:42:24 +0530331#####################################################################################################
332# support for small user data image
333
334ifneq ($(strip $(BOARD_SMALL_USERDATAIMAGE_PARTITION_SIZE)),)
335# Don't build userdata.img if it's extfs but no partition size
336skip_userdata.img :=
337ifdef INTERNAL_USERIMAGES_EXT_VARIANT
338ifndef BOARD_USERDATAIMAGE_PARTITION_SIZE
339skip_userdata.img := true
340endif
341endif
342
343ifneq ($(skip_userdata.img),true)
344
345INSTALLED_SMALL_USERDATAIMAGE_TARGET := $(PRODUCT_OUT)/userdata_small.img
346
347define build-small-userdataimage
348 @echo "target small userdata image"
349 $(hide) mkdir -p $(1)
350 $(hide) $(MKEXTUSERIMG) -s $(TARGET_OUT_DATA) $(2) ext4 data $(BOARD_SMALL_USERDATAIMAGE_PARTITION_SIZE)
351 $(hide) chmod a+r $@
352 $(hide) $(call assert-max-image-size,$@,$(BOARD_SMALL_USERDATAIMAGE_PARTITION_SIZE),yaffs)
353endef
354
355
356$(INSTALLED_SMALL_USERDATAIMAGE_TARGET): $(MKEXTUSERIMG) $(MAKE_EXT4FS) $(INSTALLED_USERDATAIMAGE_TARGET)
357 $(hide) $(call build-small-userdataimage,$(PRODUCT_OUT),$(INSTALLED_SMALL_USERDATAIMAGE_TARGET))
358
359ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_SMALL_USERDATAIMAGE_TARGET)
360ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_SMALL_USERDATAIMAGE_TARGET)
361
362endif
363
364endif
365
Channagoud Kadabi435d00a2014-05-21 14:58:34 -0700366#----------------------------------------------------------------------
367# Compile (L)ittle (K)ernel bootloader and the nandwrite utility
368#----------------------------------------------------------------------
369ifneq ($(strip $(TARGET_NO_BOOTLOADER)),true)
370
371# Compile
372include bootable/bootloader/lk/AndroidBoot.mk
373
374$(INSTALLED_BOOTLOADER_MODULE): $(TARGET_EMMC_BOOTLOADER) | $(ACP)
375 $(transform-prebuilt-to-target)
376$(BUILT_TARGET_FILES_PACKAGE): $(INSTALLED_BOOTLOADER_MODULE)
377
378droidcore: $(INSTALLED_BOOTLOADER_MODULE)
379endif
380
Sreedhar7f420492014-03-05 14:42:24 +0530381###################################################################################################
382
Channagoud Kadabi27614e22012-08-07 17:58:03 +0530383.PHONY: aboot
384aboot: $(INSTALLED_BOOTLOADER_MODULE)
385
Satya Durga Srinivasu Prabhala154c9152012-08-15 23:16:23 +0530386.PHONY: kernel
387kernel: $(INSTALLED_BOOTIMAGE_TARGET) $(INSTALLED_SEC_BOOTIMAGE_TARGET) $(INSTALLED_4K_BOOTIMAGE_TARGET)
Channagoud Kadabib5e7dba2012-09-06 18:21:35 +0530388
389.PHONY: recoveryimage
390recoveryimage: $(INSTALLED_RECOVERYIMAGE_TARGET) $(INSTALLED_4K_RECOVERYIMAGE_TARGET)
SREEDHAR La3027c22013-05-30 00:02:14 +0530391
392.PHONY: kernelclean
393kernelclean:
394 $(hide) make -C kernel O=../$(PRODUCT_OUT)/obj/KERNEL_OBJ/ ARCH=$(TARGET_ARCH) CROSS_COMPILE=arm-eabi- clean
395 $(hide) make -C kernel O=../$(PRODUCT_OUT)/obj/KERNEL_OBJ/ ARCH=$(TARGET_ARCH) CROSS_COMPILE=arm-eabi- mrproper
396 $(hide) make -C kernel O=../$(PRODUCT_OUT)/obj/KERNEL_OBJ/ ARCH=$(TARGET_ARCH) CROSS_COMPILE=arm-eabi- distclean
397 $(hide) if [ -f "$(INSTALLED_BOOTIMAGE_TARGET)" ]; then rm $(INSTALLED_BOOTIMAGE_TARGET); fi
398 $(hide) if [ -f "$(INSTALLED_SEC_BOOTIMAGE_TARGET)" ]; then rm $(INSTALLED_SEC_BOOTIMAGE_TARGET); fi
399 $(hide) if [ -f "$(INSTALLED_BOOTIMAGE_TARGET).nonsecure" ]; then rm $(INSTALLED_BOOTIMAGE_TARGET).nonsecure; fi
400 $(hide) if [ -f "$(PRODUCT_OUT)/kernel" ]; then rm $(PRODUCT_OUT)/kernel; fi
401 $(hide) if [ -f "$(INSTALLED_4K_BOOTIMAGE_TARGET)" ]; then rm $(INSTALLED_4K_BOOTIMAGE_TARGET); fi
402 $(hide) if [ -f "$(INSTALLED_2K_BOOTIMAGE_TARGET)" ]; then rm $(INSTALLED_2K_BOOTIMAGE_TARGET); fi
403 $(hide) if [ -f "$(INSTALLED_BCHECC_BOOTIMAGE_TARGET)" ]; then rm $(INSTALLED_BCHECC_BOOTIMAGE_TARGET); fi
404 @echo "kernel cleanup done"