brcm47xx: image: use append-rootfs step for per-device rootfs support
[librecmc/librecmc.git] / target / linux / brcm47xx / image / Makefile
1 #
2 # Copyright (C) 2006-2016 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 Build/Clean
11         $(MAKE) -C lzma-loader clean
12 endef
13
14 define Image/Prepare
15         # Optimized LZMA compression (with dictionary), handled by lzma-loader.
16         cat $(KDIR)/vmlinux | $(STAGING_DIR_HOST)/bin/lzma e -si -so -eos -lc1 -lp2 -pb2 > $(KDIR)/vmlinux.lzma
17
18         # Less optimal LZMA compression (no dictionary), handled by CFE.
19         $(STAGING_DIR_HOST)/bin/lzma e -so -d16 $(KDIR)/vmlinux > $(KDIR)/vmlinux-nodictionary.lzma
20
21         gzip -nc9 $(KDIR)/vmlinux > $(KDIR)/vmlinux.gz
22 ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
23         cat $(KDIR)/vmlinux-initramfs | $(STAGING_DIR_HOST)/bin/lzma e -si -so -eos -lc1 -lp2 -pb2 > $(KDIR)/vmlinux-initramfs.lzma
24         $(STAGING_DIR_HOST)/bin/lzma e -so -d16 $(KDIR)/vmlinux-initramfs > $(KDIR)/vmlinux-initramfs-nodictionary.lzma
25 endif
26         rm -f $(KDIR)/loader.gz
27         $(MAKE) -C lzma-loader \
28                 BUILD_DIR="$(KDIR)" \
29                 TARGET="$(KDIR)" \
30                 clean install
31         echo -ne "\\x00" >> $(KDIR)/loader.gz
32         rm -f $(KDIR)/fs_mark
33         echo -ne '\xde\xad\xc0\xde' > $(KDIR)/fs_mark
34         $(call prepare_generic_squashfs,$(KDIR)/fs_mark)
35 endef
36
37 define trxalign/jffs2-128k
38 -a 0x20000 -f $(KDIR)/root.$(1)
39 endef
40 define trxalign/jffs2-64k
41 -a 0x10000 -f $(KDIR)/root.$(1)
42 endef
43 define trxalign/squashfs
44 -a 1024 -f $(1) $(if $(2),-f $(2)) -a 0x10000 -A $(KDIR)/fs_mark
45 endef
46
47 #################################################
48 # Images
49 #################################################
50
51 define Build/trx-with-loader
52         $(STAGING_DIR_HOST)/bin/trx \
53                 -m 33554432 \
54                 -o $@.new \
55                 -f $(KDIR)/loader.gz \
56                 -f $(IMAGE_KERNEL) \
57                 $(call trxalign/$(FILESYSTEM),$@)
58         mv $@.new $@
59 endef
60
61 define Build/trx-v2-with-loader
62         $(STAGING_DIR_HOST)/bin/trx \
63                 -2 \
64                 -m 33554432 \
65                 -o $@.new \
66                 -f $(KDIR)/loader.gz \
67                 -f $(KDIR)/vmlinux.lzma \
68                 $(call trxalign/$(FILESYSTEM),$@,$@.pattern)
69         mv $@.new $@
70 endef
71
72 define Build/trx-without-loader
73         $(STAGING_DIR_HOST)/bin/trx \
74                 -m 33554432 \
75                 -o $@.new \
76                 -f $(IMAGE_KERNEL) \
77                 $(call trxalign/$(FILESYSTEM),$@)
78         mv $@.new $@
79 endef
80
81 define Build/asus-trx
82         $(STAGING_DIR_HOST)/bin/asustrx -p $(PRODUCTID) -i $@ -o $@.new
83         mv $@.new $@
84 endef
85
86 define Build/edimax-bin
87         $(STAGING_DIR_HOST)/bin/trx2edips $@ $@.new
88         mv $@.new $@
89 endef
90
91 define Build/huawei-bin
92         dd if=/dev/zero of=$@.new bs=92 count=1
93         echo -ne 'HDR0\x08\x00\x00\x00' >> $@.new
94         cat $@ >> $@.new
95         mv $@.new $@
96 endef
97
98 define Build/linksys-bin
99         $(STAGING_DIR_HOST)/bin/addpattern -4 -p $(DEVICE_ID) -v v$(VERSION) $(if $(SERIAL),-s $(SERIAL)) -i $@ -o $@.new
100         mv $@.new $@
101 endef
102
103 define Build/linksys-pattern-partition
104         $(STAGING_DIR_HOST)/bin/addpattern -5 -p $(DEVICE_ID) -v v$(VERSION) $(if $(SERIAL),-s $(SERIAL)) -i /dev/null -o $@.pattern
105 endef
106
107 define Build/motorola-bin
108         $(STAGING_DIR_HOST)/bin/motorola-bin -$(MOTOROLA_DEVICE) $@ $@.new
109         mv $@.new $@
110 endef
111
112 define Build/prepend-with-elf
113         mv $@ $@.old
114         dd if=$(KDIR)/loader.elf of=$@ bs=131072 conv=sync
115         cat $@.old >> $@
116 endef
117
118 define Build/tailed-bin
119         echo $(BIN_TAIL) >> $@
120 endef
121
122 define Build/usrobotics-bin
123         $(STAGING_DIR_HOST)/bin/trx2usr $@ $@.new
124         mv $@.new $@
125 endef
126
127 #################################################
128 # Devices
129 #################################################
130
131 DEVICE_VARS += PRODUCTID
132 DEVICE_VARS += DEVICE_ID VERSION SERIAL
133 DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_REGION
134 DEVICE_VARS += MOTOROLA_DEVICE
135 DEVICE_VARS += BIN_TAIL
136
137 define Device/Default
138         KERNEL := kernel-bin
139         IMAGE_NAME = $$(IMAGE_PREFIX)-$$(1).$$(2)
140         KERNEL_NAME = vmlinux.lzma
141         FILESYSTEMS := $(FS_64K)
142         IMAGES := trx
143         IMAGE/trx := append-rootfs | trx-with-loader
144 endef
145
146 define Device/standard
147   DEVICE_TITLE := Image with LZMA loader and LZMA compressed kernel
148 endef
149
150 define Device/standard-noloader-gz
151   DEVICE_TITLE := Image with gzipped kernel
152   KERNEL_NAME = vmlinux.gz
153   IMAGE/trx := append-rootfs | trx-without-loader
154 endef
155
156 define Device/standard-noloader-nodictionarylzma
157   DEVICE_TITLE := Image with LZMA compressed kernel matching CFE decompressor
158   KERNEL_NAME = vmlinux-nodictionary.lzma
159   IMAGE/trx := append-rootfs | trx-without-loader
160 endef
161
162 define Device/asus
163         IMAGES := trx
164         IMAGE/trx := append-rootfs | trx-with-loader | asus-trx
165 endef
166
167 define Device/linksys
168         IMAGES := bin
169         IMAGE/bin := append-rootfs | trx-with-loader | linksys-bin
170 endef
171
172 define Device/motorola
173         IMAGES := bin
174         IMAGE/bin := append-rootfs | trx-with-loader | motorola-bin
175 endef
176
177 define Device/netgear
178         IMAGES := chk
179         IMAGE/chk := append-rootfs | trx-with-loader | netgear-chk
180 endef
181
182 #################################################
183 # Subtarget generic
184 #################################################
185
186 ifeq ($(SUBTARGET),generic)
187   # BCM4705 with tg3
188 define Device/linksys-wrt300n-v1.1
189   DEVICE_TITLE := Linksys WRT300N v1.1
190   $(Device/linksys)
191   DEVICE_ID := EWC2
192   VERSION := 1.51.2
193 endef
194 TARGET_DEVICES += linksys-wrt300n-v1.1
195
196 define Device/linksys-wrt310n-v1
197   DEVICE_TITLE := Linksys WRT310N v1
198   $(Device/linksys)
199   DEVICE_ID := 310N
200   VERSION := 1.0.10
201 endef
202 TARGET_DEVICES += linksys-wrt310n-v1
203
204 define Device/linksys-wrt350n-v1
205   DEVICE_TITLE := Linksys WRT350N v1
206   $(Device/linksys)
207   DEVICE_ID := EWCG
208   VERSION := 1.04.1
209 endef
210 TARGET_DEVICES += linksys-wrt350n-v1
211
212 define Device/linksys-wrt610n-v1
213   DEVICE_TITLE := Linksys WRT610N v1
214   $(Device/linksys)
215   DEVICE_ID := 610N
216   VERSION := 1.0.1
217 endef
218 TARGET_DEVICES += linksys-wrt610n-v1
219
220   # BCMA SoC with SSB WiFi
221 define Device/linksys-wrt610n-v2
222   DEVICE_TITLE := Linksys WRT610N v2
223   $(Device/linksys)
224   DEVICE_ID := 610N
225   VERSION := 2.0.0
226 endef
227 TARGET_DEVICES += linksys-wrt610n-v2
228
229 define Device/linksys-e3000-v1
230   DEVICE_TITLE := Linksys E3000 v1
231   $(Device/linksys)
232   DEVICE_ID := 61XN
233   VERSION := 1.0.3
234 endef
235 TARGET_DEVICES += linksys-e3000-v1
236
237 TARGET_DEVICES += standard
238 endif
239
240 #################################################
241 # Subtarget legacy
242 #################################################
243
244 ifeq ($(SUBTARGET),legacy)
245
246 define Device/asus-wl-300g
247   DEVICE_TITLE := Asus WL-300g
248   $(Device/asus)
249   PRODUCTID := "WL300g      "
250 endef
251 TARGET_DEVICES += asus-wl-300g
252
253 define Device/asus-wl-320gp
254   DEVICE_TITLE := Asus WL-320gP
255   $(Device/asus)
256   PRODUCTID := "WL320gP     "
257 endef
258 TARGET_DEVICES += asus-wl-320gp
259
260 define Device/asus-wl-330ge
261   DEVICE_TITLE := Asus WL-330gE
262   $(Device/asus)
263   PRODUCTID := "WL-330gE    "
264 endef
265 TARGET_DEVICES += asus-wl-330ge
266
267 define Device/asus-wl-500gp-v1
268   DEVICE_TITLE := Asus WL-500gP v1
269   $(Device/asus)
270   PRODUCTID := "WL500gp     "
271 endef
272 TARGET_DEVICES += asus-wl-500gp-v1
273
274 define Device/asus-wl-500gp-v2
275   DEVICE_TITLE := Asus WL-500gP v2
276   $(Device/asus)
277   PRODUCTID := "WL500gpv2   "
278 endef
279 TARGET_DEVICES += asus-wl-500gp-v2
280
281 define Device/asus-wl-500w
282   DEVICE_TITLE := Asus WL-500W
283   $(Device/asus)
284   PRODUCTID := "WL500W      "
285 endef
286 TARGET_DEVICES += asus-wl-500w
287
288 define Device/asus-wl-520gu
289   DEVICE_TITLE := Asus WL-520gU
290   $(Device/asus)
291   PRODUCTID := "WL520gu     "
292 endef
293 TARGET_DEVICES += asus-wl-520gu
294
295 define Device/asus-wl-550ge
296   DEVICE_TITLE := Asus WL-550gE
297   $(Device/asus)
298   PRODUCTID := "WL550gE     "
299 endef
300 TARGET_DEVICES += asus-wl-550ge
301
302 define Device/asus-wl-hdd25
303   DEVICE_TITLE := Asus WL-HDD25
304   $(Device/asus)
305   PRODUCTID := "WLHDD       "
306 endef
307 TARGET_DEVICES += asus-wl-hdd25
308
309 define Device/dlink-dwl-3150
310   DEVICE_TITLE := D-Link DWL-3150
311   IMAGES := bin
312   IMAGE/bin := append-rootfs | trx-with-loader | tailed-bin
313   BIN_TAIL := BCM-5352-2050-0000000-01
314 endef
315 TARGET_DEVICES += dlink-dwl-3150
316
317 define Device/edimax-ps1208-mfg
318   DEVICE_TITLE := Edimax PS-1208MFg
319   IMAGES := bin
320   IMAGE/bin := append-rootfs | trx-with-loader | edimax-bin
321 endef
322 TARGET_DEVICES += edimax-ps1208-mfg
323
324 define Device/huawei-e970
325   DEVICE_TITLE := Huawei E970
326   KERNEL_NAME = vmlinux.gz
327   IMAGES := bin
328   IMAGE/bin := append-rootfs | trx-without-loader | huawei-bin
329 endef
330 TARGET_DEVICES += huawei-e970
331
332 define Device/linksys-wrt54g3g
333   DEVICE_TITLE := Linksys WRT54G3G
334   $(Device/linksys)
335   DEVICE_ID := W54F
336   VERSION := 2.20.1
337 endef
338 TARGET_DEVICES += linksys-wrt54g3g
339
340 define Device/linksys-wrt54g3g-em
341   DEVICE_TITLE := Linksys WRT54G3G-EM
342   $(Device/linksys)
343   DEVICE_ID := W3GN
344   VERSION := 2.20.1
345 endef
346 TARGET_DEVICES += linksys-wrt54g3g-em
347
348 define Device/linksys-wrt54g3gv2-vf
349   DEVICE_TITLE := Linksys WRT54G3GV2-VF
350   FILESYSTEMS := $(FS_128K)
351   IMAGES := noheader.bin bin
352   IMAGE/noheader.bin := linksys-pattern-partition | append-rootfs | trx-v2-with-loader
353   IMAGE/bin := linksys-pattern-partition | append-rootfs | trx-v2-with-loader | linksys-bin
354   DEVICE_ID := 3G2V
355   VERSION := 3.00.24
356   SERIAL := 6
357 endef
358 TARGET_DEVICES += linksys-wrt54g3gv2-vf
359
360 define Device/linksys-wrt54g
361   DEVICE_TITLE := Linksys WRT54G
362   $(Device/linksys)
363   DEVICE_ID := W54G
364   VERSION := 4.71.1
365 endef
366 TARGET_DEVICES += linksys-wrt54g
367
368 define Device/linksys-wrt54gs
369   DEVICE_TITLE := Linksys WRT54GS
370   $(Device/linksys)
371   FILESYSTEMS := $(FS_128K)
372   DEVICE_ID := W54S
373   VERSION := 4.80.1
374 endef
375 TARGET_DEVICES += linksys-wrt54gs
376
377 define Device/linksys-wrt54gs-v4
378   DEVICE_TITLE := Linksys WRT54GS v4
379   $(Device/linksys)
380   DEVICE_ID := W54s
381   VERSION := 1.09.1
382 endef
383 TARGET_DEVICES += linksys-wrt54gs-v4
384
385 define Device/linksys-wrtsl54gs
386   DEVICE_TITLE := Linksys WRTSL54GS
387   $(Device/linksys)
388   FILESYSTEMS := $(FS_128K)
389   DEVICE_ID := W54U
390   VERSION := 2.08.1
391 endef
392 TARGET_DEVICES += linksys-wrtsl54gs
393
394 define Device/linksys-wrt150n
395   DEVICE_TITLE := Linksys WRT150N
396   $(Device/linksys)
397   DEVICE_ID := N150
398   VERSION := 1.51.3
399 endef
400 TARGET_DEVICES += linksys-wrt150n
401
402 define Device/linksys-wrt160n-v1
403   DEVICE_TITLE := Linksys WRT160N v1
404   $(Device/linksys)
405   DEVICE_ID := N150
406   VERSION := 1.50.1
407 endef
408 TARGET_DEVICES += linksys-wrt160n-v1
409
410 define Device/linksys-wrt300n-v1
411   DEVICE_TITLE := Linksys WRT300N v1
412   $(Device/linksys)
413   IMAGES := bin trx
414   DEVICE_ID := EWCB
415   VERSION := 1.03.6
416 endef
417 TARGET_DEVICES += linksys-wrt300n-v1
418
419 define Device/motorola-wa840g
420   DEVICE_TITLE := Motorola WA840G
421   $(Device/motorola)
422   MOTOROLA_DEVICE := 2
423 endef
424 TARGET_DEVICES += motorola-wa840g
425
426 define Device/motorola-we800g
427   DEVICE_TITLE := Motorola WE800G
428   $(Device/motorola)
429   MOTOROLA_DEVICE := 3
430 endef
431 TARGET_DEVICES += motorola-we800g
432
433 define Device/motorola-wr850g
434   DEVICE_TITLE := Motorola WR850G
435   $(Device/motorola)
436   MOTOROLA_DEVICE := 1
437 endef
438 TARGET_DEVICES += motorola-wr850g
439
440 define Device/netgear-wgr614-v8
441   DEVICE_TITLE := Netgear WGR614 v8
442   $(Device/netgear)
443   NETGEAR_BOARD_ID := U12H072T00_NETGEAR
444   NETGEAR_REGION := 2
445 endef
446 TARGET_DEVICES += netgear-wgr614-v8
447
448 define Device/netgear-wgt634u
449   DEVICE_TITLE := Netgear WGT634U
450   FILESYSTEMS := $(FS_128K)
451   IMAGES := bin
452   IMAGE/bin := append-rootfs | trx-with-loader | prepend-with-elf
453 endef
454 TARGET_DEVICES += netgear-wgt634u
455
456 define Device/netgear-wndr3300-v1
457   DEVICE_TITLE := Netgear WNDR3300 v1
458   $(Device/netgear)
459   NETGEAR_BOARD_ID := U12H093T00_NETGEAR
460   NETGEAR_REGION := 2
461 endef
462 TARGET_DEVICES += netgear-wndr3300-v1
463
464 define Device/netgear-wnr834b-v2
465   DEVICE_TITLE := Netgear WNR834B v2
466   $(Device/netgear)
467   NETGEAR_BOARD_ID := U12H081T00_NETGEAR
468   NETGEAR_REGION := 2
469 endef
470 TARGET_DEVICES += netgear-wnr834b-v2
471
472 define Device/usrobotics-usr5461
473   DEVICE_TITLE := USRobotics USR5461
474   IMAGES := bin
475   IMAGE/bin := append-rootfs | trx-with-loader | usrobotics-bin
476 endef
477 TARGET_DEVICES += usrobotics-usr5461
478
479 TARGET_DEVICES += standard standard-noloader-gz
480 endif
481
482 #################################################
483 # Subtarget mips74k
484 #################################################
485
486 ifeq ($(SUBTARGET),mips74k)
487 define Device/asus-rt-ac53u
488   DEVICE_TITLE := Asus RT-AC53U
489   $(Device/asus)
490   PRODUCTID := RT-AC53U
491 endef
492 TARGET_DEVICES += asus-rt-ac53u
493
494 define Device/asus-rt-ac66u
495   DEVICE_TITLE := Asus RT-AC66U
496   $(Device/asus)
497   PRODUCTID := RT-AC66U
498 endef
499 #  TARGET_DEVICES += asus-rt-ac66u
500
501 define Device/asus-rt-n10
502   DEVICE_TITLE := Asus RT-N10
503   $(Device/asus)
504   PRODUCTID := "RT-N10      "
505 endef
506 TARGET_DEVICES += asus-rt-n10
507
508 define Device/asus-rt-n10p
509   DEVICE_TITLE := Asus RT-N10P
510   $(Device/asus)
511   PRODUCTID := RT-N10P
512 endef
513 TARGET_DEVICES += asus-rt-n10p
514
515 define Device/asus-rt-n10p-v2
516   DEVICE_TITLE := Asus RT-N10P v2
517   $(Device/asus)
518   PRODUCTID := RT-N10PV2
519 endef
520 TARGET_DEVICES += asus-rt-n10p-v2
521
522 define Device/asus-rt-n10u
523   DEVICE_TITLE := Asus RT-N10U
524   $(Device/asus)
525   PRODUCTID := RT-N10U
526 endef
527 TARGET_DEVICES += asus-rt-n10u
528
529 define Device/asus-rt-n10u-b
530   DEVICE_TITLE := Asus RT-N10U B
531   $(Device/asus)
532   PRODUCTID := RT-N10U
533 endef
534 TARGET_DEVICES += asus-rt-n10u-b
535
536 define Device/asus-rt-n12
537   DEVICE_TITLE := Asus RT-N12
538   $(Device/asus)
539   PRODUCTID := "RT-N12      "
540 endef
541 TARGET_DEVICES += asus-rt-n12
542
543 define Device/asus-rt-n12-b1
544   DEVICE_TITLE := Asus RT-N12 B1
545   $(Device/asus)
546   PRODUCTID := RT-N12B1
547 endef
548 TARGET_DEVICES += asus-rt-n12-b1
549
550 define Device/asus-rt-n12-c1
551   DEVICE_TITLE := Asus RT-N12 C1
552   $(Device/asus)
553   PRODUCTID := RT-N12C1
554 endef
555 TARGET_DEVICES += asus-rt-n12-c1
556
557 define Device/asus-rt-n12-d1
558   DEVICE_TITLE := Asus RT-N12 D1
559   $(Device/asus)
560   PRODUCTID := RT-N12D1
561 endef
562 TARGET_DEVICES += asus-rt-n12-d1
563
564 define Device/asus-rt-n12hp
565   DEVICE_TITLE := Asus RT-N12HP
566   $(Device/asus)
567   PRODUCTID := RT-N12HP
568 endef
569 TARGET_DEVICES += asus-rt-n12hp
570
571 define Device/asus-rt-n14uhp
572   DEVICE_TITLE := Asus RT-N14UHP
573   $(Device/asus)
574   PRODUCTID := RT-N14UHP
575 endef
576 TARGET_DEVICES += asus-rt-n14uhp
577
578 define Device/asus-rt-n15u
579   DEVICE_TITLE := Asus RT-N15U
580   $(Device/asus)
581   PRODUCTID := RT-N15U
582 endef
583 TARGET_DEVICES += asus-rt-n15u
584
585 define Device/asus-rt-n16
586   DEVICE_TITLE := Asus RT-N16
587   $(Device/asus)
588   PRODUCTID := RT-N16
589 endef
590 TARGET_DEVICES += asus-rt-n16
591
592 define Device/asus-rt-n53
593   DEVICE_TITLE := Asus RT-N53
594   $(Device/asus)
595   PRODUCTID := RT-N53
596 endef
597 TARGET_DEVICES += asus-rt-n53
598
599 define Device/asus-rt-n66u
600   DEVICE_TITLE := Asus RT-N66U
601   $(Device/asus)
602   PRODUCTID := RT-N66U
603 endef
604 TARGET_DEVICES += asus-rt-n66u
605
606 define Device/asus-rt-n66w
607   DEVICE_TITLE := Asus RT-N66W
608   $(Device/asus)
609   PRODUCTID := RT-N66U
610 endef
611 TARGET_DEVICES += asus-rt-n66w
612
613 define Device/linksys-wrt160n-v3
614   DEVICE_TITLE := Linksys WRT160N v3
615   $(Device/linksys)
616   DEVICE_ID := N150
617   VERSION := 3.0.3
618 endef
619 TARGET_DEVICES += linksys-wrt160n-v3
620
621 define Device/linksys-wrt310n-v2
622   DEVICE_TITLE := Linksys WRT310N v2
623   $(Device/linksys)
624   DEVICE_ID := 310N
625   VERSION := 2.0.1
626 endef
627 TARGET_DEVICES += linksys-wrt310n-v2
628
629 define Device/linksys-wrt320n-v1
630   DEVICE_TITLE := Linksys WRT320N v1
631   $(Device/linksys)
632   DEVICE_ID := 320N
633   VERSION := 1.0.5
634 endef
635 TARGET_DEVICES += linksys-wrt320n-v1
636
637 define Device/linksys-e900-v1
638   DEVICE_TITLE := Linksys E900 v1
639   $(Device/linksys)
640   DEVICE_ID := E900
641   VERSION := 1.0.4
642 endef
643 TARGET_DEVICES += linksys-e900-v1
644
645 define Device/linksys-e1000-v1-v2-v2.1
646   DEVICE_TITLE := Linksys E1000 v1 v2 v2.1
647   $(Device/linksys)
648   DEVICE_ID := E100
649   VERSION := 1.1.3
650 endef
651 TARGET_DEVICES += linksys-e1000-v1-v2-v2.1
652
653 define Device/linksys-e1200-v1
654   DEVICE_TITLE := Linksys E1200 v1
655   $(Device/linksys)
656   DEVICE_ID := E120
657   VERSION := 1.0.3
658 endef
659 TARGET_DEVICES += linksys-e1200-v1
660
661 define Device/linksys-e1200-v2
662   DEVICE_TITLE := Linksys E1200 v2
663   $(Device/linksys)
664   DEVICE_ID := E122
665   VERSION := 1.0.4
666 endef
667 TARGET_DEVICES += linksys-e1200-v2
668
669 define Device/linksys-e1500-v1
670   DEVICE_TITLE := Linksys E1500 v1
671   $(Device/linksys)
672   DEVICE_ID := E150
673   VERSION := 1.0.5
674 endef
675 TARGET_DEVICES += linksys-e1500-v1
676
677 define Device/linksys-e1550-v1
678   DEVICE_TITLE := Linksys E1550 v1
679   $(Device/linksys)
680   DEVICE_ID := 1550
681   VERSION := 1.0.3
682 endef
683 TARGET_DEVICES += linksys-e1550-v1
684
685 define Device/linksys-e2000-v1
686   DEVICE_TITLE := Linksys E2000 v1
687   $(Device/linksys)
688   DEVICE_ID := 32XN
689   VERSION := 1.0.4
690 endef
691 TARGET_DEVICES += linksys-e2000-v1
692
693 define Device/linksys-e2500-v1
694   DEVICE_TITLE := Linksys E2500 v1
695   $(Device/linksys)
696   DEVICE_ID := E25X
697   VERSION := 1.0.7
698 endef
699 TARGET_DEVICES += linksys-e2500-v1
700
701 define Device/linksys-e2500-v2
702   DEVICE_TITLE := Linksys E2500 v2
703   $(Device/linksys)
704   DEVICE_ID := E25X
705   VERSION := 2.0.0
706 endef
707 TARGET_DEVICES += linksys-e2500-v2
708
709 define Device/linksys-e2500-v2.1
710   DEVICE_TITLE := Linksys E2500 v2.1
711   $(Device/linksys)
712   DEVICE_ID := 25RU
713   VERSION := 2.1.0
714 endef
715 TARGET_DEVICES += linksys-e2500-v2.1
716
717 define Device/linksys-e2500-v3
718   DEVICE_TITLE := Linksys E2500 v3
719   $(Device/linksys)
720   DEVICE_ID := 25V3
721   VERSION := 3.0.0
722 endef
723 TARGET_DEVICES += linksys-e2500-v3
724
725 define Device/linksys-e3200-v1
726   DEVICE_TITLE := Linksys E3200 v1
727   $(Device/linksys)
728   DEVICE_ID := 3200
729   VERSION := 1.0.1
730 endef
731 TARGET_DEVICES += linksys-e3200-v1
732
733 define Device/linksys-e4200-v1
734   DEVICE_TITLE := Linksys E4200 v1
735   $(Device/linksys)
736   DEVICE_ID := 4200
737   VERSION := 1.0.5
738 endef
739 TARGET_DEVICES += linksys-e4200-v1
740
741 define Device/netgear-wgr614-v10_north-america
742   DEVICE_TITLE := Netgear WGR614 v10 North America
743   $(Device/netgear)
744   NETGEAR_BOARD_ID := U12H139T01_NETGEAR
745   NETGEAR_REGION := 2
746 endef
747 TARGET_DEVICES += netgear-wgr614-v10_north-america
748
749 define Device/netgear-wgr614-v10_other-regions
750   DEVICE_TITLE := Netgear WGR614 v10 Other Regions
751   $(Device/netgear)
752   NETGEAR_BOARD_ID := U12H139T01_NETGEAR
753   NETGEAR_REGION := 1
754 endef
755 TARGET_DEVICES += netgear-wgr614-v10_other-regions
756
757 define Device/netgear-wn2500rp-v1
758   DEVICE_TITLE := Netgear WN2500RP v1
759   $(Device/netgear)
760   NETGEAR_BOARD_ID := U12H197T00_NETGEAR
761   NETGEAR_REGION := 1
762 endef
763 TARGET_DEVICES += netgear-wn2500rp-v1
764
765 define Device/netgear-wndr3400-v1
766   DEVICE_TITLE := Netgear WNDR3400 v1
767   $(Device/netgear)
768   NETGEAR_BOARD_ID := U12H155T00_NETGEAR
769   NETGEAR_REGION := 2
770 endef
771 TARGET_DEVICES += netgear-wndr3400-v1
772
773 define Device/netgear-wndr3400-v2
774   DEVICE_TITLE := Netgear WNDR3400 v2
775   $(Device/netgear)
776   NETGEAR_BOARD_ID := U12H187T00_NETGEAR
777   NETGEAR_REGION := 2
778 endef
779 TARGET_DEVICES += netgear-wndr3400-v2
780
781 define Device/netgear-wndr3400-v3
782   DEVICE_TITLE := Netgear WNDR3400 v3
783   $(Device/netgear)
784   NETGEAR_BOARD_ID := U12H208T00_NETGEAR
785   NETGEAR_REGION := 1
786 endef
787 TARGET_DEVICES += netgear-wndr3400-v3
788
789 define Device/netgear-wndr3700-v3
790   DEVICE_TITLE := Netgear WNDR3700 v3
791   $(Device/netgear)
792   NETGEAR_BOARD_ID := U12H194T00_NETGEAR
793   NETGEAR_REGION := 2
794 endef
795 TARGET_DEVICES += netgear-wndr3700-v3
796
797 define Device/netgear-wndr3400-vcna
798   DEVICE_TITLE := Netgear WNDR3400 vcna
799   $(Device/netgear)
800   NETGEAR_BOARD_ID := U12H155T01_NETGEAR
801   NETGEAR_REGION := 2
802 endef
803 #  TARGET_DEVICES += netgear-wndr3400-vcna
804
805 define Device/netgear-wndr4000
806   DEVICE_TITLE := Netgear WNDR4000
807   $(Device/netgear)
808   NETGEAR_BOARD_ID := U12H181T00_NETGEAR
809   NETGEAR_REGION := 2
810 endef
811 TARGET_DEVICES += netgear-wndr4000
812
813 define Device/netgear-wnr1000-v3
814   DEVICE_TITLE := Netgear WNR1000 v3
815   $(Device/netgear)
816   NETGEAR_BOARD_ID := U12H139T00_NETGEAR
817   NETGEAR_REGION := 2
818 endef
819 TARGET_DEVICES += netgear-wnr1000-v3
820
821 define Device/netgear-wnr2000v2
822   DEVICE_TITLE := Netgear WNR2000 v2
823   $(Device/netgear)
824   NETGEAR_BOARD_ID := U12H114T00_NETGEAR
825   NETGEAR_REGION := 2
826 endef
827 TARGET_DEVICES += netgear-wnr2000v2
828
829 define Device/netgear-wnr3000rp
830   DEVICE_TITLE := Netgear WNR3000RP
831   $(Device/netgear)
832   NETGEAR_BOARD_ID := U12H163T01_NETGEAR
833   NETGEAR_REGION := 1
834 endef
835 TARGET_DEVICES += netgear-wnr3000rp
836
837 define Device/netgear-wnr3500l-v1-north-america
838   DEVICE_TITLE := Netgear WNR3500L v1 North America
839   $(Device/netgear)
840   NETGEAR_BOARD_ID := U12H136T99_NETGEAR
841   NETGEAR_REGION := 2
842 endef
843 TARGET_DEVICES += netgear-wnr3500l-v1-north-america
844
845 define Device/netgear-wnr3500l-v1-other-regions
846   DEVICE_TITLE := Netgear WNR3500L v1 Other Regions
847   $(Device/netgear)
848   NETGEAR_BOARD_ID := U12H136T99_NETGEAR
849   NETGEAR_REGION := 1
850 endef
851 TARGET_DEVICES += netgear-wnr3500l-v1-other-regions
852
853 define Device/netgear-wnr3500l-v2
854   DEVICE_TITLE := Netgear WNR3500L v2
855   $(Device/netgear)
856   NETGEAR_BOARD_ID := U12H172T00_NETGEAR
857   NETGEAR_REGION := 1
858 endef
859 TARGET_DEVICES += netgear-wnr3500l-v2
860
861 define Device/netgear-wnr3500u
862   DEVICE_TITLE := Netgear WNR3500U
863   $(Device/netgear)
864   NETGEAR_BOARD_ID := U12H136T00_NETGEAR
865   NETGEAR_REGION := 2
866 endef
867 #  TARGET_DEVICES += netgear-wnr3500u
868
869 define Device/netgear-wnr3500-v2
870   DEVICE_TITLE := Netgear WNR3500 v2
871   $(Device/netgear)
872   NETGEAR_BOARD_ID := U12H127T00_NETGEAR
873   NETGEAR_REGION := 2
874 endef
875 TARGET_DEVICES += netgear-wnr3500-v2
876
877 define Device/netgear-wnr3500-v2-vc
878   DEVICE_TITLE := Netgear WNR3500 v2 vc
879   $(Device/netgear)
880   NETGEAR_BOARD_ID := U12H127T70_NETGEAR
881   NETGEAR_REGION := 2
882 endef
883 #  TARGET_DEVICES += netgear-wnr3500-v2-vc
884
885 TARGET_DEVICES += standard standard-noloader-nodictionarylzma
886 endif
887
888 #################################################
889 # Shared BuildImage defines
890 #################################################
891
892 define Image/Build/Initramfs
893         $(STAGING_DIR_HOST)/bin/trx \
894                 -m 33554432 \
895                 -o $(BIN_DIR)/$(IMG_PREFIX)-initramfs.trx \
896                 -f $(KDIR)/loader.gz \
897                 -f $(KDIR)/vmlinux-initramfs.lzma
898         $(STAGING_DIR_HOST)/bin/trx \
899                 -m 33554432 \
900                 -o $(BIN_DIR)/$(IMG_PREFIX)-initramfs-noloader-nodictionary.trx \
901                 -f $(KDIR)/vmlinux-initramfs-nodictionary.lzma
902 endef
903
904 # $(1): filesystem type.
905 define Image/Build
906         # TODO: Move it to Device/*
907 ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
908         $(call Image/Build/Initramfs)
909 endif
910 endef
911
912 $(eval $(call BuildImage))