ar71xx: create factory images for the WZR-HP-G30{0,1}NH boards
[openwrt.git] / target / linux / ar71xx / image / Makefile
1 #
2 # Copyright (C) 2008-2010 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 define imgname
11 $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(patsubst jffs2-%,jffs2,$(patsubst squashfs-%,squashfs,$(1)))
12 endef
13
14 VMLINUX:=$(BIN_DIR)/$(IMG_PREFIX)-vmlinux
15 UIMAGE:=$(BIN_DIR)/$(IMG_PREFIX)-uImage
16 fs_squash:=squashfs-only
17 fs_all:=all
18 fs_4k:=4k
19 fs_64k:=64k
20 fs_128k:=128k
21 ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y)
22         fs_squash:=initramfs
23         fs_all:=initramfs
24         fs_4k:=initramfs
25         fs_64k:=initramfs
26         fs_128k:=initramfs
27         VMLINUX:=$(BIN_DIR)/$(IMG_PREFIX)-vmlinux-initramfs
28         UIMAGE:=$(BIN_DIR)/$(IMG_PREFIX)-uImage-initramfs
29 endif
30
31 define CompressLzma
32   $(STAGING_DIR_HOST)/bin/lzma e $(1) -lc1 -lp2 -pb2 $(2)
33 endef
34
35 define PatchKernelLzma
36         cp $(KDIR)/vmlinux $(KDIR)/vmlinux-$(1)
37         $(STAGING_DIR_HOST)/bin/patch-cmdline $(KDIR)/vmlinux-$(1) '$(strip $(2))'
38         $(call CompressLzma,$(KDIR)/vmlinux-$(1),$(KDIR)/vmlinux-$(1).bin.lzma)
39 endef
40
41 define PatchKernelGzip
42         cp $(KDIR)/vmlinux $(KDIR)/vmlinux-$(1)
43         $(STAGING_DIR_HOST)/bin/patch-cmdline $(KDIR)/vmlinux-$(1) '$(strip $(2))'
44         gzip -9 -c $(KDIR)/vmlinux-$(1) > $(KDIR)/vmlinux-$(1).bin.gz
45 endef
46
47 define MkImageLzma
48         mkimage -A mips -O linux -T kernel -a 0x80060000 -C lzma \
49                 -e 0x80060000 -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
50                 -d $(1) $(2)
51 endef
52
53 define MkImageGzip
54         mkimage -A mips -O linux -T kernel -a 0x80060000 -C gzip \
55                 -e 0x80060000 -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
56                 -d $(1) $(2)
57 endef
58
59 define Image/BuildKernel
60         cp $(KDIR)/vmlinux.elf $(VMLINUX).elf
61         cp $(KDIR)/vmlinux $(VMLINUX).bin
62         gzip -9 -c $(KDIR)/vmlinux > $(KDIR)/vmlinux.bin.gz
63         $(call CompressLzma,$(KDIR)/vmlinux,$(KDIR)/vmlinux.bin.lzma)
64         dd if=$(KDIR)/vmlinux.bin.lzma of=$(VMLINUX).lzma bs=65536 conv=sync
65         dd if=$(KDIR)/vmlinux.bin.gz of=$(VMLINUX).gz bs=65536 conv=sync
66         $(call MkImageGzip,$(KDIR)/vmlinux.bin.gz,$(UIMAGE)-gzip.bin)
67         $(call MkImageLzma,$(KDIR)/vmlinux.bin.lzma,$(UIMAGE)-lzma.bin)
68         $(call Image/Build/Initramfs)
69 endef
70
71 define Image/Build/WRT400N
72         $(call PatchKernelLzma,$(2),$(3))
73         if [ `stat -c%s "$(KDIR)/vmlinux-$(2).bin.lzma"` -gt 1310720 ]; then \
74                 echo "Warning: $(KDIR)/vmlinux-$(2).bin.lzma is too big"; \
75         else if [ `stat -c%s $(KDIR)/root.$(1)` -gt 6488064 ]; then \
76                 echo "Warning: $(KDIR)/root.$(1) is too big"; \
77         else \
78                 mkimage -A mips -O linux -T kernel -a 0x80060000 -C lzma -e \
79                         0x80060000 \
80                         -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
81                         -d $(KDIR)/vmlinux-$(2).bin.lzma $(KDIR)/vmlinux-$(2).uImage; \
82                 ( \
83                         dd if=$(KDIR)/vmlinux-$(2).uImage bs=1280k conv=sync; \
84                         dd if=$(KDIR)/root.$(1) \
85                 ) > $(call imgname,$(1),$(2))-sysupgrade.bin; \
86                 wrt400n $(KDIR)/vmlinux-$(2).uImage $(KDIR)/root.$(1) $(call imgname,$(1),$(2))-factory.bin; \
87         fi; fi
88 endef
89
90 dir825b1_mtdlayout=mtdparts=spi0.0:256k(uboot)ro,64k(config)ro,1024k(kernel),5184k(rootfs),64k(caldata)ro,1600k(unknown)ro,6208k@0x50000(firmware)
91 define Image/Build/DIR825B1
92         $(call PatchKernelLzma,$(2),$(3) $(dir825b1_mtdlayout))
93         if [ `stat -c%s "$(KDIR)/vmlinux-$(2).bin.lzma"` -gt 1048576 ]; then \
94                 echo "Warning: $(KDIR)/vmlinux-$(2).bin.lzma is too big"; \
95         else if [ `stat -c%s $(KDIR)/root.$(1)` -gt 5308416 ]; then \
96                 echo "Warning: $(KDIR)/root.$(1) is too big"; \
97         else \
98                 mkimage -A mips -O linux -T kernel -a 0x80060000 -C lzma -e \
99                         0x80060000 \
100                         -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
101                         -d $(KDIR)/vmlinux-$(2).bin.lzma $(KDIR)/vmlinux-$(2).uImage; \
102                 ( \
103                         dd if=$(KDIR)/vmlinux-$(2).uImage bs=1024k conv=sync; \
104                         dd if=$(KDIR)/root.$(1) \
105                 ) > $(call imgname,$(1),$(2))-sysupgrade.bin; \
106                 ( \
107                         dd if=$(call imgname,$(1),$(2))-sysupgrade.bin; \
108                         echo -n "01AP94-AR7161-RT-080619-00"; \
109                 ) > $(call imgname,$(1),$(2))-backup-loader.bin; \
110                 if [ `stat -c%s $(call imgname,$(1),$(2))-sysupgrade.bin` -gt 4194304 ]; then \
111                         echo "Warning: $(call imgname,$(1),$(2))-sysupgrade.bin is too big"; \
112                 else \
113                         ( \
114                                 dd if=$(call imgname,$(1),$(2))-sysupgrade.bin bs=4096k conv=sync; \
115                                 echo -n "00AP94-AR7161-RT-080619-00"; \
116                         ) > $(call imgname,$(1),$(2))-factory.bin; \
117                 fi; \
118         fi; fi
119 endef
120
121 define Image/Build/WZRHPG30XNH
122         $(call PatchKernelLzma,$(2),$(3))
123         if [ `stat -c%s "$(KDIR)/vmlinux-$(2).bin.lzma"` -gt 1048576 ]; then \
124                 echo "Warning: $(KDIR)/vmlinux-$(2).bin.lzma is too big"; \
125         else if [ `stat -c%s $(KDIR)/root.$(1)` -gt 31850496 ]; then \
126                 echo "Warning: $(KDIR)/root.$(1) is too big"; \
127         else \
128                 mkimage -A mips -O linux -T kernel -a 0x80060000 -C lzma -e \
129                         0x80060000 \
130                         -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
131                         -d $(KDIR)/vmlinux-$(2).bin.lzma $(KDIR)/vmlinux-$(2).uImage; \
132                 ( \
133                         dd if=$(KDIR)/vmlinux-$(2).uImage bs=1024k conv=sync; \
134                         dd if=$(KDIR)/root.$(1) bs=128k conv=sync; \
135                 ) > $(call imgname,$(1),$(2))-sysupgrade.bin; \
136                 ( \
137                         echo -n -e "# Airstation Public Fmt1\x00\x00\x00\x00\x00\x00\x00\x00"; \
138                         dd if=$(call imgname,$(1),$(2))-sysupgrade.bin; \
139                 ) > $(call imgname,$(1),$(2))-tftp.bin; \
140                 buffalo-enc -p $(4) -v 1.76 \
141                         -i $(call imgname,$(1),$(2))-sysupgrade.bin \
142                         -o $(KDIR)/$(2).enc; \
143                 buffalo-tag -b $(4) -p $(4) -a ath -v 1.76 -m 1.01 -l mlang8 \
144                         -w 3 -c 0x80041000 -d 0x801e8000 -f 1 -r M_ \
145                         -i $(KDIR)/$(2).enc \
146                         -o $(call imgname,$(1),$(2))-factory.bin; \
147         fi; fi
148 endef
149
150 cameo_mtdlayout=mtdparts=spi0.0:128k(u-boot)ro,64k(config)ro,896k(kernel),2944k(rootfs),64k(art)ro,3840k@0x30000(firmware)
151 define Image/Build/Cameo
152         $(call PatchKernelLzma,$(2),$(3) $(cameo_mtdlayout))
153         if [ `stat -c%s "$(KDIR)/vmlinux-$(2).bin.lzma"` -gt 917504 ]; then \
154                 echo "Warning: $(KDIR)/vmlinux-$(2).bin.lzma is too big"; \
155         else if [ `stat -c%s $(KDIR)/root.$(1)` -gt 2949120 ]; then \
156                 echo "Warning: $(KDIR)/root.$(1) is too big"; \
157         else \
158                 mkimage -A mips -O linux -T kernel -a 0x80060000 -C lzma -e \
159                         0x80060000 \
160                         -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
161                         -d $(KDIR)/vmlinux-$(2).bin.lzma $(KDIR)/vmlinux-$(2).uImage; \
162                 ( \
163                         dd if=$(KDIR)/vmlinux-$(2).uImage bs=896k conv=sync; \
164                         dd if=$(KDIR)/root.$(1) \
165                 ) > $(call imgname,$(1),$(2))-sysupgrade.bin; \
166                 ( \
167                         dd if=$(KDIR)/vmlinux-$(2).uImage bs=896k conv=sync; \
168                         dd if=$(KDIR)/root.$(1) bs=2880k conv=sync; \
169                         echo -n $(4); \
170                 ) > $(call imgname,$(1),$(2))-factory.bin; \
171         fi; fi
172 endef
173
174 cameo7240_mtdlayout=mtdparts=spi0.0:192k(u-boot)ro,64k(nvram)ro,896k(kernel),2816k(rootfs),64k(mac)ro,64k(art)ro,3712k@0x40000(firmware)
175 define Image/Build/Cameo7240
176         $(call PatchKernelLzma,$(2),$(3) $(cameo7240_mtdlayout))
177         if [ `stat -c%s "$(KDIR)/vmlinux-$(2).bin.lzma"` -gt 917504 ]; then \
178                 echo "Warning: $(KDIR)/vmlinux-$(2).bin.lzma is too big"; \
179         else if [ `stat -c%s $(KDIR)/root.$(1)` -gt 2818048 ]; then \
180                 echo "Warning: $(KDIR)/root.$(1) is too big"; \
181         else \
182                 mkimage -A mips -O linux -T kernel -a 0x80060000 -C lzma -e \
183                         0x80060000 \
184                         -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
185                         -d $(KDIR)/vmlinux-$(2).bin.lzma $(KDIR)/vmlinux-$(2).uImage; \
186                 ( \
187                         dd if=$(KDIR)/vmlinux-$(2).uImage bs=896k conv=sync; \
188                         dd if=$(KDIR)/root.$(1) \
189                 ) > $(call imgname,$(1),$(2))-sysupgrade.bin; \
190                 ( \
191                         dd if=$(KDIR)/vmlinux-$(2).uImage bs=896k conv=sync; \
192                         dd if=$(KDIR)/root.$(1) bs=2752k conv=sync; \
193                         echo -n $(4); \
194                 ) > $(call imgname,$(1),$(2))-factory.bin; \
195         fi; fi
196 endef
197
198 define Image/Build/AP83
199         $(call PatchKernelGzip,$(2),$(3))
200         if [ `stat -c%s "$(KDIR)/vmlinux-$(2).bin.gz"` -gt 1310720 ]; then \
201                 echo "Warning: $(KDIR)/vmlinux-$(2).bin.gz is too big"; \
202         else if [ `stat -c%s $(KDIR)/root.$(1)` -gt 6619136 ]; then \
203                 echo "Warning: $(KDIR)/root.$(1) is too big"; \
204         else \
205                 mkimage -A mips -O linux -T kernel -a 0x80060000 -C gzip -e \
206                         0x80060000 \
207                         -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
208                         -d $(KDIR)/vmlinux-$(2).bin.gz \
209                         $(KDIR)/vmlinux-$(2).uImage; \
210                 dd if=$(KDIR)/vmlinux-$(2).uImage \
211                         of=$(call imgname,kernel,$(2)).bin bs=64k conv=sync; \
212                 dd if=$(KDIR)/root.$(1) \
213                         of=$(call imgname,$(1),$(2)-rootfs).bin bs=128k conv=sync; \
214                 ( \
215                         dd if=$(KDIR)/vmlinux-$(2).uImage bs=1280k conv=sync; \
216                         dd if=$(KDIR)/root.$(1); \
217                 ) > $(call imgname,$(1),$(2))-sysupgrade.bin; \
218         fi; fi
219 endef
220
221 define Image/Build/PB92
222         $(call PatchKernelLzma,$(2),$(3))
223         if [ `stat -c%s $(KDIR)/vmlinux-$(2).bin.lzma` -gt 917504 ]; then \
224                 echo "Warning: $(KDIR)/vmlinux-$(2).bin.lzma is too big"; \
225         elif [ `stat -c%s $(KDIR)/root.$(1)` -gt 2818048 ]; then \
226                 echo "Warning: $(KDIR)/root.$(1) is too big"; \
227         else \
228                 mkimage -A mips -O linux -T kernel -a 0x80060000 -C lzma -e \
229                         0x80060000 \
230                         -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
231                         -d $(KDIR)/vmlinux-$(2).bin.lzma \
232                         $(KDIR)/vmlinux-$(2).uImage; \
233                 dd if=$(KDIR)/vmlinux-$(2).uImage \
234                         of=$(call imgname,kernel,$(2)).bin bs=64k conv=sync; \
235                 dd if=$(KDIR)/root.$(1) \
236                         of=$(call imgname,$(1),$(2)-rootfs).bin bs=128k conv=sync; \
237                 ( \
238                         dd if=$(KDIR)/vmlinux-$(2).uImage bs=896k conv=sync; \
239                         dd if=$(KDIR)/root.$(1); \
240                 ) > $(call imgname,$(1),$(2))-sysupgrade.bin; \
241         fi
242 endef
243
244 define Image/Build/PB4X
245         $(call PatchKernelLzma,$(2),$(3))
246         dd if=$(KDIR)/vmlinux-$(2).bin.lzma \
247            of=$(call imgname,kernel,$(2)).bin bs=64k conv=sync
248         dd if=$(KDIR)/root.$(1) \
249            of=$(call imgname,$(1),$(2)-rootfs).bin bs=128k conv=sync
250         -sh $(TOPDIR)/scripts/combined-image.sh \
251                 "$(call imgname,kernel,$(2)).bin" \
252                 "$(call imgname,$(1),$(2)-rootfs).bin" \
253                 $(call imgname,$(1),$(2))-sysupgrade.bin
254 endef
255
256 define Image/Build/DB120
257         $(call PatchKernelLzma,$(2),$(3))
258         if [ `stat -c%s $(KDIR)/vmlinux-$(2).bin.lzma` -gt 1441792 ]; then \
259                 echo "Warning: $(KDIR)/vmlinux-$(2).bin.lzma is too big"; \
260         elif [ `stat -c%s $(KDIR)/root.$(1)` -gt 6488064 ]; then \
261                 echo "Warning: $(KDIR)/root.$(1) is too big"; \
262         else \
263                 mkimage -A mips -O linux -T kernel -a 0x80060000 -C lzma -e \
264                         0x80060000 \
265                         -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
266                         -d $(KDIR)/vmlinux-$(2).bin.lzma \
267                         $(KDIR)/vmlinux-$(2).uImage; \
268                 dd if=$(KDIR)/vmlinux-$(2).uImage \
269                         of=$(call imgname,kernel,$(2)).bin bs=64k conv=sync; \
270                 dd if=$(KDIR)/root.$(1) \
271                         of=$(call imgname,$(1),$(2)-rootfs).bin bs=128k conv=sync; \
272                 ( \
273                         dd if=$(KDIR)/root.$(1); \
274                         dd if=$(KDIR)/vmlinux-$(2).uImage bs=1408k conv=sync; \
275                 ) > $(call imgname,$(1),$(2))-sysupgrade.bin; \
276         fi
277 endef
278
279 define Image/Build/MyLoader
280         -$(STAGING_DIR_HOST)/bin/mkmylofw -B $(2) -s $(3) \
281                 -p0x030000:0xe0000:al:0x80060000:kernel:$(KDIR)/vmlinux.bin.lzma \
282                 -p0x110000:0:::rootfs:$(KDIR)/root.$(1) \
283                 $(call imgname,$(1),$(2))-$(4)-factory.img
284 endef
285
286 ubntxm_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,1024k(kernel),6528k(rootfs),256k(cfg)ro,64k(EEPROM)ro,7552k@0x50000(firmware)
287 define Image/Build/UBNTXM
288         $(call PatchKernelLzma,$(2),$(3) $(ubntxm_mtdlayout))
289         $(call MkImageLzma,$(KDIR)/vmlinux-$(2).bin.lzma,$(KDIR)/vmlinux-$(2).uImage.bin)
290         dd if=$(KDIR)/vmlinux-$(2).uImage.bin of=$(KDIR)/vmlinux-$(2).uImage bs=1024k conv=sync
291         -$(STAGING_DIR_HOST)/bin/mkfwimage \
292                 -B $(4) -v $(5).$(6).OpenWrt.$(REVISION) \
293                 -k $(KDIR)/vmlinux-$(2).uImage \
294                 -r $(BIN_DIR)/$(IMG_PREFIX)-root.$(1) \
295                 -o $(call imgname,$(1),$(2))-factory.bin
296         ( \
297                 dd if=$(KDIR)/vmlinux-$(2).uImage; \
298                 dd if=$(BIN_DIR)/$(IMG_PREFIX)-root.$(1); \
299         ) > $(call imgname,$(1),$(2))-sysupgrade.bin
300 endef
301
302 define Image/Build/UBNT
303         $(call PatchKernelLzma,$(2),$(3))
304         dd if=$(KDIR)/vmlinux-$(2).bin.lzma of=$(KDIR)/vmlinux-$(2).lzma bs=64k conv=sync
305         -$(STAGING_DIR_HOST)/bin/mkfwimage \
306                 -B $(4) -v $(5).$(6).OpenWrt.$(REVISION) \
307                 -k $(KDIR)/vmlinux-$(2).lzma \
308                 -r $(BIN_DIR)/$(IMG_PREFIX)-root.$(1) \
309                 -o $(call imgname,$(1),$(2))-factory.bin
310         -sh $(TOPDIR)/scripts/combined-image.sh \
311                 "$(KDIR)/vmlinux-$(2).lzma" \
312                 "$(BIN_DIR)/$(IMG_PREFIX)-root.$(1)" \
313                 $(call imgname,$(1),$(2))-sysupgrade.bin
314 endef
315
316 define Image/Build/Planex
317         $(call PatchKernelGzip,$(2),$(3))
318         if [ `stat -c%s "$(KDIR)/vmlinux-$(2).bin.gz"` -gt 1441792 ]; then \
319                 echo "Warning: $(KDIR)/vmlinux-$(2).bin.gz is too big"; \
320         else if [ `stat -c%s $(KDIR)/root.$(1)` -gt 6356992 ]; then \
321                 echo "Warning: $(KDIR)/root.$(1) is too big"; \
322         else \
323                 mkimage -A mips -O linux -T kernel -a 0x80060000 -C gzip -e \
324                         0x80060000 \
325                         -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
326                         -d $(KDIR)/vmlinux-$(2).bin.gz $(KDIR)/vmlinux-$(2).uImage; \
327                 ( \
328                         dd if=$(KDIR)/vmlinux-$(2).uImage bs=1408k conv=sync; \
329                         dd if=$(KDIR)/root.$(1); \
330                 ) > $(call imgname,$(1),$(2))-sysupgrade.bin; \
331                 $(STAGING_DIR_HOST)/bin/mkplanexfw \
332                         -B $(2) \
333                         -v 2.00.00 \
334                         -i $(call imgname,$(1),$(2))-sysupgrade.bin \
335                         -o $(call imgname,$(1),$(2))-factory.bin; \
336         fi; fi
337 endef
338
339 define Image/Build/TPLINK
340         $(call PatchKernelGzip,$(2),$(3))
341         -$(STAGING_DIR_HOST)/bin/mktplinkfw \
342                 -B $(4) -N OpenWrt -V $(REVISION)\
343                 -k $(KDIR)/vmlinux-$(2).bin.gz \
344                 -r $(BIN_DIR)/$(IMG_PREFIX)-root.$(1) \
345                 -o $(call imgname,$(1),$(2))-factory.bin
346         -$(STAGING_DIR_HOST)/bin/mktplinkfw \
347                 -B $(4) -N OpenWrt -V $(REVISION) -s \
348                 -k $(KDIR)/vmlinux-$(2).bin.gz \
349                 -r $(BIN_DIR)/$(IMG_PREFIX)-root.$(1) \
350                 -o $(call imgname,$(1),$(2))-sysupgrade.bin
351 endef
352
353 define Image/Build/TPLINK/initramfs
354         $(call PatchKernelGzip,$(2),$(3))
355         -$(STAGING_DIR_HOST)/bin/mktplinkfw -c \
356                 -B $(4) -N OpenWrt -V $(REVISION) -s \
357                 -k $(KDIR)/vmlinux-$(2).bin.gz \
358                 -o $(call imgname,$(1),$(2))-uImage.bin
359 endef
360
361 define Image/Build/CyberTAN
362         $(call PatchKernelGzip,$(2),$(3))
363         $(call MkImageGzip,$(KDIR)/vmlinux-$(2).bin.gz,$(KDIR)/vmlinux-$(2).uImage)
364         $(STAGING_DIR_HOST)/bin/trx -o $(KDIR)/image.tmp -f $(KDIR)/vmlinux-$(2).uImage \
365                 -x 32 -a 0x10000 -x -32 -f $(KDIR)/root.$(1)
366         -$(STAGING_DIR_HOST)/bin/addpattern -B $(2) -v v$(4) \
367                 -i $(KDIR)/image.tmp \
368                 -o $(call imgname,$(1),$(2))-sysupgrade.bin
369         -$(STAGING_DIR_HOST)/bin/addpattern -B $(2) -v v$(4) -g \
370                 -i $(KDIR)/image.tmp \
371                 -o $(call imgname,$(1),$(2))-factory.bin
372         rm $(KDIR)/image.tmp
373 endef
374
375 define Image/Build/Netgear
376         $(call PatchKernelLzma,$(2),$(3) $($(4)))
377         $(call MkImageLzma,$(KDIR)/vmlinux-$(2).bin.lzma,$(KDIR)/vmlinux-$(2).uImage)
378         mkdir -p $(KDIR)/wndr3700/image
379         $(STAGING_DIR_HOST)/bin/wndr3700 \
380                 $(KDIR)/vmlinux-$(2).uImage \
381                 $(KDIR)/wndr3700/image/uImage \
382                 $(5)
383         $(STAGING_DIR_HOST)/bin/mksquashfs-lzma \
384                 $(KDIR)/wndr3700 $(KDIR)/vmlinux-$(2).uImage.squashfs.tmp \
385                 -nopad -noappend -root-owned -be
386         -rm -rf $(KDIR)/wndr3700
387         mkimage -A mips -O linux -T filesystem -C none \
388                 -a 0xbf070000 -e 0xbf070000 \
389                 -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
390                 -d $(KDIR)/vmlinux-$(2).uImage.squashfs.tmp \
391                 $(KDIR)/vmlinux-$(2).uImage.squashfs.tmp2
392         $(STAGING_DIR_HOST)/bin/wndr3700 \
393                 $(KDIR)/vmlinux-$(2).uImage.squashfs.tmp2 \
394                 $(KDIR)/vmlinux-$(2).uImage.squashfs \
395                 $(5)
396         -rm -f $(KDIR)/vmlinux-$(2).uImage.squashfs.tmp*
397         ( \
398                 dd if=$(KDIR)/vmlinux-$(2).uImage.squashfs bs=1024k conv=sync; \
399                 dd if=$(KDIR)/root.$(1) bs=64k; \
400         ) > $(call imgname,$(1),$(2))-sysupgrade.bin
401         $(STAGING_DIR_HOST)/bin/mkdniimg \
402                 -B $(6) -v OpenWrt.$(REVISION) \
403                 -i $(call imgname,$(1),$(2))-sysupgrade.bin \
404                 -o $(call imgname,$(1),$(2))-factory.img
405         $(STAGING_DIR_HOST)/bin/mkdniimg \
406                 -B $(6) -v OpenWrt.$(REVISION) -r "NA" \
407                 -i $(call imgname,$(1),$(2))-sysupgrade.bin \
408                 -o $(call imgname,$(1),$(2))-factory-NA.img
409 endef
410
411 define Image/Build/Netgear/initramfs
412         $(call PatchKernelLzma,$(2),$(3) $($(4)))
413         $(call MkImageLzma,$(KDIR)/vmlinux-$(2).bin.lzma,$(KDIR)/vmlinux-$(2).uImage)
414         $(STAGING_DIR_HOST)/bin/wndr3700 \
415                 $(KDIR)/vmlinux-$(2).uImage \
416                 $(call imgname,$(1),$(2))-uImage.bin \
417                 $(5)
418 endef
419
420 ifdef CONFIG_PACKAGE_uboot-ar71xx-nbg460n_550n_550nh
421   define Image/Build/ZyXEL
422         $(call PatchKernelLzma,$(2),$(3))
423         if [ `stat -c%s "$(KDIR)/vmlinux-$(2).bin.lzma"` -gt 917504 ]; then \
424                 echo "Warning: $(KDIR)/vmlinux-$(2).bin.lzma is too big"; \
425         else if [ `stat -c%s $(KDIR)/root.$(1)` -gt 2752512 ]; then \
426                 echo "Warning: $(KDIR)/root.$(1) is too big"; \
427         else if [ ! -f $(BIN_DIR)/$(IMG_PREFIX)-$(2)-u-boot.bin ]; then \
428                 echo "Warning: $(IMG_PREFIX)-$(2)-u-boot.bin not found"; \
429         else \
430                 mkimage -A mips -O linux -T kernel -a 0x80060000 -C lzma -e \
431                         0x80060000 \
432                         -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
433                         -d $(KDIR)/vmlinux-$(2).bin.lzma $(KDIR)/vmlinux-$(2).uImage; \
434                 ( \
435                         dd if=$(KDIR)/vmlinux-$(2).uImage bs=896k conv=sync; \
436                         dd if=$(KDIR)/root.$(1); \
437                 ) > $(call imgname,$(1),$(2))-sysupgrade.bin; \
438                 $(STAGING_DIR_HOST)/bin/mkzynfw \
439                         -B $(4) \
440                         -b $(BIN_DIR)/$(IMG_PREFIX)-$(2)-u-boot.bin \
441                         -r $(call imgname,$(1),$(2))-sysupgrade.bin:0x10000 \
442                         -o $(call imgname,$(1),$(2))-factory.bin; \
443         fi; fi; fi
444   endef
445 endif
446
447 define Image/Build/Zcomax
448         $(call PatchKernelLzma,$(2),$(3))
449         $(call MkImageLzma,$(KDIR)/vmlinux-$(2).bin.lzma,$(KDIR)/vmlinux-$(2).uImage.bin)
450         -$(STAGING_DIR_HOST)/bin/mkzcfw \
451                 -B $(2) \
452                 -k $(KDIR)/vmlinux-$(2).uImage.bin \
453                 -r $(BIN_DIR)/$(IMG_PREFIX)-root.$(1) \
454                 -o $(call imgname,$(1),$(2))-factory.img
455         ( \
456                 dd if=$(BIN_DIR)/$(IMG_PREFIX)-root.$(1) bs=6208k count=1 conv=sync; \
457                 dd if=$(KDIR)/vmlinux-$(2).uImage.bin bs=1472k count=1; \
458         ) > $(call imgname,$(1),$(2))-sysupgrade.bin
459 endef
460
461 define Image/Build/Template/initramfs/initramfs
462         $(call Image/Build/$(1)/initramfs,initramfs,$(2),$(3),$(4),$(5),$(6),$(7))
463 endef
464
465 define Image/Build/Template/all/squashfs
466         $(call Image/Build/$(1),squashfs,$(2),$(3),$(4),$(5),$(6),$(7))
467 endef
468
469 define Image/Build/Template/all/jffs2-64k
470         $(call Image/Build/$(1),jffs2-64k,$(2),$(3),$(4),$(5),$(6),$(7))
471 endef
472
473 define Image/Build/Template/all/jffs2-128k
474         $(call Image/Build/$(1),jffs2-128k,$(2),$(3),$(4),$(5),$(6),$(7))
475 endef
476
477 define Image/Build/Template/squashfs-only/squashfs
478         $(call Image/Build/$(1),squashfs,$(2),$(3),$(4),$(5),$(6),$(7))
479 endef
480
481 define Image/Build/Template/4k/squashfs
482         $(call Image/Build/$(1),squashfs-4k,$(2),$(3),$(4),$(5),$(6),$(7))
483 endef
484
485 define Image/Build/Template/64k/squashfs
486         $(call Image/Build/$(1),squashfs,$(2),$(3),$(4),$(5),$(6),$(7))
487 endef
488
489 define Image/Build/Template/64k/jffs2-64k
490         $(call Image/Build/$(1),jffs2-64k,$(2),$(3),$(4),$(5),$(6),$(7))
491 endef
492
493 define Image/Build/Template/128k/squashfs
494         $(call Image/Build/$(1),squashfs,$(2),$(3),$(4),$(5),$(6),$(7))
495 endef
496
497 define Image/Build/Template/128k/jffs2-128k
498         $(call Image/Build/$(1),jffs2-128k,$(2),$(3),$(4),$(5),$(6),$(7))
499 endef
500
501 ap81_cmdline=board=AP81 console=ttyS0,115200
502 define Image/Build/Profile/AP81
503         $(call Image/Build/Template/$(fs_64k)/$(1),AP83,ap81,$(ap81_cmdline))
504 endef
505
506 ap83_cmdline=board=AP83 console=ttyS0,115200
507 define Image/Build/Profile/AP83
508         $(call Image/Build/Template/$(fs_64k)/$(1),AP83,ap83,$(ap83_cmdline))
509 endef
510
511 db120_cmdline=board=DB120 console=ttyS0,115200
512 define Image/Build/Profile/DB120
513         $(call Image/Build/Template/$(fs_64k)/$(1),DB120,db120,$(db120_cmdline))
514 endef
515
516 pb42_cmdline=board=PB42 console=ttyS0,115200
517 define Image/Build/Profile/PB42
518         $(call Image/Build/Template/$(fs_64k)/$(1),PB4X,pb42,$(pb42_cmdline))
519 endef
520
521 pb44_cmdline=board=PB44 console=ttyS0,115200
522 define Image/Build/Profile/PB44
523         $(call Image/Build/Template/$(fs_64k)/$(1),PB4X,pb44,$(pb44_cmdline))
524 endef
525
526 pb92_cmdline=board=PB92 console=ttyS0,115200
527 define Image/Build/Profile/PB92
528         $(call Image/Build/Template/$(fs_64k)/$(1),PB92,pb92,$(pb92_cmdline))
529 endef
530
531 define Image/Build/Profile/WP543
532         $(call Image/Build/Template/$(fs_64k)/$(1),MyLoader,wp543,0x200000,2M)
533         $(call Image/Build/Template/$(fs_64k)/$(1),MyLoader,wp543,0x400000,4M)
534         $(call Image/Build/Template/$(fs_64k)/$(1),MyLoader,wp543,0x800000,8M)
535         $(call Image/Build/Template/$(fs_64k)/$(1),MyLoader,wp543,0x1000000,16M)
536 endef
537
538 dir600a1_cmdline=board=DIR-600-A1 console=ttyS0,115200
539 define Image/Build/Profile/DIR600A1
540         $(call Image/Build/Template/$(fs_64k)/$(1),Cameo7240,dir-600-a1,$(dir600a1_cmdline),"AP91-AR7240-RT-090223-00")
541 endef
542
543 eap7660d_cmdline=board=EAP7660D console=ttyS0,115200
544 define Image/Build/Profile/EAP7660D
545         $(call Image/Build/Template/$(fs_128k)/$(1),PB4X,eap7660d,$(eap7660d_cmdline))
546 endef
547
548 ja76pf_cmdline=board=JA76PF console=ttyS0,115200
549 define Image/Build/Profile/JA76PF
550         $(call Image/Build/Template/$(fs_64k)/$(1),PB4X,ja76pf,$(ja76pf_cmdline))
551 endef
552
553 jwap003_cmdline=board=JWAP003 console=ttyS0,115200
554 define Image/Build/Profile/JWAP003
555         $(call Image/Build/Template/$(fs_64k)/$(1),PB4X,jwap003,$(jwap003_cmdline))
556 endef
557
558 fr54rtr_cmdline=board=DIR-600-A1 console=ttyS0,115200
559 define Image/Build/Profile/FR54RTR
560         $(call Image/Build/Template/$(fs_64k)/$(1),Cameo7240,fr-54rtr,$(fr54rtr_cmdline),"AP91-AR7240-RT-090223-01")
561 endef
562
563 dir615c1_cmdline=board=DIR-615-C1 console=ttyS0,115200
564 define Image/Build/Profile/DIR615C1
565         $(call Image/Build/Template/$(fs_squash)/$(1),Cameo,dir-615-c1,$(dir615c1_cmdline),"AP81-AR9130-RT-070614-02")
566 endef
567
568 tew632brp_cmdline=board=TEW-632BRP console=ttyS0,115200
569 define Image/Build/Profile/TEW632BRP
570         $(call Image/Build/Template/$(fs_squash)/$(1),Cameo,tew-632brp,$(tew632brp_cmdline),"AP81-AR9130-RT-070614-00")
571 endef
572
573 tew652brp_cmdline=board=TEW-632BRP console=ttyS0,115200
574 define Image/Build/Profile/TEW652BRP
575         $(call Image/Build/Template/$(fs_squash)/$(1),Cameo,tew-652brp,$(tew652brp_cmdline),"AP81-AR9130-RT-080609-05")
576         $(call Image/Build/Template/$(fs_squash)/$(1),Cameo,tew-652brp-recovery,$(tew652brp_cmdline),"AP81-AR9130-RT-070614-02")
577 endef
578
579 a05rbw300n_cmdline=board=TEW-632BRP console=ttyS0,115200
580 define Image/Build/Profile/A02RBW300N
581         $(call Image/Build/Template/$(fs_squash)/$(1),Cameo,a02-rb-w300n,$(a05rbw300n_cmdline),"AP81-AR9130-RT-070614-03")
582 endef
583
584 ubntrs_cmdline=board=UBNT-RS console=ttyS0,115200
585 define Image/Build/Profile/UBNTRS
586         $(call Image/Build/Template/$(fs_64k)/$(1),UBNT,ubnt-rs,$(ubntrs_cmdline),RS,RSx,ar7100)
587 endef
588
589 ubntrspro_cmdline=board=UBNT-RSPRO console=ttyS0,115200
590 define Image/Build/Profile/UBNTRSPRO
591         $(call Image/Build/Template/$(fs_64k)/$(1),UBNT,ubnt-rspro,$(ubntrspro_cmdline),RSPRO,RSPRO,ar7100pro)
592 endef
593
594 ubntlssr71_cmdline=board=UBNT-LS-SR71 console=ttyS0,115200
595 define Image/Build/Profile/UBNTLSSR71
596         $(call Image/Build/Template/$(fs_64k)/$(1),UBNT,ubnt-ls-sr71,$(ubntlssr71_cmdline),LS-SR71,LS-SR71,ar7100)
597 endef
598
599 ubntbulletm_cmdline=board=UBNT-BM console=ttyS0,115200
600 define Image/Build/Profile/UBNTBULLETM
601         $(call Image/Build/Template/$(fs_64k)/$(1),UBNTXM,ubnt-bullet-m,$(ubntbulletm_cmdline),XM,UBNTXM,ar7240)
602 endef
603
604 ubntrocketm_cmdline=board=UBNT-RM console=ttyS0,115200
605 define Image/Build/Profile/UBNTROCKETM
606         $(call Image/Build/Template/$(fs_64k)/$(1),UBNTXM,ubnt-rocket-m,$(ubntrocketm_cmdline),XM,UBNTXM,ar7240)
607 endef
608
609 ubntnanom_cmdline=board=UBNT-NM console=ttyS0,115200
610 define Image/Build/Profile/UBNTNANOM
611         $(call Image/Build/Template/$(fs_64k)/$(1),UBNTXM,ubnt-nano-m,$(ubntnanom_cmdline),XM,UBNTXM,ar7240)
612 endef
613
614 ubntunifi_cmdline=board=UBNT-XM console=ttyS0,115200
615 define Image/Build/Profile/UBNTUNIFI
616         $(call Image/Build/Template/$(fs_64k)/$(1),UBNTXM,ubnt-unifi,$(ubntunifi_cmdline),XM,UBNTXM,ar7240)
617 endef
618
619 define Image/Build/Profile/UBNT
620         $(call Image/Build/Profile/UBNTRS,$(1))
621         $(call Image/Build/Profile/UBNTRSPRO,$(1))
622         $(call Image/Build/Profile/UBNTLSSR71,$(1))
623         $(call Image/Build/Profile/UBNTBULLETM,$(1))
624         $(call Image/Build/Profile/UBNTROCKETM,$(1))
625         $(call Image/Build/Profile/UBNTNANOM,$(1))
626         $(call Image/Build/Profile/UBNTUNIFI,$(1))
627 endef
628
629 mzkw04nu_cmdline=board=MZK-W04NU console=ttyS0,115200
630 define Image/Build/Profile/MZKW04NU
631         $(call Image/Build/Template/$(fs_64k)/$(1),Planex,mzk-w04nu,$(mzkw04nu_cmdline))
632 endef
633
634 mzkw300nh_cmdline=board=MZK-W300NH console=ttyS0,115200
635 define Image/Build/Profile/MZKW300NH
636         $(call Image/Build/Template/$(fs_64k)/$(1),Planex,mzk-w300nh,$(mzkw300nh_cmdline))
637 endef
638
639 nbg460n_cmdline=board=NBG460N console=ttyS0,115200
640 define Image/Build/Profile/NBG_460N_550N_550NH
641         $(call Image/Build/Template/$(fs_64k)/$(1),ZyXEL,nbg460n_550n_550nh,$(nbg460n_cmdline),NBG-460N)
642 endef
643
644 tlmr3220_cmdline=board=TL-MR3220 console=ttyS0,115200
645 define Image/Build/Profile/TLMR3220V1
646         $(call Image/Build/Template/$(fs_4k)/$(1),TPLINK,tl-mr3220-v1,$(tlmr3220_cmdline),TL-MR3220v1)
647 endef
648
649 tlmr3420_cmdline=board=TL-MR3420 console=ttyS0,115200
650 define Image/Build/Profile/TLMR3420V1
651         $(call Image/Build/Template/$(fs_4k)/$(1),TPLINK,tl-mr3420-v1,$(tlmr3420_cmdline),TL-MR3420v1)
652 endef
653
654 tlwa901nd_cmdline=board=TL-WA901ND console=ttyS0,115200
655 define Image/Build/Profile/TLWA901NDV1
656         $(call Image/Build/Template/$(fs_4k)/$(1),TPLINK,tl-wa901nd-v1,$(tlwa901nd_cmdline),TL-WA901NDv1)
657 endef
658
659 tlwa901ndv2_cmdline=board=TL-WA901ND-v2 console=ttyS0,115200
660 define Image/Build/Profile/TLWA901NDV2
661         $(call Image/Build/Template/$(fs_4k)/$(1),TPLINK,tl-wa901nd-v2,$(tlwa901ndv2_cmdline),TL-WA901NDv2)
662 endef
663
664 tlwe741ndv1_cmdline=board=TL-WR741ND console=ttyS0,115200
665 define Image/Build/Profile/TLWR741NDV1
666         $(call Image/Build/Template/$(fs_4k)/$(1),TPLINK,tl-wr741nd-v1,$(tlwe741ndv1_cmdline),TL-WR741NDv1)
667 endef
668
669 tlwe740nv1_cmdline=board=TL-WR741ND console=ttyS0,115200
670 define Image/Build/Profile/TLWR740NV1
671         $(call Image/Build/Template/$(fs_4k)/$(1),TPLINK,tl-wr740n-v1,$(tlwe740nv1_cmdline),TL-WR740Nv1)
672 endef
673
674 tlwr841nv15_cmdline=board=TL-WR841N-v1.5 console=ttyS0,115200
675 define Image/Build/Profile/TLWR841NV15
676         $(call Image/Build/Template/$(fs_squash)/$(1),TPLINK,tl-wr841n-v1.5,$(tlwr841nv15_cmdline),TL-WR841Nv1.5)
677 endef
678
679 tlwr841ndv3_cmdline=board=TL-WR941ND console=ttyS0,115200
680 define Image/Build/Profile/TLWR841NDV3
681         $(call Image/Build/Template/$(fs_squash)/$(1),TPLINK,tl-wr841nd-v3,$(tlwr841ndv3_cmdline),TL-WR841NDv3)
682 endef
683
684 tlwr841ndv5_cmdline=board=TL-WR741ND console=ttyS0,115200
685 define Image/Build/Profile/TLWR841NDV5
686         $(call Image/Build/Template/$(fs_4k)/$(1),TPLINK,tl-wr841nd-v5,$(tlwr841ndv5_cmdline),TL-WR841NDv5)
687 endef
688
689 tlwr841ndv7_cmdline=board=TL-WR741ND console=ttyS0,115200
690 define Image/Build/Profile/TLWR841NDV7
691         $(call Image/Build/Template/$(fs_4k)/$(1),TPLINK,tl-wr841nd-v7,$(tlwr841ndv7_cmdline),TL-WR841NDv7)
692 endef
693
694 tlwr941ndv2_cmdline=board=TL-WR941ND console=ttyS0,115200
695 define Image/Build/Profile/TLWR941NDV2
696         $(call Image/Build/Template/$(fs_squash)/$(1),TPLINK,tl-wr941nd-v2,$(tlwr941ndv2_cmdline),TL-WR941NDv2)
697 endef
698
699 tlwr941ndv3_cmdline=board=TL-WR941ND console=ttyS0,115200
700 define Image/Build/Profile/TLWR941NDV3
701         $(call Image/Build/Template/$(fs_squash)/$(1),TPLINK,tl-wr941nd-v3,$(tlwr941ndv3_cmdline),TL-WR941NDv2)
702 endef
703
704 tlwr941ndv4_cmdline=board=TL-WR741ND console=ttyS0,115200
705 define Image/Build/Profile/TLWR941NDV4
706         $(call Image/Build/Template/$(fs_4k)/$(1),TPLINK,tl-wr941nd-v4,$(tlwr941ndv4_cmdline),TL-WR941NDv4)
707 endef
708
709 tlwr1043nd_cmdline=board=TL-WR1043ND console=ttyS0,115200
710 define Image/Build/Profile/TLWR1043NDV1
711         $(call Image/Build/Template/$(fs_squash)/$(1),TPLINK,tl-wr1043nd-v1,$(tlwr1043nd_cmdline),TL-WR1043NDv1)
712 endef
713
714 wndr3700_cmdline=board=WNDR3700 console=ttyS0,115200
715 wndr3700_mtdlayout=mtdparts=spi0.0:320k(u-boot)ro,128k(u-boot-env)ro,1024k(kernel),6656k(rootfs),64k(art)ro,7680k@0x70000(firmware)
716 wndr3700v2_cmdline=board=WNDR3700v2 console=ttyS0,115200
717 wndr3700v2_mtdlayout=mtdparts=spi0.0:320k(u-boot)ro,128k(u-boot-env)ro,1024k(kernel),14848k(rootfs),64k(art)ro,15872k@0x70000(firmware)
718 define Image/Build/Profile/WNDR3700
719         $(call Image/Build/Template/$(fs_64k)/$(1),Netgear,wndr3700,$(wndr3700_cmdline),wndr3700_mtdlayout,3700,WNDR3700)
720         $(call Image/Build/Template/$(fs_64k)/$(1),Netgear,wndr3700v2,$(wndr3700v2_cmdline),wndr3700v2_mtdlayout,3701,WNDR3700v2)
721 endef
722
723 ap96_cmdline=board=AP96 console=ttyS0,115200
724 define Image/Build/Profile/AP96
725         $(call Image/Build/Template/$(fs_64k)/$(1),AP83,ap96,$(ap96_cmdline))
726 endef
727
728 wr400n_cmdline=board=WRT400N console=ttyS0,115200
729 define Image/Build/Profile/WRT400N
730         $(call Image/Build/Template/$(fs_64k)/$(1),WRT400N,wrt400n,$(wr400n_cmdline))
731 endef
732
733 dir825b1_cmdline=board=DIR-825-B1 console=ttyS0,115200
734 define Image/Build/Profile/DIR825B1
735         $(call Image/Build/Template/$(fs_64k)/$(1),DIR825B1,dir-825-b1,$(dir825b1_cmdline))
736 endef
737
738 wrt160nl_cmdline=board=WRT160NL console=ttyS0,115200
739 define Image/Build/Profile/WRT160NL
740         $(call Image/Build/Template/$(fs_64k)/$(1),CyberTAN,wrt160nl,$(wrt160nl_cmdline),1.00.01)
741 endef
742
743 wzrhpg300nh_cmdline=board=WZR-HP-G300NH console=ttyS0,115200
744 wzrhpg301nh_cmdline=board=WZR-HP-G301NH console=ttyS0,115200
745 define Image/Build/Profile/WZRHPG30XNH
746         $(call Image/Build/Template/$(fs_128k)/$(1),WZRHPG30XNH,wzr-hp-g300nh,$(wzrhpg300nh_cmdline),WZR-HP-G300NH)
747         $(call Image/Build/Template/$(fs_128k)/$(1),WZRHPG30XNH,wzr-hp-g301nh,$(wzrhpg301nh_cmdline),WZR-HP-G301NH)
748 endef
749
750 zcn1523h28_cmdline=board=ZCN-1523H-2 console=ttyS0,115200
751 define Image/Build/Profile/ZCN1523H28
752         $(call Image/Build/Template/$(fs_64k)/$(1),Zcomax,zcn-1523h-2-8,$(zcn1523h28_cmdline))
753 endef
754
755 zcn1523h516_cmdline=board=ZCN-1523H-5 console=ttyS0,115200
756 define Image/Build/Profile/ZCN1523H516
757         $(call Image/Build/Template/$(fs_64k)/$(1),Zcomax,zcn-1523h-5-16,$(zcn1523h516_cmdline))
758 endef
759
760 define Image/Build/Profile/Default
761         $(call Image/Build/Profile/AP81,$(1))
762         $(call Image/Build/Profile/AP83,$(1))
763         $(call Image/Build/Profile/A02RBW300N,$(1))
764         $(call Image/Build/Profile/DB120,$(1))
765         $(call Image/Build/Profile/DIR600A1,$(1))
766         $(call Image/Build/Profile/DIR615C1,$(1))
767         $(call Image/Build/Profile/DIR825B1,$(1))
768         $(call Image/Build/Profile/EAP7660D,$(1))
769         $(call Image/Build/Profile/FR54RTR,$(1))
770         $(call Image/Build/Profile/JA76PF,$(1))
771         $(call Image/Build/Profile/JWAP003,$(1))
772         $(call Image/Build/Profile/MZKW04NU,$(1))
773         $(call Image/Build/Profile/MZKW300NH,$(1))
774         $(call Image/Build/Profile/NBG_460N_550N_550NH,$(1))
775         $(call Image/Build/Profile/PB42,$(1))
776         $(call Image/Build/Profile/PB44,$(1))
777         $(call Image/Build/Profile/PB92,$(1))
778         $(call Image/Build/Profile/TEW632BRP,$(1))
779         $(call Image/Build/Profile/TEW652BRP,$(1))
780         $(call Image/Build/Profile/TLMR3220V1,$(1))
781         $(call Image/Build/Profile/TLMR3420V1,$(1))
782         $(call Image/Build/Profile/TLWA901NDV1,$(1))
783         $(call Image/Build/Profile/TLWA901NDV2,$(1))
784         $(call Image/Build/Profile/TLWR741NDV1,$(1))
785         $(call Image/Build/Profile/TLWR740NV1,$(1))
786         $(call Image/Build/Profile/TLWR841NV15,$(1))
787         $(call Image/Build/Profile/TLWR841NDV3,$(1))
788         $(call Image/Build/Profile/TLWR841NDV5,$(1))
789         $(call Image/Build/Profile/TLWR841NDV7,$(1))
790         $(call Image/Build/Profile/TLWR941NDV2,$(1))
791         $(call Image/Build/Profile/TLWR941NDV3,$(1))
792         $(call Image/Build/Profile/TLWR941NDV4,$(1))
793         $(call Image/Build/Profile/TLWR1043NDV1,$(1))
794         $(call Image/Build/Profile/UBNT,$(1))
795         $(call Image/Build/Profile/WP543,$(1))
796         $(call Image/Build/Profile/WNDR3700,$(1))
797         $(call Image/Build/Profile/AP96,$(1))
798         $(call Image/Build/Profile/WRT400N,$(1))
799         $(call Image/Build/Profile/WRT160NL,$(1))
800         $(call Image/Build/Profile/WZRHPG30XNH,$(1))
801         $(call Image/Build/Profile/ZCN1523H28,$(1))
802         $(call Image/Build/Profile/ZCN1523H516,$(1))
803 endef
804
805 define Image/Build/Profile/Minimal
806         $(call Image/Build/Profile/Default,$(1))
807 endef
808
809 define Image/Build/Profile/Madwifi
810         $(call Image/Build/Profile/EAP7660D,$(1))
811         $(call Image/Build/Profile/UBNTRS,$(1))
812         $(call Image/Build/Profile/UBNTRSPRO,$(1))
813         $(call Image/Build/Profile/UBNTLSSR71,$(1))
814         $(call Image/Build/Profile/WP543,$(1))
815 endef
816
817 define Image/Build/squashfs
818         dd if=$(KDIR)/root.squashfs of=$(KDIR)/root.squashfs-4k.tmp0 bs=4k conv=sync
819         $(call add_jffs2_mark,$(KDIR)/root.squashfs-4k.tmp0)
820         dd if=$(KDIR)/root.squashfs-4k.tmp0 of=$(BIN_DIR)/$(IMG_PREFIX)-root.squashfs-4k bs=4k conv=sync
821         rm -f $(KDIR)/root.squashfs-4k.tmp0
822         $(call prepare_generic_squashfs,$(KDIR)/root.squashfs)
823 endef
824
825 define Image/Build/Initramfs
826         $(call Image/Build/Profile/$(PROFILE),initramfs)
827 endef
828
829 define Image/Build
830         $(call Image/Build/$(1))
831         dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/$(IMG_PREFIX)-root.$(1) bs=128k conv=sync
832
833         $(call Image/Build/Profile/$(PROFILE),$(1))
834 endef
835
836 $(eval $(call BuildImage))