abaf1a3e07ea5c34f262fa387c06b8696f0e16a5
[oweals/openwrt.git] / target / linux / ath79 / image / generic.mk
1 include ./common-buffalo.mk
2 include ./common-netgear.mk
3
4 DEVICE_VARS += ADDPATTERN_ID ADDPATTERN_VERSION
5 DEVICE_VARS += SEAMA_SIGNATURE SEAMA_MTDBLOCK
6 DEVICE_VARS += KERNEL_INITRAMFS_PREFIX
7
8 define Build/cybertan-trx
9         @echo -n '' > $@-empty.bin
10         -$(STAGING_DIR_HOST)/bin/trx -o $@.new \
11                 -f $(IMAGE_KERNEL) -F $@-empty.bin \
12                 -x 32 -a 0x10000 -x -32 -f $@
13         -mv "$@.new" "$@"
14         -rm $@-empty.bin
15 endef
16
17 define Build/addpattern
18         -$(STAGING_DIR_HOST)/bin/addpattern -B $(ADDPATTERN_ID) \
19                 -v v$(ADDPATTERN_VERSION) -i $@ -o $@.new
20         -mv "$@.new" "$@"
21 endef
22
23 define Build/add-elecom-factory-initramfs
24   $(eval edimax_model=$(word 1,$(1)))
25   $(eval product=$(word 2,$(1)))
26
27   $(STAGING_DIR_HOST)/bin/mkedimaximg \
28         -b -s CSYS -m $(edimax_model) \
29         -f 0x70000 -S 0x01100000 \
30         -i $@ -o $@.factory
31
32   ( \
33         echo -n -e "ELECOM\x00\x00$(product)" | dd bs=40 count=1 conv=sync; \
34         echo -n "0.00" | dd bs=16 count=1 conv=sync; \
35         dd if=$@.factory; \
36   ) > $@.factory.new
37
38   if [ "$$(stat -c%s $@.factory.new)" -le $$(($(subst k,* 1024,$(subst m, * 1024k,$(IMAGE_SIZE))))) ]; then \
39         mv $@.factory.new $(BIN_DIR)/$(KERNEL_INITRAMFS_PREFIX)-factory.bin; \
40   else \
41         echo "WARNING: initramfs kernel image too big, cannot generate factory image" >&2; \
42   fi
43 endef
44
45 define Build/nec-enc
46   $(STAGING_DIR_HOST)/bin/nec-enc \
47     -i $@ -o $@.new -k $(1)
48   mv $@.new $@
49 endef
50
51 define Build/nec-fw
52   ( stat -c%s $@ | tr -d "\n" | dd bs=16 count=1 conv=sync; ) >> $@
53   ( \
54     echo -n -e "$(1)" | dd bs=16 count=1 conv=sync; \
55     echo -n "0.0.00" | dd bs=16 count=1 conv=sync; \
56     dd if=$@; \
57   ) > $@.new
58   mv $@.new $@
59 endef
60
61 define Device/seama
62   KERNEL := kernel-bin | append-dtb | relocate-kernel | lzma
63   KERNEL_INITRAMFS := $$(KERNEL) | seama
64   IMAGES += factory.bin
65   SEAMA_MTDBLOCK := 1
66
67   # 64 bytes offset:
68   # - 28 bytes seama_header
69   # - 36 bytes of META data (4-bytes aligned)
70   IMAGE/default := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-rootfs
71   IMAGE/sysupgrade.bin := \
72         $$(IMAGE/default) | seama | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
73   IMAGE/factory.bin := \
74         $$(IMAGE/default) | pad-rootfs -x 64 | seama | seama-seal | check-size $$$$(IMAGE_SIZE)
75   SEAMA_SIGNATURE :=
76 endef
77
78 define Device/8dev_carambola2
79   ATH_SOC := ar9331
80   DEVICE_VENDOR := 8devices
81   DEVICE_MODEL := Carambola2
82   DEVICE_PACKAGES := kmod-usb2 kmod-usb-chipidea2
83   IMAGE_SIZE := 16000k
84   SUPPORTED_DEVICES += carambola2
85 endef
86 TARGET_DEVICES += 8dev_carambola2
87
88 define Device/adtran_bsap1880
89   ATH_SOC := ar7161
90   DEVICE_VENDOR := Adtran/Bluesocket
91   DEVICE_PACKAGES += -swconfig -uboot-envtools fconfig
92   KERNEL := kernel-bin | append-dtb | lzma
93   KERNEL_INITRAMFS := kernel-bin | append-dtb
94   IMAGE_SIZE := 11200k
95   IMAGES += kernel.bin rootfs.bin
96   IMAGE/kernel.bin := append-kernel | pad-to $$$$(BLOCKSIZE)
97   IMAGE/rootfs.bin := append-rootfs | pad-rootfs
98   IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | combined-image | append-metadata | check-size $$$$(IMAGE_SIZE)
99 endef
100
101 define Device/adtran_bsap1800-v2
102   $(Device/adtran_bsap1880)
103   DEVICE_MODEL := BSAP-1800
104   DEVICE_VARIANT := v2
105 endef
106 TARGET_DEVICES += adtran_bsap1800-v2
107
108 define Device/adtran_bsap1840
109   $(Device/adtran_bsap1880)
110   DEVICE_MODEL := BSAP-1840
111 endef
112 TARGET_DEVICES += adtran_bsap1840
113
114 define Device/alfa-network_ap121f
115   ATH_SOC := ar9331
116   DEVICE_VENDOR := ALFA Network
117   DEVICE_MODEL := AP121F
118   DEVICE_PACKAGES := kmod-usb2 kmod-usb-chipidea2 kmod-usb-storage -swconfig
119   IMAGE_SIZE := 16064k
120   SUPPORTED_DEVICES += ap121f
121 endef
122 TARGET_DEVICES += alfa-network_ap121f
123
124 define Device/aruba_ap-105
125   ATH_SOC := ar7161
126   DEVICE_VENDOR := Aruba
127   DEVICE_MODEL := AP-105
128   IMAGE_SIZE := 16000k
129   DEVICE_PACKAGES := kmod-i2c-core kmod-i2c-gpio kmod-tpm-i2c-atmel
130 endef
131 TARGET_DEVICES += aruba_ap-105
132
133 define Device/avm_fritz300e
134   ATH_SOC := ar7242
135   DEVICE_VENDOR := AVM
136   DEVICE_MODEL := FRITZ!WLAN Repeater 300E
137   KERNEL := kernel-bin | append-dtb | lzma | eva-image
138   KERNEL_INITRAMFS := $$(KERNEL)
139   IMAGE_SIZE := 15232k
140   IMAGE/sysupgrade.bin := append-kernel | pad-to 64k | \
141         append-squashfs-fakeroot-be | pad-to 256 | \
142         append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
143   DEVICE_PACKAGES := fritz-tffs rssileds -swconfig
144 endef
145 TARGET_DEVICES += avm_fritz300e
146
147 define Device/avm_fritz4020
148   ATH_SOC := qca9561
149   DEVICE_VENDOR := AVM
150   DEVICE_MODEL := FRITZ!Box 4020
151   IMAGE_SIZE := 15232k
152   KERNEL := kernel-bin | append-dtb | lzma | eva-image
153   KERNEL_INITRAMFS := $$(KERNEL)
154   IMAGE/sysupgrade.bin := append-kernel | pad-to 64k | \
155       append-squashfs-fakeroot-be | pad-to 256 | \
156       append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
157   DEVICE_PACKAGES := fritz-tffs
158   SUPPORTED_DEVICES += fritz4020
159 endef
160 TARGET_DEVICES += avm_fritz4020
161
162 define Device/buffalo_bhr-4grv
163   ATH_SOC := ar7242
164   DEVICE_VENDOR := Buffalo
165   DEVICE_MODEL := BHR-4GRV
166   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
167   IMAGE_SIZE := 32256k
168   IMAGES += factory.bin tftp.bin
169   IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
170   IMAGE/factory.bin := $$(IMAGE/default) | buffalo-enc BHR-4GRV 1.99 | buffalo-tag BHR-4GRV 3
171   IMAGE/tftp.bin := $$(IMAGE/default) | buffalo-tftp-header
172   SUPPORTED_DEVICES += wzr-hp-g450h
173 endef
174 TARGET_DEVICES += buffalo_bhr-4grv
175
176 define Device/buffalo_bhr-4grv2
177   ATH_SOC := qca9557
178   DEVICE_VENDOR := Buffalo
179   DEVICE_MODEL := BHR-4GRV2
180   IMAGE_SIZE := 16000k
181 endef
182 TARGET_DEVICES += buffalo_bhr-4grv2
183
184 define Device/buffalo_wzr-hp-ag300h
185   ATH_SOC := ar7161
186   DEVICE_VENDOR := Buffalo
187   DEVICE_MODEL := WZR-HP-AG300H
188   IMAGE_SIZE := 32256k
189   IMAGES += factory.bin tftp.bin
190   IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
191   IMAGE/factory.bin := $$(IMAGE/default) | buffalo-enc WZR-HP-AG300H 1.99 | buffalo-tag WZR-HP-AG300H 3
192   IMAGE/tftp.bin := $$(IMAGE/default) | buffalo-tftp-header
193   DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport kmod-leds-reset kmod-owl-loader
194   SUPPORTED_DEVICES += wzr-hp-ag300h
195 endef
196 TARGET_DEVICES += buffalo_wzr-hp-ag300h
197
198 define Device/buffalo_wzr-hp-g302h-a1a0
199   ATH_SOC := ar7242
200   DEVICE_VENDOR := Buffalo
201   DEVICE_MODEL := WZR-HP-G302H
202   DEVICE_VARIANT := A1A0
203   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
204   IMAGE_SIZE := 32128k
205   IMAGES += factory.bin tftp.bin
206   IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
207   IMAGE/factory.bin := $$(IMAGE/default) | buffalo-enc WZR-HP-G302H 1.99 | buffalo-tag WZR-HP-G302H 4
208   IMAGE/tftp.bin := $$(IMAGE/default) | buffalo-tftp-header
209   SUPPORTED_DEVICES += wzr-hp-g300nh2
210 endef
211 TARGET_DEVICES += buffalo_wzr-hp-g302h-a1a0
212
213 define Device/buffalo_wzr-hp-g450h
214   ATH_SOC := ar7242
215   DEVICE_VENDOR := Buffalo
216   DEVICE_MODEL := WZR-HP-G450H/WZR-450HP
217   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
218   IMAGE_SIZE := 32256k
219   IMAGES += factory.bin tftp.bin
220   IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
221   IMAGE/factory.bin := $$(IMAGE/default) | buffalo-enc WZR-HP-G450H 1.99 | buffalo-tag WZR-HP-G450H 3
222   IMAGE/tftp.bin := $$(IMAGE/default) | buffalo-tftp-header
223   SUPPORTED_DEVICES += wzr-hp-g450h
224 endef
225 TARGET_DEVICES += buffalo_wzr-hp-g450h
226
227 define Device/comfast_cf-e110n-v2
228   ATH_SOC := qca9533
229   DEVICE_VENDOR := COMFAST
230   DEVICE_MODEL := CF-E110N
231   DEVICE_VARIANT := v2
232   DEVICE_PACKAGES := rssileds kmod-leds-gpio -swconfig -uboot-envtools
233   IMAGE_SIZE := 16192k
234 endef
235 TARGET_DEVICES += comfast_cf-e110n-v2
236
237 define Device/comfast_cf-e120a-v3
238   ATH_SOC := ar9344
239   DEVICE_VENDOR := COMFAST
240   DEVICE_MODEL := CF-E120A
241   DEVICE_VARIANT := v3
242   DEVICE_PACKAGES := rssileds kmod-leds-gpio -uboot-envtools
243   IMAGE_SIZE := 8000k
244 endef
245 TARGET_DEVICES += comfast_cf-e120a-v3
246
247 define Device/comfast_cf-e5
248   ATH_SOC := qca9531
249   DEVICE_VENDOR := COMFAST
250   DEVICE_MODEL := CF-E5/E7
251   DEVICE_PACKAGES := rssileds kmod-leds-gpio kmod-usb-core kmod-usb2 kmod-usb-net \
252         kmod-usb-net-qmi-wwan -swconfig -uboot-envtools
253   IMAGE_SIZE := 16192k
254 endef
255 TARGET_DEVICES += comfast_cf-e5
256
257 define Device/devolo_dvl1200e
258   ATH_SOC := qca9558
259   DEVICE_VENDOR := devolo
260   DEVICE_MODEL := WiFi pro 1200e
261   DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
262   IMAGE_SIZE := 15936k
263 endef
264 TARGET_DEVICES += devolo_dvl1200e
265
266 define Device/devolo_dvl1200i
267   ATH_SOC := qca9558
268   DEVICE_VENDOR := devolo
269   DEVICE_MODEL := WiFi pro 1200i
270   DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
271   IMAGE_SIZE := 15936k
272 endef
273 TARGET_DEVICES += devolo_dvl1200i
274
275 define Device/devolo_dvl1750c
276   ATH_SOC := qca9558
277   DEVICE_VENDOR := devolo
278   DEVICE_MODEL := WiFi pro 1750c
279   DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
280   IMAGE_SIZE := 15936k
281 endef
282 TARGET_DEVICES += devolo_dvl1750c
283
284 define Device/devolo_dvl1750e
285   ATH_SOC := qca9558
286   DEVICE_VENDOR := devolo
287   DEVICE_MODEL := WiFi pro 1750e
288   DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct
289   IMAGE_SIZE := 15936k
290 endef
291 TARGET_DEVICES += devolo_dvl1750e
292
293 define Device/devolo_dvl1750i
294   ATH_SOC := qca9558
295   DEVICE_VENDOR := devolo
296   DEVICE_MODEL := WiFi pro 1750i
297   DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
298   IMAGE_SIZE := 15936k
299 endef
300 TARGET_DEVICES += devolo_dvl1750i
301
302 define Device/devolo_dvl1750x
303   ATH_SOC := qca9558
304   DEVICE_VENDOR := devolo
305   DEVICE_MODEL := WiFi pro 1750x
306   DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
307   IMAGE_SIZE := 15936k
308 endef
309 TARGET_DEVICES += devolo_dvl1750x
310
311 define Device/dlink_dir-825-b1
312   ATH_SOC := ar7161
313   DEVICE_VENDOR := D-Link
314   DEVICE_MODEL := DIR-825
315   DEVICE_VARIANT := B1
316   IMAGE_SIZE := 6208k
317   IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
318   DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport kmod-leds-reset kmod-owl-loader
319   SUPPORTED_DEVICES += dir-825-b1
320 endef
321 TARGET_DEVICES += dlink_dir-825-b1
322
323 define Device/dlink_dir-825-c1
324   ATH_SOC := ar9344
325   DEVICE_VENDOR := D-Link
326   DEVICE_MODEL := DIR-825
327   DEVICE_VARIANT := C1
328   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-leds-reset kmod-owl-loader
329   SUPPORTED_DEVICES += dir-825-c1
330   IMAGE_SIZE := 15936k
331   IMAGES := factory.bin sysupgrade.bin
332   IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs
333   IMAGE/factory.bin := $$(IMAGE/default) | pad-offset $$$$(IMAGE_SIZE) 26 | \
334         append-string 00DB120AR9344-RT-101214-00 | check-size $$$$(IMAGE_SIZE)
335   IMAGE/sysupgrade.bin := $$(IMAGE/default) | append-metadata | check-size $$$$(IMAGE_SIZE)
336 endef
337 TARGET_DEVICES += dlink_dir-825-c1
338
339 define Device/dlink_dir-835-a1
340   ATH_SOC := ar9344
341   DEVICE_VENDOR := D-Link
342   DEVICE_MODEL := DIR-835
343   DEVICE_VARIANT := A1
344   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-leds-reset kmod-owl-loader
345   SUPPORTED_DEVICES += dir-835-a1
346   IMAGE_SIZE := 15936k
347   IMAGES := factory.bin sysupgrade.bin
348   IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs
349   IMAGE/factory.bin := $$(IMAGE/default) | pad-offset $$$$(IMAGE_SIZE) 26 | \
350         append-string 00DB120AR9344-RT-101214-00 | check-size $$$$(IMAGE_SIZE)
351   IMAGE/sysupgrade.bin := $$(IMAGE/default) | append-metadata | check-size $$$$(IMAGE_SIZE)
352 endef
353 TARGET_DEVICES += dlink_dir-835-a1
354
355 define Device/dlink_dir-859-a1
356   $(Device/seama)
357   ATH_SOC := qca9563
358   DEVICE_VENDOR := D-Link
359   DEVICE_MODEL := DIR-859
360   DEVICE_VARIANT := A1
361   IMAGE_SIZE := 15872k
362   DEVICE_PACKAGES :=  kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct
363   SEAMA_SIGNATURE := wrgac37_dlink.2013gui_dir859
364   SUPPORTED_DEVICES += dir-859-a1
365 endef
366 TARGET_DEVICES += dlink_dir-859-a1
367
368 define Device/dlink_dir-842-c
369   ATH_SOC := qca9563
370   DEVICE_VENDOR := D-Link
371   DEVICE_MODEL := DIR-842
372   KERNEL := kernel-bin | append-dtb | relocate-kernel | lzma
373   KERNEL_INITRAMFS := $$(KERNEL) | seama
374   IMAGES += factory.bin
375   SEAMA_MTDBLOCK := 5
376   SEAMA_SIGNATURE := wrgac65_dlink.2015_dir842
377   # 64 bytes offset:
378   # - 28 bytes seama_header
379   # - 36 bytes of META data (4-bytes aligned)
380   IMAGE/default := append-kernel | uImage lzma | pad-offset $$$$(BLOCKSIZE) 64 | append-rootfs
381   IMAGE/sysupgrade.bin := \
382         $$(IMAGE/default) | seama | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
383   IMAGE/factory.bin := \
384         $$(IMAGE/default) | pad-rootfs -x 64 | seama | seama-seal | check-size $$$$(IMAGE_SIZE)
385   IMAGE_SIZE := 15680k
386 endef
387
388 define Device/dlink_dir-842-c1
389         $(Device/dlink_dir-842-c)
390         DEVICE_VARIANT := C1
391         DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
392 endef
393 TARGET_DEVICES += dlink_dir-842-c1
394
395 define Device/dlink_dir-842-c2
396         $(Device/dlink_dir-842-c)
397         DEVICE_VARIANT := C2
398         DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca9888-ct
399 endef
400 TARGET_DEVICES += dlink_dir-842-c2
401
402 define Device/dlink_dir-842-c3
403         $(Device/dlink_dir-842-c)
404         DEVICE_VARIANT := C3
405         DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
406 endef
407 TARGET_DEVICES += dlink_dir-842-c3
408
409 define Device/elecom_wrc-1750ghbk2-i
410   ATH_SOC := qca9563
411   DEVICE_VENDOR := ELECOM
412   DEVICE_MODEL := WRC-1750GHBK2-I/C
413   IMAGE_SIZE := 15808k
414   KERNEL_INITRAMFS := $$(KERNEL) | pad-to 2 | \
415         add-elecom-factory-initramfs RN68 WRC-1750GHBK2
416   DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
417 endef
418 TARGET_DEVICES += elecom_wrc-1750ghbk2-i
419
420 define Device/elecom_wrc-300ghbk2-i
421   ATH_SOC := qca9563
422   DEVICE_VENDOR := ELECOM
423   DEVICE_MODEL := WRC-300GHBK2-I
424   IMAGE_SIZE := 7616k
425   KERNEL_INITRAMFS := $$(KERNEL) | pad-to 2 | \
426         add-elecom-factory-initramfs RN51 WRC-300GHBK2-I
427 endef
428 TARGET_DEVICES += elecom_wrc-300ghbk2-i
429
430 define Device/embeddedwireless_dorin
431   ATH_SOC := ar9331
432   DEVICE_VENDOR := Embedded Wireless
433   DEVICE_MODEL := Dorin
434   DEVICE_PACKAGES := kmod-usb-chipidea2
435   IMAGE_SIZE := 16000k
436 endef
437 TARGET_DEVICES += embeddedwireless_dorin
438
439 define Device/engenius_ecb1750
440   ATH_SOC := qca9558
441   DEVICE_VENDOR := EnGenius
442   DEVICE_MODEL := ECB1750
443   DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
444   IMAGE_SIZE := 15680k
445   IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
446     append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \
447     senao-header -r 0x101 -p 0x6d -t 2
448   IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
449 endef
450 TARGET_DEVICES += engenius_ecb1750
451
452 define Device/engenius_epg5000
453   ATH_SOC := qca9558
454   DEVICE_VENDOR := EnGenius
455   DEVICE_MODEL := EPG5000
456   DEVICE_PACKAGES := ath10k-firmware-qca988x-ct kmod-ath10k-ct kmod-usb2
457   IMAGE_SIZE := 14656k
458   IMAGES += factory.dlf
459   IMAGE/factory.dlf := append-kernel | pad-to $$$$(BLOCKSIZE) | \
460         append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \
461         senao-header -r 0x101 -p 0x71 -t 2
462   SUPPORTED_DEVICES += epg5000
463 endef
464 TARGET_DEVICES += engenius_epg5000
465
466 define Device/engenius_ews511ap
467   ATH_SOC := qca9531
468   DEVICE_VENDOR := EnGenius
469   DEVICE_MODEL := EWS511AP
470   DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct
471   IMAGE_SIZE := 16000k
472 endef
473 TARGET_DEVICES += engenius_ews511ap
474
475 define Device/etactica_eg200
476   ATH_SOC := ar9331
477   DEVICE_VENDOR := eTactica
478   DEVICE_MODEL := EG200
479   DEVICE_PACKAGES := kmod-usb-chipidea2 kmod-ledtrig-oneshot \
480         kmod-usb-serial kmod-usb-serial-ftdi kmod-usb-storage  kmod-fs-ext4
481   IMAGE_SIZE := 16000k
482   SUPPORTED_DEVICES += rme-eg200
483 endef
484 TARGET_DEVICES += etactica_eg200
485
486 define Device/glinet_gl-ar150
487   ATH_SOC := ar9330
488   DEVICE_VENDOR := GL.iNet
489   DEVICE_MODEL := GL-AR150
490   DEVICE_PACKAGES := kmod-usb-chipidea2
491   IMAGE_SIZE := 16000k
492   SUPPORTED_DEVICES += gl-ar150
493 endef
494 TARGET_DEVICES += glinet_gl-ar150
495
496 define Device/glinet_gl-ar300m-common-nor
497   ATH_SOC := qca9531
498   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
499   IMAGE_SIZE := 16000k
500   SUPPORTED_DEVICES += gl-ar300m
501 endef
502
503 define Device/glinet_gl-ar300m-lite
504   $(Device/glinet_gl-ar300m-common-nor)
505   DEVICE_VENDOR := GL.iNet
506   DEVICE_MODEL := GL-AR300M-Lite
507 endef
508 TARGET_DEVICES += glinet_gl-ar300m-lite
509
510 define Device/glinet_gl-ar300m-nor
511   $(Device/glinet_gl-ar300m-common-nor)
512   DEVICE_VENDOR := GL.iNet
513   DEVICE_MODEL := GL-AR300M
514 endef
515 TARGET_DEVICES += glinet_gl-ar300m-nor
516
517 define Device/glinet_gl-ar750s
518   ATH_SOC := qca9563
519   DEVICE_VENDOR := GL.iNet
520   DEVICE_MODEL := GL-AR750S
521   DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca9887-ct block-mount
522   IMAGE_SIZE := 16000k
523   SUPPORTED_DEVICES += gl-ar750s
524 endef
525 TARGET_DEVICES += glinet_gl-ar750s
526
527 define Device/glinet_gl-x750
528   ATH_SOC := qca9531
529   DEVICE_VENDOR := GL.iNet
530   DEVICE_MODEL := GL-X750
531   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca9887-ct
532   IMAGE_SIZE := 16000k
533 endef
534 TARGET_DEVICES += glinet_gl-x750
535
536 define Device/iodata_etg3-r
537   ATH_SOC := ar9342
538   DEVICE_VENDOR := I-O DATA
539   DEVICE_MODEL := ETG3-R
540   IMAGE_SIZE := 7680k
541   DEVICE_PACKAGES := -iwinfo -kmod-ath9k -wpad-basic
542 endef
543 TARGET_DEVICES += iodata_etg3-r
544
545 define Device/iodata_wn-ac1167dgr
546   ATH_SOC := qca9557
547   DEVICE_VENDOR := I-O DATA
548   DEVICE_MODEL := WN-AC1167DGR
549   IMAGE_SIZE := 14656k
550   IMAGES += factory.bin
551   IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
552     append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \
553     senao-header -r 0x30a -p 0x61 -t 2
554   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct
555 endef
556 TARGET_DEVICES += iodata_wn-ac1167dgr
557
558 define Device/iodata_wn-ac1600dgr
559   ATH_SOC := qca9557
560   DEVICE_VENDOR := I-O DATA
561   DEVICE_MODEL := WN-AC1600DGR
562   IMAGE_SIZE := 14656k
563   IMAGES += factory.bin
564   IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
565     append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \
566     senao-header -r 0x30a -p 0x60 -t 2 -v 200
567   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct
568 endef
569 TARGET_DEVICES += iodata_wn-ac1600dgr
570
571 define Device/iodata_wn-ac1600dgr2
572   ATH_SOC := qca9557
573   DEVICE_VENDOR := I-O DATA
574   DEVICE_MODEL := WN-AC1600DGR2/DGR3
575   IMAGE_SIZE := 14656k
576   IMAGES += dgr2-dgr3-factory.bin
577   IMAGE/dgr2-dgr3-factory.bin := \
578     append-kernel | pad-to $$$$(BLOCKSIZE) | \
579     append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \
580     senao-header -r 0x30a -p 0x60 -t 2 -v 200
581   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct
582 endef
583 TARGET_DEVICES += iodata_wn-ac1600dgr2
584
585 define Device/iodata_wn-ag300dgr
586   ATH_SOC := ar1022
587   DEVICE_VENDOR := I-O DATA
588   DEVICE_MODEL := WN-AG300DGR
589   IMAGE_SIZE := 15424k
590   IMAGES += factory.bin
591   IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
592     append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \
593     senao-header -r 0x30a -p 0x47 -t 2
594   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
595 endef
596 TARGET_DEVICES += iodata_wn-ag300dgr
597
598 define Device/jjplus_ja76pf2
599   ATH_SOC := ar7161
600   DEVICE_VENDOR := jjPlus
601   DEVICE_MODEL := JA76PF2
602   DEVICE_PACKAGES += -kmod-ath9k -swconfig -wpad-mini -uboot-envtools fconfig
603   IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | combined-image | check-size $$$$(IMAGE_SIZE)
604 #  IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | sysupgrade-tar rootfs=$$$$@ | append-metadata
605   KERNEL := kernel-bin | append-dtb | lzma | pad-to $$(BLOCKSIZE)
606   KERNEL_INITRAMFS := kernel-bin | append-dtb
607   IMAGE_SIZE := 16000k
608 endef
609 TARGET_DEVICES += jjplus_ja76pf2
610
611 define Device/librerouter_librerouter-v1
612   ATH_SOC := qca9558
613   DEVICE_VENDOR := Librerouter
614   DEVICE_MODEL := LibreRouter
615   DEVICE_VARIANT := v1
616   IMAGE_SIZE := 7936k
617   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
618 endef
619 TARGET_DEVICES += librerouter_librerouter-v1
620
621 define Device/nec_wg1200cr
622   ATH_SOC := qca9563
623   DEVICE_VENDOR := NEC
624   DEVICE_MODEL := Aterm WG1200CR
625   IMAGE_SIZE := 7616k
626   SEAMA_MTDBLOCK := 6
627   SEAMA_SIGNATURE := wrgac72_necpf.2016gui_wg1200cr
628   IMAGES += factory.bin
629   IMAGE/default := \
630     append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-rootfs
631   IMAGE/sysupgrade.bin := \
632     $$(IMAGE/default) | seama | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
633   IMAGE/factory.bin := \
634     $$(IMAGE/default) | pad-rootfs -x 64 | seama | seama-seal | nec-enc 9gsiy9nzep452pad | \
635     check-size $$$$(IMAGE_SIZE)
636   DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
637 endef
638 TARGET_DEVICES += nec_wg1200cr
639
640 define Device/nec_wg800hp
641   ATH_SOC := qca9563
642   DEVICE_VENDOR := NEC
643   DEVICE_MODEL := Aterm WG800HP
644   IMAGE_SIZE := 7104k
645   IMAGES += factory.bin
646   IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
647     append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \
648     xor-image -p 6A57190601121E4C004C1E1201061957 -x | \
649     nec-fw LASER_ATERM
650   DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct-htt
651 endef
652 TARGET_DEVICES += nec_wg800hp
653
654 define Device/ocedo_koala
655   ATH_SOC := qca9558
656   DEVICE_VENDOR := Ocedo
657   DEVICE_MODEL := Koala
658   DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
659   SUPPORTED_DEVICES += koala
660   IMAGE_SIZE := 7424k
661   IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
662 endef
663 TARGET_DEVICES += ocedo_koala
664
665 define Device/ocedo_raccoon
666   ATH_SOC := ar9344
667   DEVICE_VENDOR := Ocedo
668   DEVICE_MODEL := Raccoon
669   IMAGE_SIZE := 7424k
670   IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
671 endef
672 TARGET_DEVICES += ocedo_raccoon
673
674 define Device/ocedo_ursus
675   ATH_SOC := qca9558
676   DEVICE_VENDOR := Ocedo
677   DEVICE_MODEL := Ursus
678   DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
679   IMAGE_SIZE := 7424k
680   IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
681 endef
682 TARGET_DEVICES += ocedo_ursus
683
684 define Device/openmesh_om5p-ac-v2
685   ATH_SOC := qca9558
686   DEVICE_VENDOR := OpenMesh
687   DEVICE_MODEL := OM5P-AC
688   DEVICE_VARIANT := v2
689   DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct om-watchdog
690   IMAGE_SIZE := 7808k
691   SUPPORTED_DEVICES += om5p-acv2
692 endef
693 TARGET_DEVICES += openmesh_om5p-ac-v2
694
695 define Device/pcs_cap324
696   ATH_SOC := ar9344
697   DEVICE_VENDOR := PowerCloud Systems
698   DEVICE_MODEL := CAP324
699   IMAGE_SIZE := 16000k
700   SUPPORTED_DEVICES += cap324
701 endef
702 TARGET_DEVICES += pcs_cap324
703
704 define Device/pcs_cr3000
705   ATH_SOC := ar9341
706   DEVICE_VENDOR := PowerCloud Systems
707   DEVICE_MODEL := CR3000
708   IMAGE_SIZE := 7808k
709   SUPPORTED_DEVICES += cr3000
710 endef
711 TARGET_DEVICES += pcs_cr3000
712
713 define Device/pcs_cr5000
714   ATH_SOC := ar9344
715   DEVICE_VENDOR := PowerCloud Systems
716   DEVICE_MODEL := CR5000
717   DEVICE_PACKAGES := kmod-usb2 kmod-usb-core
718   IMAGE_SIZE := 7808k
719   SUPPORTED_DEVICES += cr5000
720 endef
721 TARGET_DEVICES += pcs_cr5000
722
723 define Device/netgear_wndr3x00
724   ATH_SOC := ar7161
725   IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | netgear-squashfs | append-rootfs | pad-rootfs
726   DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport kmod-leds-reset kmod-owl-loader
727   $(Device/netgear_ath79)
728 endef
729
730 define Device/netgear_ex7300_ex6400
731   ATH_SOC := qca9558
732   NETGEAR_KERNEL_MAGIC := 0x27051956
733   NETGEAR_BOARD_ID := EX7300series
734   NETGEAR_HW_ID := 29765104+16+0+128
735   IMAGE_SIZE := 15552k
736   IMAGE/default := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | netgear-rootfs | pad-rootfs
737   DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca99x0-ct
738   $(Device/netgear_ath79)
739 endef
740
741 define Device/netgear_ex6400
742   $(Device/netgear_ex7300_ex6400)
743   DEVICE_MODEL := EX6400
744 endef
745 TARGET_DEVICES += netgear_ex6400
746
747 define Device/netgear_ex7300
748   $(Device/netgear_ex7300_ex6400)
749   DEVICE_MODEL := EX7300
750 endef
751 TARGET_DEVICES += netgear_ex7300
752
753 define Device/netgear_wndr3700
754   $(Device/netgear_wndr3x00)
755   DEVICE_MODEL := WNDR3700
756   DEVICE_VARIANT := v1
757   NETGEAR_KERNEL_MAGIC := 0x33373030
758   NETGEAR_BOARD_ID := WNDR3700
759   IMAGE_SIZE := 7680k
760   IMAGES += factory-NA.img
761   IMAGE/factory-NA.img := $$(IMAGE/default) | netgear-dni NA | check-size $$$$(IMAGE_SIZE)
762   SUPPORTED_DEVICES += wndr3700
763 endef
764 TARGET_DEVICES += netgear_wndr3700
765
766 define Device/netgear_wndr3700v2
767   $(Device/netgear_wndr3x00)
768   DEVICE_MODEL := WNDR3700
769   DEVICE_VARIANT := v2
770   NETGEAR_KERNEL_MAGIC := 0x33373031
771   NETGEAR_BOARD_ID := WNDR3700v2
772   NETGEAR_HW_ID := 29763654+16+64
773   IMAGE_SIZE := 15872k
774   SUPPORTED_DEVICES += wndr3700v2
775 endef
776 TARGET_DEVICES += netgear_wndr3700v2
777
778 define Device/pisen_wmm003n
779   $(Device/tplink-8mlzma)
780   ATH_SOC := ar9331
781   DEVICE_VENDOR := PISEN
782   DEVICE_MODEL := Cloud Easy Power (WMM003N)
783   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-chipidea2
784   TPLINK_HWID := 0x07030101
785 endef
786 TARGET_DEVICES += pisen_wmm003n
787
788 define Device/netgear_wndr3800
789   $(Device/netgear_wndr3x00)
790   DEVICE_MODEL := WNDR3800
791   NETGEAR_KERNEL_MAGIC := 0x33373031
792   NETGEAR_BOARD_ID := WNDR3800
793   NETGEAR_HW_ID := 29763654+16+128
794   IMAGE_SIZE := 15872k
795   SUPPORTED_DEVICES += wndr3800
796 endef
797 TARGET_DEVICES += netgear_wndr3800
798
799 define Device/phicomm_k2t
800   ATH_SOC := qca9563
801   DEVICE_VENDOR := Phicomm
802   DEVICE_MODEL := K2T
803   IMAGE_SIZE := 15744k
804   IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
805   DEVICE_PACKAGES := kmod-leds-reset kmod-ath10k-ct ath10k-firmware-qca9888-ct
806 endef
807 TARGET_DEVICES += phicomm_k2t
808
809 define Device/qihoo_c301
810   $(Device/seama)
811   ATH_SOC := ar9344
812   DEVICE_VENDOR := Qihoo
813   DEVICE_MODEL := C301
814   DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct uboot-envtools
815   IMAGE_SIZE := 15744k
816   SEAMA_SIGNATURE := wrgac26_qihoo360_360rg
817   SUPPORTED_DEVICES += qihoo-c301
818 endef
819 TARGET_DEVICES += qihoo_c301
820
821 define Device/rosinson_wr818
822   ATH_SOC := qca9563
823   DEVICE_VENDOR := Rosinson
824   DEVICE_MODEL := WR818
825   IMAGE_SIZE := 15872k
826   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
827 endef
828 TARGET_DEVICES += rosinson_wr818
829
830 define Device/trendnet_tew-823dru
831   ATH_SOC := qca9558
832   DEVICE_VENDOR := Trendnet
833   DEVICE_MODEL := TEW-823DRU
834   DEVICE_VARIANT := v1.0R
835   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct
836   SUPPORTED_DEVICES += tew-823dru
837   IMAGE_SIZE := 15296k
838   IMAGES := factory.bin sysupgrade.bin
839   IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs
840   IMAGE/factory.bin := $$(IMAGE/default) | pad-offset $$$$(IMAGE_SIZE) 26 | \
841         append-string 00AP135AR9558-RT-131129-00 | check-size $$$$(IMAGE_SIZE)
842   IMAGE/sysupgrade.bin := $$(IMAGE/default) | append-metadata | check-size $$$$(IMAGE_SIZE)
843 endef
844 TARGET_DEVICES += trendnet_tew-823dru
845
846 define Device/wd_mynet-n750
847   $(Device/seama)
848   ATH_SOC := ar9344
849   DEVICE_VENDOR := Western Digital
850   DEVICE_MODEL := My Net N750
851   IMAGE_SIZE := 15872k
852   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
853   SEAMA_SIGNATURE := wrgnd13_wd_av
854   SUPPORTED_DEVICES += mynet-n750
855 endef
856 TARGET_DEVICES += wd_mynet-n750
857
858 define Device/wd_mynet-wifi-rangeextender
859   ATH_SOC := ar9344
860   DEVICE_VENDOR := Western Digital
861   DEVICE_MODEL := My Net Wi-Fi Range Extender
862   DEVICE_PACKAGES := rssileds nvram -swconfig
863   IMAGE_SIZE := 7808k
864   ADDPATTERN_ID := mynet-rext
865   ADDPATTERN_VERSION := 1.00.01
866   IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | cybertan-trx | \
867         addpattern | append-metadata
868   SUPPORTED_DEVICES += mynet-rext
869 endef
870 TARGET_DEVICES += wd_mynet-wifi-rangeextender
871
872 define Device/winchannel_wb2000
873   ATH_SOC := ar9344
874   DEVICE_VENDOR := Winchannel
875   DEVICE_MODEL := WB2000
876   IMAGE_SIZE := 15872k
877   DEVICE_PACKAGES := kmod-i2c-core kmod-i2c-gpio kmod-rtc-ds1307 kmod-usb2 kmod-usb-ledtrig-usbport
878 endef
879 TARGET_DEVICES += winchannel_wb2000
880
881 define Device/xiaomi_mi-router-4q
882   ATH_SOC := qca9561
883   DEVICE_VENDOR := Xiaomi
884   DEVICE_MODEL := Mi Router 4Q
885   IMAGE_SIZE := 14336k
886 endef
887 TARGET_DEVICES += xiaomi_mi-router-4q
888
889 define Device/yuncore_a770
890   ATH_SOC := qca9531
891   DEVICE_VENDOR := YunCore
892   DEVICE_MODEL := A770
893   DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct
894   IMAGE_SIZE := 16000k
895 endef
896 TARGET_DEVICES += yuncore_a770
897
898 define Device/zbtlink_zbt-wd323
899   ATH_SOC := ar9344
900   DEVICE_VENDOR := ZBT
901   DEVICE_MODEL := WD323
902   IMAGE_SIZE := 16000k
903   DEVICE_PACKAGES := kmod-usb2 kmod-i2c-core kmod-i2c-gpio kmod-rtc-pcf8563 \
904                      kmod-usb-serial kmod-usb-serial-cp210x uqmi
905 endef
906 TARGET_DEVICES += zbtlink_zbt-wd323