kirkwood: move ubi/ubifs options to the image makefile
[openwrt/openwrt.git] / target / linux / kirkwood / image / Makefile
1 #
2 # Copyright (C) 2009-2013 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 NAND_BLOCKSIZE := 2048-128k
9
10 include $(TOPDIR)/rules.mk
11 include $(INCLUDE_DIR)/image.mk
12
13 DEVICE_VARS += DEVICE_DTS KERNEL_SIZE PAGESIZE BLOCKSIZE SUBPAGESIZE KERNEL_IN_UBI
14 KERNEL_LOADADDR:=0x8000
15 TARGET_DEVICES = linksys-audi linksys-viper dockstar goflexnet goflexhome
16
17 define Device/Default
18 KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts)
19 KERNEL := kernel-bin | append-dtb | uImage none
20 KERNEL_NAME := zImage
21 KERNEL_IN_UBI :=
22 endef
23
24 define Device/dockstar
25 DEVICE_DTS := kirkwood-dockstar
26 PAGESIZE := 2048
27 SUBPAGESIZE := 512
28 BLOCKSIZE := 128KiB
29 FILESYSTEMS := squashfs
30 PROFILES := Generic DOCKSTAR
31 IMAGES := factory.bin sysupgrade.tar
32 IMAGE/factory.bin := append-ubi
33 IMAGE/sysupgrade.tar := sysupgrade-nand
34 KERNEL_IN_UBI := 1
35 KERNEL := kernel-bin | append-dtb
36 endef
37
38 define Device/goflexnet
39 $(Device/dockstar)
40 PROFILES := Generic GOFLEXNET
41 DEVICE_DTS := kirkwood-goflexnet
42 endef
43
44 define Device/goflexhome
45 $(Device/dockstar)
46 PROFILES := Generic GOFLEXHOME
47 DEVICE_DTS := kirkwood-goflexhome
48 endef
49
50 define Device/linksys-audi
51 DEVICE_DTS := kirkwood-linksys-audi
52 PAGESIZE := 512
53 SUBPAGESIZE := 256
54 BLOCKSIZE := 16KiB
55 KERNEL_SIZE := 2624k
56 FILESYSTEMS := squashfs
57 PROFILES := Generic AUDI
58 IMAGES := factory.bin sysupgrade.tar
59 IMAGE/factory.bin := append-kernel $$$$(KERNEL_SIZE) | append-ubi
60 IMAGE/sysupgrade.tar := sysupgrade-nand
61 endef
62
63 define Device/linksys-viper
64 DEVICE_DTS := kirkwood-linksys-viper
65 PAGESIZE := 2048
66 SUBPAGESIZE := 512
67 BLOCKSIZE := 128KiB
68 KERNEL_SIZE := 2688k
69 FILESYSTEMS := squashfs
70 PROFILES := Generic VIPER
71 IMAGES := factory.bin sysupgrade.tar
72 IMAGE/factory.bin := append-kernel $$$$(KERNEL_SIZE) | append-ubi
73 IMAGE/sysupgrade.tar := sysupgrade-nand
74 endef
75
76 define Build/append-dtb
77 cat $(DTS_DIR)/$(DEVICE_DTS).dtb >> $@
78 endef
79
80 define Image/BuildKernel/Template
81
82 $(CP) $(KDIR)/zImage $(BIN_DIR)/$(IMG_PREFIX)-zImage
83 echo -ne '\x00\x00\x00\x00' >> $(BIN_DIR)/$(IMG_PREFIX)-zImage
84 $(call Image/BuildKernel/MkuImage, \
85 none, 0x8000, 0x8000, \
86 $(BIN_DIR)/$(IMG_PREFIX)-zImage, \
87 $(BIN_DIR)/$(IMG_PREFIX)-uImage \
88 )
89
90 ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
91 $(CP) $(KDIR)/zImage-initramfs $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs
92 echo -ne '\x00\x00\x00\x00' >> $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs
93 $(call Image/BuildKernel/MkuImage, \
94 none, 0x8000, 0x8000, \
95 $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs, \
96 $(BIN_DIR)/$(IMG_PREFIX)-uImage-initramfs \
97 )
98 endif
99
100 ifneq ($(1),)
101 $(CP) $(DTS_DIR)/kirkwood-$(1).dtb $(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb
102
103 $(CP) $(KDIR)/zImage $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage
104 cat $(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb >> $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage
105 $(call Image/BuildKernel/MkuImage, \
106 none, 0x8000, 0x8000, \
107 $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage, \
108 $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-uImage \
109 )
110
111 ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
112 $(CP) $(KDIR)/zImage-initramfs $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage-initramfs
113 cat $(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb >> $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage-initramfs
114 $(call Image/BuildKernel/MkuImage, \
115 none, 0x8000, 0x8000, \
116 $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage-initramfs, \
117 $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-uImage-initramfs \
118 )
119 endif
120 endif
121 endef
122
123 define Image/InstallKernel/Template
124
125 ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_KERNEL),)
126 $(INSTALL_DIR) $(TARGET_DIR)/boot
127 ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_UIMAGE),)
128 $(CP) $(BIN_DIR)/$(IMG_PREFIX)-uImage $(TARGET_DIR)/boot/
129 ln -sf $(IMG_PREFIX)-uImage $(TARGET_DIR)/boot/uImage
130 endif
131 ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_ZIMAGE),)
132 $(CP) $(BIN_DIR)/$(IMG_PREFIX)-zImage $(TARGET_DIR)/boot/
133 ln -sf $(IMG_PREFIX)-zImage $(TARGET_DIR)/boot/zImage
134 endif
135 endif
136
137 ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_DTB),)
138 $(INSTALL_DIR) $(TARGET_DIR)/boot
139 ifneq ($(1),)
140 $(CP) $(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb $(TARGET_DIR)/boot/
141 ln -sf $(IMG_PREFIX)-$(1).dtb $(TARGET_DIR)/boot/$(1).dtb
142 endif
143 endif
144 endef
145
146 define Image/Build/jffs2-nand-2048-128k
147 dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-$(1).img \
148 bs=2048 conv=sync
149 endef
150
151 define Image/Build/squashfs
152 $(call prepare_generic_squashfs,$(KDIR)/root.squashfs)
153 ( \
154 dd if=$(KDIR)/zImage bs=4096k conv=sync; \
155 dd if=$(KDIR)/root.$(1) bs=128k conv=sync; \
156 ) > $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-$(1).img
157 endef
158
159 define Image/Build/ubifs
160
161 ifneq ($($(PROFILE)_UBIFS_OPTS),)
162 $(CP) $(KDIR)/root.ubifs $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-rootfs.ubifs
163 endif
164 endef
165
166 define Image/Build/ubi
167
168 ifneq ($($(PROFILE)_UBI_OPTS),)
169 $(CP) $(KDIR)/root.ubi $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-rootfs.ubi
170 endif
171 endef
172
173 DOCKSTAR_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
174 DOCKSTAR_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
175
176 GOFLEXHOME_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
177 GOFLEXHOME_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
178
179 GOFLEXNET_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
180 GOFLEXNET_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
181
182 Image/BuildKernel/Template/Generic=$(call Image/BuildKernel/Template)
183 Image/InstallKernel/Template/Generic=$(call Image/InstallKernel/Template)
184
185 IB62X0_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
186 IB62X0_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
187
188 Image/BuildKernel/Template/IB62X0=$(call Image/BuildKernel/Template,ib62x0)
189 Image/InstallKernel/Template/IB62X0=$(call Image/InstallKernel/Template,ib62x0)
190
191 ICONNECT_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
192 ICONNECT_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
193
194 Image/BuildKernel/Template/ICONNECT=$(call Image/BuildKernel/Template,iconnect)
195 Image/InstallKernel/Template/ICONNECT=$(call Image/InstallKernel/Template,iconnect)
196
197 IOMEGA_IX2_200_UBIFS_OPTS:="-m 512 -e 15872 -c 2048"
198 IOMEGA_IX2_200_UBI_OPTS:="-m 512 -p 16384 -s 256"
199
200 Image/BuildKernel/Template/IOMEGA_IX2_200=$(call Image/BuildKernel/Template,iomega_ix2_200)
201 Image/InstallKernel/Template/IOMEGA_IX2_200=$(call Image/InstallKernel/Template,iomega_ix2_200)
202
203 NSA310S_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
204 NSA310S_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
205
206 Image/BuildKernel/Template/NSA310S=$(call Image/BuildKernel/Template,nsa310s)
207 Image/InstallKernel/Template/NSA310S=$(call Image/InstallKernel/Template,nsa310s)
208
209 POGOE02_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
210 POGOE02_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
211
212 Image/BuildKernel/Template/POGOE02=$(call Image/BuildKernel/Template,pogo_e02)
213 Image/InstallKernel/Template/POGOE02=$(call Image/InstallKernel/Template,pogo_e02)
214
215 SHEEVAPLUG_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
216 SHEEVAPLUG_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
217
218 Image/BuildKernel/Template/SHEEVAPLUG=$(call Image/BuildKernel/Template,sheevaplug)
219 Image/InstallKernel/Template/SHEEVAPLUG=$(call Image/InstallKernel/Template,sheevaplug)
220
221 SHEEVAPLUGSATA_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
222 SHEEVAPLUGSATA_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
223
224 Image/BuildKernel/Template/SHEEVAPLUGSATA=$(call Image/BuildKernel/Template,sheevaplug-esata)
225 Image/InstallKernel/Template/SHEEVAPLUGSATA=$(call Image/InstallKernel/Template,sheevaplug-esata)
226
227 GuruplugServerPlus_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
228 GuruplugServerPlus_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
229
230 Image/BuildKernel/Template/GuruplugServerPlus=$(call Image/BuildKernel/Template,guruplug-server-plus)
231 Image/InstallKernel/Template/GuruplugServerPlus=$(call Image/InstallKernel/Template,guruplug-server-plus)
232
233 Topkick1281P2_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
234 Topkick1281P2_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
235
236 Image/BuildKernel/Template/Topkick1281P2=$(call Image/BuildKernel/Template,topkick)
237 Image/InstallKernel/Template/Topkick1281P2=$(call Image/InstallKernel/Template,topkick)
238
239 define Image/BuildKernel
240 $(call Image/BuildKernel/Template/$(PROFILE))
241 endef
242
243 define Image/InstallKernel
244 $(call Image/InstallKernel/Template/$(PROFILE))
245 endef
246
247 define Image/Build
248 $(if $(Image/Build/$(1)), \
249 $(call Image/Build/$(1),$(1)), \
250 $(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-$(1).img \
251 )
252 endef
253
254 $(eval $(call BuildImage))