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