1#
2# Copyright (C) 2013-2015 OpenWrt.org
3#
4# This is free software, licensed under the GNU General Public License v2.
5# See /LICENSE for more information.
6#
7
8include $(TOPDIR)/rules.mk
9include $(INCLUDE_DIR)/image.mk
10
11BOARDS:= \
12	imx23-olinuxino \
13	imx28-duckbill
14
15FAT32_BLOCK_SIZE=1024
16FAT32_BLOCKS=$(shell echo $$(($(CONFIG_TARGET_BOOTFS_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE))))
17
18define Image/BuildKernel
19	mkimage -A arm -O linux -T kernel -C none \
20		-a 0x40008000 -e 0x40008000 \
21		-n 'ARM OpenWrt Linux-$(LINUX_VERSION)' \
22		-d $(KDIR)/zImage $(KDIR)/uImage
23	cp $(KDIR)/uImage $(BIN_DIR)/$(IMG_PREFIX)-uImage
24endef
25
26define Image/InstallKernel
27
28  ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_ZIMAGE),)
29	mkdir -p $(TARGET_DIR)/boot
30	cp $(KDIR)/zImage $(TARGET_DIR)/boot/
31  endif
32
33  ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_UIMAGE),)
34	mkdir -p $(TARGET_DIR)/boot
35	cp $(KDIR)/uImage $(TARGET_DIR)/boot/
36  endif
37  
38  ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_DTB),)
39	mkdir -p $(TARGET_DIR)/boot
40	$(foreach board,$(BOARDS),
41		$(CP) $(DTS_DIR)/$(board).dtb $(TARGET_DIR)/boot/
42	)
43  endif
44
45endef
46
47define Image/Build/SDCard-vfat-ext4
48	rm -f $(KDIR)/boot.img
49	mkdosfs $(KDIR)/boot.img -C $(FAT32_BLOCKS)
50
51	mcopy -i $(KDIR)/boot.img $(DTS_DIR)/$(3).dtb ::$(3).dtb
52	mcopy -i $(KDIR)/boot.img $(BIN_DIR)/$(IMG_PREFIX)-uImage ::uImage
53
54	./gen_sdcard_vfat_ext4.sh \
55		$(BIN_DIR)/$(2) \
56		$(BIN_DIR)/uboot-mxs-$(4)/uboot-mxs-$(4).sb \
57		$(KDIR)/boot.img \
58		$(KDIR)/root.$(1) \
59		$(CONFIG_TARGET_BOOTFS_PARTSIZE) \
60		$(CONFIG_TARGET_ROOTFS_PARTSIZE)
61endef
62
63define Image/Build/SDCard-ext4-ext4
64	./gen_sdcard_ext4_ext4.sh \
65		$(BIN_DIR)/$(2) \
66		$(BIN_DIR)/uboot-mxs-$(4)/uboot-mxs-$(4).sb \
67		$(KDIR)/root.$(1) \
68		$(CONFIG_TARGET_ROOTFS_PARTSIZE)
69endef
70
71define Image/Build/Profile/olinuxino-maxi
72	$(call Image/Build/SDCard-vfat-ext4,$(1),$(2),imx23-olinuxino,mx23_olinuxino)
73endef
74
75define Image/Build/Profile/olinuxino-micro
76	$(call Image/Build/SDCard-vfat-ext4,$(1),$(2),imx23-olinuxino,mx23_olinuxino)
77endef
78
79define Image/Build/Profile/duckbill
80	$(call Image/Build/SDCard-ext4-ext4,$(1),$(2),imx28-duckbill,duckbill)
81endef
82
83define Image/Build
84	$(call Image/Build/$(1),$(1))
85	$(call Image/Build/Profile/$(PROFILE),$(1),$(IMG_PREFIX)-$(PROFILE)-sdcard.img)
86	dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/$(IMG_PREFIX)-root.$(1) bs=128k conv=sync
87endef
88
89$(eval $(call BuildImage))
90