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