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