7919ace980d5d942f9b4241843e7c71b8accb579
[openwrt/svn-archive/archive.git] / target / linux / socfpga / image / Makefile
1 #
2 # Copyright (C) 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 include $(TOPDIR)/rules.mk
8 include $(INCLUDE_DIR)/image.mk
9
10 FAT32_BLOCK_SIZE=1024
11 FAT32_BLOCKS=$(shell echo $$(($(CONFIG_SOCFPGA_SD_BOOT_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE))))
12 KDIR_TMP:=$(KDIR)/tmp
13 KDIR_TMP_EXT4:=$(KDIR)/tmp-ext4
14
15 # Terasic SoCkit: QSPI NOR, N25Q00A
16 SOCFPGA_SOCKIT_UBIFS_OPTS="-m 1 -e 65408 -c 2040"
17 SOCFPGA_SOCKIT_UBI_OPTS="-m 1 -p 64KiB -s 1"
18
19 define sanitize_profile_name
20 $(shell echo $(PROFILE) | tr '[:upper:]' '[:lower:]' | sed 's/_/-/g')
21 endef
22
23 define Image/BuildKernel/Template
24
25 ifneq ($(1),)
26 $(CP) $(DTS_DIR)/$(1).dtb $(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb
27
28 $(call Image/BuildKernel/MkFIT,$(1),$(KDIR)/zImage,$(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb,none,0x00008000,0x00008000)
29 $(CP) $(KDIR)/fit-$(1).itb $(BIN_DIR)/$(IMG_PREFIX)-$(1)-fit-uImage.itb
30
31 ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
32 $(call Image/BuildKernel/MkFIT,$(1),$(KDIR)/zImage-initramfs,$(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb,none,0x00008000,0x00008000,-initramfs)
33 $(CP) $(KDIR)/fit-$(1)-initramfs.itb $(BIN_DIR)/$(IMG_PREFIX)-$(1)-fit-uImage-initramfs.itb
34 endif
35 endif
36
37 $(CP) $(KDIR)/zImage $(BIN_DIR)/$(IMG_PREFIX)-zImage
38 $(call Image/BuildKernel/MkuImage, \
39 none, 0x00008000, 0x00008000, \
40 $(BIN_DIR)/$(IMG_PREFIX)-zImage, \
41 $(BIN_DIR)/$(IMG_PREFIX)-uImage \
42 )
43
44 ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
45 $(CP) $(KDIR)/zImage-initramfs $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs
46 $(call Image/BuildKernel/MkuImage, \
47 none, 0x00008000, 0x00008000, \
48 $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs, \
49 $(BIN_DIR)/$(IMG_PREFIX)-uImage-initramfs \
50 )
51 endif
52 endef
53
54 define Image/InstallKernel/Template
55
56 ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_KERNEL)$(CONFIG_TARGET_socfpga_SOCFPGA_SOCKIT),)
57 $(INSTALL_DIR) $(TARGET_DIR)/boot
58 ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_UIMAGE)$(CONFIG_TARGET_socfpga_SOCFPGA_SOCKIT),)
59 $(CP) $(BIN_DIR)/$(IMG_PREFIX)-uImage $(TARGET_DIR)/boot/
60 ln -sf $(IMG_PREFIX)-uImage $(TARGET_DIR)/boot/uImage
61 endif
62 ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_ZIMAGE),)
63 $(CP) $(BIN_DIR)/$(IMG_PREFIX)-zImage $(TARGET_DIR)/boot/
64 ln -sf $(IMG_PREFIX)-zImage $(TARGET_DIR)/boot/zImage
65 endif
66 ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_FIT),)
67 $(foreach dts,$(shell echo $(1)),
68 $(CP) $(BIN_DIR)/$(IMG_PREFIX)-$(dts)-fit-uImage.itb $(TARGET_DIR)/boot/
69 )
70 endif
71 endif
72
73 ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_DTB)$(CONFIG_TARGET_socfpga_SOCFPGA_SOCKIT),)
74 $(INSTALL_DIR) $(TARGET_DIR)/boot
75 $(foreach dts,$(shell echo $(1)),
76 $(CP) $(BIN_DIR)/$(IMG_PREFIX)-$(dts).dtb $(TARGET_DIR)/boot/,
77 ln -sf $(IMG_PREFIX)-$(dts).dtb $(TARGET_DIR)/boot/$(dts).dtb
78 )
79 endif
80 endef
81
82 define Image/Build/SDCard
83
84 ifeq ($(1),ext4)
85 ./gen_socfpga_sdcard_img.sh \
86 $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-sdcard-vfat-$(1).img \
87 $(KDIR)/root.$(1) \
88 $(CONFIG_TARGET_ROOTFS_PARTSIZE) \
89 $(BIN_DIR)/uboot-socfpga-$(2)/$(IMG_PREFIX)-$(2)-u-boot-with-spl.sfp \
90 $(KDIR)/cfg.img
91 endif
92 endef
93
94 define Image/mkfs/targz
95 $(TAR) -czpf $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-rootfs.tar.gz --numeric-owner --owner=0 --group=0 -C $(TARGET_DIR)/ .
96 endef
97
98 Image/BuildKernel/Template/Generic=$(call Image/BuildKernel/Template)
99 Image/InstallKernel/Template/Generic=$(call Image/InstallKernel/Template)
100
101 Image/BuildKernel/Template/SOCFPGA_SOCKIT=$(foreach dts,$(shell echo $(SOCFPGA_SOCKIT_DTS)),$(call Image/BuildKernel/Template,$(dts)))
102 Image/InstallKernel/Template/SOCFPGA_SOCKIT=$(call Image/InstallKernel/Template,$(SOCFPGA_SOCKIT_DTS))
103
104 define Image/BuildKernel
105 $(call Image/BuildKernel/Template/$(PROFILE))
106 endef
107
108 define Image/InstallKernel
109 $(call Image/InstallKernel/Template/$(PROFILE))
110 endef
111
112 define Image/Build/Profile/SOCFPGA_SOCKIT
113
114 ifeq ($(1),ext4)
115 $(call Image/Build/SDCard,$(1),socfpga_cyclone5_sockit)
116 $(call Image/Build/SysupgradeNAND,$(call sanitize_profile_name),ext4,)
117 endif
118 ifeq ($(1),ubifs)
119 $(call Image/Build/SysupgradeNAND,$(call sanitize_profile_name),ubifs,)
120 endif
121 endef
122
123 define Image/Build
124 $(if $(Image/Build/$(1)), \
125 $(call Image/Build/$(1),$(1)), \
126 $(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-$(1).img \
127 )
128
129 $(if $(Image/Build/Profile/$(PROFILE)), \
130 $(call Image/Build/Profile/$(PROFILE),$(1)), \
131 $(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-$(1).img \
132 )
133 endef
134
135 $(eval $(call BuildImage))