b66842e88073959ccee802fdc4ce8cd1230b47db
[oweals/openwrt.git] / target / linux / ramips / image / mt7621.mk
1 #
2 # MT7621 Profiles
3 #
4
5 include ./common-tp-link.mk
6
7 DEFAULT_SOC := mt7621
8
9 KERNEL_DTB += -d21
10 DEVICE_VARS += UIMAGE_MAGIC
11
12 # The OEM webinterface expects an kernel with initramfs which has the uImage
13 # header field ih_name.
14 # We don't want to set the header name field for the kernel include in the
15 # sysupgrade image as well, as this image shouldn't be accepted by the OEM
16 # webinterface. It will soft-brick the board.
17 define Build/custom-initramfs-uimage
18         mkimage -A $(LINUX_KARCH) \
19                 -O linux -T kernel \
20                 -C lzma -a $(KERNEL_LOADADDR) $(if $(UIMAGE_MAGIC),-M $(UIMAGE_MAGIC),) \
21                 -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
22                 -n '$(1)' -d $@ $@.new
23         mv $@.new $@
24 endef
25
26 define Build/elecom-gst-factory
27   $(eval product=$(word 1,$(1)))
28   $(eval version=$(word 2,$(1)))
29   ( $(STAGING_DIR_HOST)/bin/mkhash md5 $@ | tr -d '\n' ) >> $@
30   ( \
31     echo -n "ELECOM $(product) v$(version)" | \
32       dd bs=32 count=1 conv=sync; \
33     dd if=$@; \
34   ) > $@.new
35   mv $@.new $@
36   echo -n "MT7621_ELECOM_$(product)" >> $@
37 endef
38
39 define Build/elecom-wrc-factory
40   $(eval product=$(word 1,$(1)))
41   $(eval version=$(word 2,$(1)))
42   $(STAGING_DIR_HOST)/bin/mkhash md5 $@ >> $@
43   ( \
44     echo -n "ELECOM $(product) v$(version)" | \
45       dd bs=32 count=1 conv=sync; \
46     dd if=$@; \
47   ) > $@.new
48   mv $@.new $@
49 endef
50
51 define Build/iodata-factory
52   $(eval fw_size=$(word 1,$(1)))
53   $(eval fw_type=$(word 2,$(1)))
54   $(eval product=$(word 3,$(1)))
55   $(eval factory_bin=$(word 4,$(1)))
56   if [ -e $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) -a "$$(stat -c%s $@)" -lt "$(fw_size)" ]; then \
57     $(CP) $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) $(factory_bin); \
58     $(STAGING_DIR_HOST)/bin/mksenaofw \
59       -r 0x30a -p $(product) -t $(fw_type) \
60       -e $(factory_bin) -o $(factory_bin).new; \
61     mv $(factory_bin).new $(factory_bin); \
62     $(CP) $(factory_bin) $(BIN_DIR)/; \
63         else \
64                 echo "WARNING: initramfs kernel image too big, cannot generate factory image" >&2; \
65         fi
66 endef
67
68 define Build/iodata-mstc-header
69   ( \
70     data_size_crc="$$(dd if=$@ ibs=64 skip=1 2>/dev/null | \
71       gzip -c | tail -c 8 | od -An -tx8 --endian little | tr -d ' \n')"; \
72     echo -ne "$$(echo $$data_size_crc | sed 's/../\\x&/g')" | \
73       dd of=$@ bs=8 count=1 seek=7 conv=notrunc 2>/dev/null; \
74   )
75   dd if=/dev/zero of=$@ bs=4 count=1 seek=1 conv=notrunc 2>/dev/null
76   ( \
77     header_crc="$$(dd if=$@ bs=64 count=1 2>/dev/null | \
78       gzip -c | tail -c 8 | od -An -N4 -tx4 --endian little | tr -d ' \n')"; \
79     echo -ne "$$(echo $$header_crc | sed 's/../\\x&/g')" | \
80       dd of=$@ bs=4 count=1 seek=1 conv=notrunc 2>/dev/null; \
81   )
82 endef
83
84 define Build/ubnt-erx-factory-image
85         if [ -e $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) -a "$$(stat -c%s $@)" -lt "$(KERNEL_SIZE)" ]; then \
86                 echo '21001:6' > $(1).compat; \
87                 $(TAR) -cf $(1) --transform='s/^.*/compat/' $(1).compat; \
88                 \
89                 $(TAR) -rf $(1) --transform='s/^.*/vmlinux.tmp/' $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE); \
90                 mkhash md5 $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) > $(1).md5; \
91                 $(TAR) -rf $(1) --transform='s/^.*/vmlinux.tmp.md5/' $(1).md5; \
92                 \
93                 echo "dummy" > $(1).rootfs; \
94                 $(TAR) -rf $(1) --transform='s/^.*/squashfs.tmp/' $(1).rootfs; \
95                 \
96                 mkhash md5 $(1).rootfs > $(1).md5; \
97                 $(TAR) -rf $(1) --transform='s/^.*/squashfs.tmp.md5/' $(1).md5; \
98                 \
99                 echo '$(BOARD) $(VERSION_CODE) $(VERSION_NUMBER)' > $(1).version; \
100                 $(TAR) -rf $(1) --transform='s/^.*/version.tmp/' $(1).version; \
101                 \
102                 $(CP) $(1) $(BIN_DIR)/; \
103         else \
104                 echo "WARNING: initramfs kernel image too big, cannot generate factory image" >&2; \
105         fi
106 endef
107
108 define Device/afoundry_ew1200
109   IMAGE_SIZE := 16064k
110   DEVICE_VENDOR := AFOUNDRY
111   DEVICE_MODEL := EW1200
112   DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-mt76x2 kmod-mt7603 \
113         kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
114   SUPPORTED_DEVICES += ew1200
115 endef
116 TARGET_DEVICES += afoundry_ew1200
117
118 define Device/alfa-network_quad-e4g
119   IMAGE_SIZE := 16064k
120   DEVICE_VENDOR := ALFA Network
121   DEVICE_MODEL := Quad-E4G
122   DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-sdhci-mt7620 kmod-usb3 \
123         uboot-envtools
124 endef
125 TARGET_DEVICES += alfa-network_quad-e4g
126
127 define Device/asiarf_ap7621-001
128   IMAGE_SIZE := 16000k
129   DEVICE_VENDOR := AsiaRF
130   DEVICE_MODEL := AP7621-001
131   DEVICE_PACKAGES := kmod-sdhci-mt7620 kmod-mt76x2 kmod-usb3
132 endef
133 TARGET_DEVICES += asiarf_ap7621-001
134
135 define Device/asiarf_ap7621-nv1
136   IMAGE_SIZE := 16000k
137   DEVICE_VENDOR := AsiaRF
138   DEVICE_MODEL := AP7621-NV1
139   DEVICE_PACKAGES := kmod-sdhci-mt7620 kmod-mt76x2 kmod-usb3
140 endef
141 TARGET_DEVICES += asiarf_ap7621-nv1
142
143 define Device/asus_rt-ac57u
144   DEVICE_VENDOR := ASUS
145   DEVICE_MODEL := RT-AC57U
146   IMAGE_SIZE := 16064k
147   DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 kmod-usb3 \
148         kmod-usb-ledtrig-usbport wpad-basic
149 endef
150 TARGET_DEVICES += asus_rt-ac57u
151
152 define Device/asus_rt-ac65p
153   DEVICE_VENDOR := ASUS
154   DEVICE_MODEL := RT-AC65P
155   IMAGE_SIZE := 51200k
156   UBINIZE_OPTS := -E 5
157   BLOCKSIZE := 128k
158   PAGESIZE := 2048
159   KERNEL_SIZE := 4096k
160   IMAGES += factory.bin
161   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
162   IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | append-ubi | \
163         check-size $$$$(IMAGE_SIZE)
164   DEVICE_PACKAGES := kmod-usb3 kmod-mt7615e wpad-basic uboot-envtools
165 endef
166 TARGET_DEVICES += asus_rt-ac65p
167
168 define Device/asus_rt-ac85p
169   DEVICE_VENDOR := ASUS
170   DEVICE_MODEL := RT-AC85P
171   IMAGE_SIZE := 51200k
172   UBINIZE_OPTS := -E 5
173   BLOCKSIZE := 128k
174   PAGESIZE := 2048
175   KERNEL_SIZE := 4096k
176   IMAGES += factory.bin
177   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
178   IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | append-ubi | \
179         check-size $$$$(IMAGE_SIZE)
180   DEVICE_PACKAGES := kmod-usb3 kmod-mt7615e wpad-basic uboot-envtools
181 endef
182 TARGET_DEVICES += asus_rt-ac85p
183
184 define Device/buffalo_wsr-1166dhp
185   IMAGE/sysupgrade.bin := trx | pad-rootfs | append-metadata
186   IMAGE_SIZE := 15936k
187   DEVICE_VENDOR := Buffalo
188   DEVICE_MODEL := WSR-1166DHP
189   DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 wpad-basic
190   SUPPORTED_DEVICES += wsr-1166
191 endef
192 TARGET_DEVICES += buffalo_wsr-1166dhp
193
194 define Device/buffalo_wsr-600dhp
195   IMAGE_SIZE := 16064k
196   DEVICE_VENDOR := Buffalo
197   DEVICE_MODEL := WSR-600DHP
198   DEVICE_PACKAGES := kmod-mt7603 kmod-rt2800-pci wpad-basic
199   SUPPORTED_DEVICES += wsr-600
200 endef
201 TARGET_DEVICES += buffalo_wsr-600dhp
202
203 define Device/dlink_dir-860l-b1
204   $(Device/seama)
205   BLOCKSIZE := 64k
206   SEAMA_SIGNATURE := wrgac13_dlink.2013gui_dir860lb
207   KERNEL := kernel-bin | append-dtb | relocate-kernel | lzma | uImage lzma
208   IMAGE_SIZE := 16064k
209   DEVICE_VENDOR := D-Link
210   DEVICE_MODEL := DIR-860L
211   DEVICE_VARIANT := B1
212   DEVICE_PACKAGES := kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
213   SUPPORTED_DEVICES += dir-860l-b1
214 endef
215 TARGET_DEVICES += dlink_dir-860l-b1
216
217 define Device/d-team_newifi-d2
218   IMAGE_SIZE := 32448k
219   DEVICE_VENDOR := Newifi
220   DEVICE_MODEL := D2
221   DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 kmod-usb3 \
222         kmod-usb-ledtrig-usbport wpad-basic
223 endef
224 TARGET_DEVICES += d-team_newifi-d2
225
226 define Device/d-team_pbr-m1
227   IMAGE_SIZE := 16064k
228   DEVICE_VENDOR := PandoraBox
229   DEVICE_MODEL := PBR-M1
230   DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-mt7603 kmod-mt76x2 \
231         kmod-sdhci-mt7620 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
232   SUPPORTED_DEVICES += pbr-m1
233 endef
234 TARGET_DEVICES += d-team_pbr-m1
235
236 define Device/edimax_ra21s
237   IMAGE_SIZE := 16064k
238   DEVICE_VENDOR := Edimax
239   DEVICE_MODEL := RA21S
240   DEVICE_ALT0_VENDOR := Edimax
241   DEVICE_ALT0_MODEL := Gemini RA21S
242   IMAGES += factory.bin
243   IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | \
244         elx-header 02020040 8844A2D168B45A2D
245   DEVICE_PACKAGES := kmod-mt7615e wpad-basic
246 endef
247 TARGET_DEVICES += edimax_ra21s
248
249 define Device/edimax_rg21s
250   IMAGE_SIZE := 16064k
251   DEVICE_VENDOR := Edimax
252   DEVICE_MODEL := Gemini AC2600 RG21S
253   IMAGES += factory.bin
254   IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | \
255         elx-header 02020038 8844A2D168B45A2D
256   DEVICE_PACKAGES := kmod-mt7615e wpad-basic
257 endef
258 TARGET_DEVICES += edimax_rg21s
259
260 define Device/elecom_wrc-1167ghbk2-s
261   IMAGE_SIZE := 15488k
262   DEVICE_VENDOR := ELECOM
263   DEVICE_MODEL := WRC-1167GHBK2-S
264   IMAGES += factory.bin
265   IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | \
266         elecom-wrc-factory WRC-1167GHBK2-S 0.00
267   DEVICE_PACKAGES := kmod-mt7615e wpad-basic
268 endef
269 TARGET_DEVICES += elecom_wrc-1167ghbk2-s
270
271 define Device/elecom_wrc-1900gst
272   IMAGE_SIZE := 11264k
273   DEVICE_VENDOR := ELECOM
274   DEVICE_MODEL := WRC-1900GST
275   IMAGES += factory.bin
276   IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | \
277         elecom-gst-factory WRC-1900GST 0.00
278 endef
279 TARGET_DEVICES += elecom_wrc-1900gst
280
281 define Device/elecom_wrc-2533gst
282   IMAGE_SIZE := 11264k
283   DEVICE_VENDOR := ELECOM
284   DEVICE_MODEL := WRC-2533GST
285   IMAGES += factory.bin
286   IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | \
287         elecom-gst-factory WRC-2533GST 0.00
288 endef
289 TARGET_DEVICES += elecom_wrc-2533gst
290
291 define Device/firefly_firewrt
292   IMAGE_SIZE := 16064k
293   DEVICE_VENDOR := Firefly
294   DEVICE_MODEL := FireWRT
295   DEVICE_PACKAGES := kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
296   SUPPORTED_DEVICES += firewrt
297 endef
298 TARGET_DEVICES += firefly_firewrt
299
300 define Device/gehua_ghl-r-001
301   IMAGE_SIZE := 32448k
302   DEVICE_VENDOR := GeHua
303   DEVICE_MODEL := GHL-R-001
304   DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 kmod-usb3 \
305         kmod-usb-ledtrig-usbport wpad-basic
306   DEFAULT := n
307 endef
308 TARGET_DEVICES += gehua_ghl-r-001
309
310 define Device/gnubee_gb-pc1
311   DEVICE_VENDOR := GnuBee
312   DEVICE_MODEL := Personal Cloud One
313   DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-usb3 kmod-sdhci-mt7620
314   IMAGE_SIZE := 32448k
315 endef
316 TARGET_DEVICES += gnubee_gb-pc1
317
318 define Device/gnubee_gb-pc2
319   DEVICE_VENDOR := GnuBee
320   DEVICE_MODEL := Personal Cloud Two
321   DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-usb3 kmod-sdhci-mt7620
322   IMAGE_SIZE := 32448k
323 endef
324 TARGET_DEVICES += gnubee_gb-pc2
325
326 define Device/hiwifi_hc5962
327   BLOCKSIZE := 128k
328   PAGESIZE := 2048
329   KERNEL_SIZE := 2097152
330   UBINIZE_OPTS := -E 5
331   IMAGE_SIZE := 32768k
332   IMAGES += factory.bin
333   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
334   IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | append-ubi | \
335         check-size $$$$(IMAGE_SIZE)
336   DEVICE_VENDOR := HiWiFi
337   DEVICE_MODEL := HC5962
338   DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 kmod-usb3 wpad-basic
339   SUPPORTED_DEVICES += hc5962
340   # Kernel partition too small
341   DEFAULT := n
342 endef
343 TARGET_DEVICES += hiwifi_hc5962
344
345 define Device/iodata_wn-ax1167gr
346   IMAGE_SIZE := 15552k
347   KERNEL_INITRAMFS := $$(KERNEL) | \
348         iodata-factory 7864320 4 0x1055 $(KDIR)/tmp/$$(KERNEL_INITRAMFS_PREFIX)-factory.bin
349   DEVICE_VENDOR := I-O DATA
350   DEVICE_MODEL := WN-AX1167GR
351   DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 wpad-basic
352 endef
353 TARGET_DEVICES += iodata_wn-ax1167gr
354
355 define Device/iodata_wn-dx1167r
356   BLOCKSIZE := 128k
357   PAGESIZE := 2048
358   UBINIZE_OPTS := -E 5
359   UIMAGE_MAGIC := 0x434f4d43
360   KERNEL_SIZE := 4096k
361   IMAGE_SIZE := 51200k
362   DEVICE_VENDOR := I-O DATA
363   DEVICE_MODEL := WN-DX1167R
364   KERNEL_INITRAMFS := $(KERNEL_DTB) | custom-initramfs-uimage 3.10(XIK.1)b10 | \
365         iodata-mstc-header
366   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
367   DEVICE_PACKAGES := kmod-mt7615e wpad-basic
368 endef
369 TARGET_DEVICES += iodata_wn-dx1167r
370
371 define Device/iodata_wn-gx300gr
372   IMAGE_SIZE := 7616k
373   DEVICE_VENDOR := I-O DATA
374   DEVICE_MODEL := WN-GX300GR
375   DEVICE_PACKAGES := kmod-mt7603 wpad-basic
376 endef
377 TARGET_DEVICES += iodata_wn-gx300gr
378
379 define Device/iodata_wnpr2600g
380   DEVICE_VENDOR := I-O DATA
381   DEVICE_MODEL := WNPR2600G
382   IMAGE_SIZE := 13952k
383   IMAGES += factory.bin
384   IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | \
385         elx-header 0104003a 8844A2D168B45A2D
386   DEVICE_PACKAGES := kmod-mt7615e wpad-basic
387 endef
388 TARGET_DEVICES += iodata_wnpr2600g
389
390 define Device/iptime_a6ns-m
391   IMAGE_SIZE := 16128k
392   UIMAGE_NAME := a6nm
393   DEVICE_VENDOR := ipTIME
394   DEVICE_MODEL := A6ns-M
395   DEVICE_PACKAGES := kmod-mt7615e kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
396 endef
397 TARGET_DEVICES += iptime_a6ns-m
398
399 define Device/iptime_a8004t
400   IMAGE_SIZE := 16128k
401   UIMAGE_NAME := a8004t
402   DEVICE_VENDOR := ipTIME
403   DEVICE_MODEL := A8004T
404   DEVICE_PACKAGES := kmod-mt7615e kmod-usb3 wpad-basic
405 endef
406 TARGET_DEVICES += iptime_a8004t
407
408 define Device/jcg_jhr-ac876m
409   IMAGE_SIZE := 16064k
410   IMAGES += factory.bin
411   IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | \
412         jcg-header 89.1
413   JCG_MAXSIZE := 16064k
414   DEVICE_VENDOR := JCG
415   DEVICE_MODEL := JHR-AC876M
416   DEVICE_PACKAGES := kmod-mt7615e kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
417 endef
418 TARGET_DEVICES += jcg_jhr-ac876m
419
420 define Device/lenovo_newifi-d1
421   IMAGE_SIZE := 32448k
422   DEVICE_VENDOR := Newifi
423   DEVICE_MODEL := D1
424   DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-sdhci-mt7620 \
425         kmod-usb-ledtrig-usbport wpad-basic
426   SUPPORTED_DEVICES += newifi-d1
427 endef
428 TARGET_DEVICES += lenovo_newifi-d1
429
430 define Device/linksys_re6500
431   IMAGE_SIZE := 7872k
432   DEVICE_VENDOR := Linksys
433   DEVICE_MODEL := RE6500
434   DEVICE_PACKAGES := kmod-mt76x2 wpad-basic
435   SUPPORTED_DEVICES += re6500
436 endef
437 TARGET_DEVICES += linksys_re6500
438
439 define Device/mediatek_ap-mt7621a-v60
440   IMAGE_SIZE := 7872k
441   DEVICE_VENDOR := Mediatek
442   DEVICE_MODEL := AP-MT7621A-V60 EVB
443   DEVICE_PACKAGES := kmod-usb3 kmod-sdhci-mt7620 kmod-sound-mt7620
444 endef
445 TARGET_DEVICES += mediatek_ap-mt7621a-v60
446
447 define Device/mediatek_mt7621-eval-board
448   BLOCKSIZE := 64k
449   IMAGE_SIZE := 15104k
450   DEVICE_VENDOR := MediaTek
451   DEVICE_MODEL := MT7621 EVB
452   SUPPORTED_DEVICES += mt7621
453 endef
454 TARGET_DEVICES += mediatek_mt7621-eval-board
455
456 define Device/MikroTik
457   DEVICE_VENDOR := MikroTik
458   BLOCKSIZE := 64k
459   IMAGE_SIZE := 16128k
460   DEVICE_PACKAGES := kmod-usb3
461   LOADER_TYPE := elf
462   PLATFORM := mt7621
463   KERNEL := $(KERNEL_DTB) | loader-kernel
464   IMAGE/sysupgrade.bin := append-kernel | kernel2minor -s 1024 | \
465         pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | append-metadata | \
466         check-size $$$$(IMAGE_SIZE)
467 endef
468
469 define Device/mikrotik_rb750gr3
470   $(Device/MikroTik)
471   DEVICE_MODEL := RouterBOARD RB750G
472   DEVICE_VARIANT := r3
473   DEVICE_PACKAGES += kmod-gpio-beeper
474 endef
475 TARGET_DEVICES += mikrotik_rb750gr3
476
477 define Device/mikrotik_rbm11g
478   $(Device/MikroTik)
479   DEVICE_MODEL := RouterBOARD M11G
480 endef
481 TARGET_DEVICES += mikrotik_rbm11g
482
483 define Device/mikrotik_rbm33g
484   $(Device/MikroTik)
485   DEVICE_MODEL := RouterBOARD M33G
486 endef
487 TARGET_DEVICES += mikrotik_rbm33g
488
489 define Device/mqmaker_witi
490   IMAGE_SIZE := 16064k
491   DEVICE_VENDOR := MQmaker
492   DEVICE_MODEL := WiTi
493   DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-mt76x2 \
494         kmod-sdhci-mt7620 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
495   SUPPORTED_DEVICES += witi mqmaker,witi-256m mqmaker,witi-512m
496 endef
497 TARGET_DEVICES += mqmaker_witi
498
499 define Device/mtc_wr1201
500   IMAGE_SIZE := 16000k
501   DEVICE_VENDOR := MTC
502   DEVICE_MODEL := Wireless Router WR1201
503   KERNEL_INITRAMFS := $(KERNEL_DTB) | custom-initramfs-uimage WR1201_8_128
504   DEVICE_PACKAGES := kmod-sdhci-mt7620 kmod-mt76x2 kmod-usb3 \
505         kmod-usb-ledtrig-usbport wpad-basic
506 endef
507 TARGET_DEVICES += mtc_wr1201
508
509 define Device/netgear_ex6150
510   DEVICE_VENDOR := NETGEAR
511   DEVICE_MODEL := EX6150
512   DEVICE_PACKAGES := kmod-mt76x2 wpad-basic
513   NETGEAR_BOARD_ID := U12H318T00_NETGEAR
514   IMAGE_SIZE := 14848k
515   IMAGES += factory.chk
516   IMAGE/factory.chk := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | \
517         netgear-chk
518 endef
519 TARGET_DEVICES += netgear_ex6150
520
521 define Device/netgear_sercomm_nand
522   BLOCKSIZE := 128k
523   PAGESIZE := 2048
524   KERNEL_SIZE := 4096k
525   UBINIZE_OPTS := -E 5
526   IMAGES += factory.img kernel.bin rootfs.bin
527   IMAGE/factory.img := pad-extra 2048k | append-kernel | pad-to 6144k | \
528         append-ubi | pad-to $$$$(BLOCKSIZE) | sercom-footer | pad-to 128 | \
529         zip $$$$(SERCOMM_HWNAME).bin | sercom-seal
530   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
531   IMAGE/kernel.bin := append-kernel
532   IMAGE/rootfs.bin := append-ubi | check-size $$$$(IMAGE_SIZE)
533   DEVICE_VENDOR := NETGEAR
534   DEVICE_PACKAGES := kmod-mt7603 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
535 endef
536 DEVICE_VARS += SERCOMM_HWNAME SERCOMM_HWID SERCOMM_HWVER SERCOMM_SWVER
537
538 define Device/netgear_r6220
539   $(Device/netgear_sercomm_nand)
540   DEVICE_MODEL := R6220
541   SERCOMM_HWNAME := R6220
542   SERCOMM_HWID := AYA
543   SERCOMM_HWVER := A001
544   SERCOMM_SWVER := 0x0086
545   IMAGE_SIZE := 28672k
546   DEVICE_PACKAGES += kmod-mt76x2
547   SUPPORTED_DEVICES += r6220
548 endef
549 TARGET_DEVICES += netgear_r6220
550
551
552 define Device/netgear_r6260
553   $(Device/netgear_sercomm_nand)
554   DEVICE_MODEL := R6260
555   SERCOMM_HWNAME := R6260
556   SERCOMM_HWID := CHJ
557   SERCOMM_HWVER := A001
558   SERCOMM_SWVER := 0x0052
559   IMAGE_SIZE := 40960k
560   DEVICE_PACKAGES += kmod-mt7615e
561 endef
562 TARGET_DEVICES += netgear_r6260
563
564 define Device/netgear_r6350
565   $(Device/netgear_sercomm_nand)
566   DEVICE_MODEL := R6350
567   SERCOMM_HWNAME := R6350
568   SERCOMM_HWID := CHJ
569   SERCOMM_HWVER := A001
570   SERCOMM_SWVER := 0x0052
571   IMAGE_SIZE := 40960k
572   DEVICE_PACKAGES += kmod-mt7615e
573 endef
574 TARGET_DEVICES += netgear_r6350
575
576 define Device/netgear_r6850
577   $(Device/netgear_sercomm_nand)
578   DEVICE_MODEL := R6850
579   SERCOMM_HWNAME := R6850
580   SERCOMM_HWID := CHJ
581   SERCOMM_HWVER := A001
582   SERCOMM_SWVER := 0x0052
583   IMAGE_SIZE := 40960k
584   DEVICE_PACKAGES += kmod-mt7615e
585 endef
586 TARGET_DEVICES += netgear_r6850
587
588 define Device/netgear_wndr3700-v5
589   BLOCKSIZE := 64k
590   IMAGE_SIZE := 15232k
591   SERCOMM_HWID := AYB
592   SERCOMM_HWVER := A001
593   SERCOMM_SWVER := 0x1054
594   IMAGES += factory.img
595   IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | \
596         pad-rootfs
597   IMAGE/sysupgrade.bin := $$(IMAGE/default) | append-metadata | \
598         check-size $$$$(IMAGE_SIZE)
599   IMAGE/factory.img := pad-extra 320k | $$(IMAGE/default) | \
600         pad-to $$$$(BLOCKSIZE) | sercom-footer | pad-to 128 | \
601         zip WNDR3700v5.bin | sercom-seal
602   DEVICE_VENDOR := NETGEAR
603   DEVICE_MODEL := WNDR3700
604   DEVICE_VARIANT := v5
605   DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 kmod-usb3 \
606         kmod-usb-ledtrig-usbport wpad-basic
607   SUPPORTED_DEVICES += wndr3700v5
608 endef
609 TARGET_DEVICES += netgear_wndr3700-v5
610
611 define Device/netis_wf-2881
612   BLOCKSIZE := 128k
613   PAGESIZE := 2048
614   FILESYSTEMS := squashfs
615   IMAGE_SIZE := 129280k
616   KERNEL := $(KERNEL_DTB) | pad-offset $$(BLOCKSIZE) 64 | uImage lzma
617   UBINIZE_OPTS := -E 5
618   IMAGE/sysupgrade.bin := append-kernel | append-ubi | append-metadata | \
619         check-size $$$$(IMAGE_SIZE)
620   DEVICE_VENDOR := NETIS
621   DEVICE_MODEL := WF-2881
622   DEVICE_PACKAGES := kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
623   SUPPORTED_DEVICES += wf-2881
624 endef
625 TARGET_DEVICES += netis_wf-2881
626
627 define Device/phicomm_k2p
628   IMAGE_SIZE := 15744k
629   DEVICE_VENDOR := Phicomm
630   DEVICE_MODEL := K2P
631   DEVICE_ALT0_VENDOR := Phicomm
632   DEVICE_ALT0_MODEL := KE 2P
633   SUPPORTED_DEVICES += k2p
634   DEVICE_PACKAGES := kmod-mt7615e wpad-basic
635 endef
636 TARGET_DEVICES += phicomm_k2p
637
638 define Device/planex_vr500
639   IMAGE_SIZE := 65216k
640   DEVICE_VENDOR := Planex
641   DEVICE_MODEL := VR500
642   DEVICE_PACKAGES := kmod-usb3
643   SUPPORTED_DEVICES += vr500
644 endef
645 TARGET_DEVICES += planex_vr500
646
647 define Device/samknows_whitebox-v8
648   IMAGE_SIZE := 16064k
649   DEVICE_VENDOR := SamKnows
650   DEVICE_MODEL := Whitebox 8
651   DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 kmod-usb3 \
652         kmod-usb-ledtrig-usbport uboot-envtools wpad-basic
653   SUPPORTED_DEVICES += sk-wb8
654 endef
655 TARGET_DEVICES += samknows_whitebox-v8
656
657 define Device/storylink_sap-g3200u3
658   IMAGE_SIZE := 7872k
659   DEVICE_VENDOR := STORYLiNK
660   DEVICE_MODEL := SAP-G3200U3
661   DEVICE_PACKAGES := kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
662   SUPPORTED_DEVICES += sap-g3200u3
663 endef
664 TARGET_DEVICES += storylink_sap-g3200u3
665
666 define Device/telco-electronics_x1
667   IMAGE_SIZE := 16064k
668   DEVICE_VENDOR := Telco Electronics
669   DEVICE_MODEL := X1
670   DEVICE_PACKAGES := kmod-usb3 kmod-mt76 wpad-basic
671 endef
672 TARGET_DEVICES += telco-electronics_x1
673
674 define Device/thunder_timecloud
675   IMAGE_SIZE := 16064k
676   DEVICE_VENDOR := Thunder
677   DEVICE_MODEL := Timecloud
678   DEVICE_PACKAGES := kmod-usb3
679   SUPPORTED_DEVICES += timecloud
680 endef
681 TARGET_DEVICES += thunder_timecloud
682
683 define Device/totolink_a7000r
684   IMAGE_SIZE := 16064k
685   UIMAGE_NAME := C8340R1C-9999
686   DEVICE_VENDOR := TOTOLINK
687   DEVICE_MODEL := A7000R
688   DEVICE_PACKAGES := kmod-mt7615e wpad-basic
689 endef
690 TARGET_DEVICES += totolink_a7000r
691
692 define Device/adslr_g7
693   IMAGE_SIZE := 16064k
694   DEVICE_VENDOR := ADSLR
695   DEVICE_MODEL := G7
696   DEVICE_PACKAGES := kmod-mt7615e wpad-basic
697 endef
698 TARGET_DEVICES += adslr_g7
699
700 define Device/tplink_re350-v1
701   $(Device/tplink-safeloader)
702   DEVICE_MODEL := RE350
703   DEVICE_VARIANT := v1
704   DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 wpad-basic
705   TPLINK_BOARD_ID := RE350-V1
706   IMAGE_SIZE := 6016k
707   SUPPORTED_DEVICES += re350-v1
708 endef
709 TARGET_DEVICES += tplink_re350-v1
710
711 define Device/tplink_re650-v1
712   $(Device/tplink-safeloader)
713   DEVICE_MODEL := RE650
714   DEVICE_VARIANT := v1
715   DEVICE_PACKAGES := kmod-mt7615e wpad-basic
716   TPLINK_BOARD_ID := RE650-V1
717   IMAGE_SIZE := 14208k
718 endef
719 TARGET_DEVICES += tplink_re650-v1
720
721 define Device/ubiquiti_edgerouterx
722   IMAGE_SIZE := 256768k
723   FILESYSTEMS := squashfs
724   KERNEL_SIZE := 3145728
725   KERNEL_INITRAMFS := $$(KERNEL) | \
726         ubnt-erx-factory-image $(KDIR)/tmp/$$(KERNEL_INITRAMFS_PREFIX)-factory.tar
727   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
728   DEVICE_VENDOR := Ubiquiti
729   DEVICE_MODEL := EdgeRouter X
730   SUPPORTED_DEVICES += ubnt-erx
731 endef
732 TARGET_DEVICES += ubiquiti_edgerouterx
733
734 define Device/ubiquiti_edgerouterx-sfp
735   $(Device/ubiquiti_edgerouterx)
736   DEVICE_VENDOR := Ubiquiti
737   DEVICE_MODEL := EdgeRouter X-SFP
738   DEVICE_PACKAGES += kmod-i2c-algo-pca kmod-gpio-pca953x kmod-i2c-gpio-custom
739   SUPPORTED_DEVICES += ubnt-erx-sfp
740 endef
741 TARGET_DEVICES += ubiquiti_edgerouterx-sfp
742
743 define Device/unielec_u7621-06-16m
744   IMAGE_SIZE := 16064k
745   DEVICE_VENDOR := UniElec
746   DEVICE_MODEL := U7621-06
747   DEVICE_VARIANT := 16M
748   DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-sdhci-mt7620 kmod-usb3
749   SUPPORTED_DEVICES += u7621-06-256M-16M unielec,u7621-06-256m-16m
750 endef
751 TARGET_DEVICES += unielec_u7621-06-16m
752
753 define Device/unielec_u7621-06-64m
754   IMAGE_SIZE := 65216k
755   DEVICE_VENDOR := UniElec
756   DEVICE_MODEL := U7621-06
757   DEVICE_VARIANT := 64M
758   DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-sdhci-mt7620 kmod-usb3
759   SUPPORTED_DEVICES += unielec,u7621-06-512m-64m
760 endef
761 TARGET_DEVICES += unielec_u7621-06-64m
762
763 define Device/wevo_11acnas
764   IMAGE_SIZE := 16064k
765   UIMAGE_NAME := 11AC-NAS-Router(0.0.0)
766   DEVICE_VENDOR := WeVO
767   DEVICE_MODEL := 11AC NAS Router
768   DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 kmod-usb3 \
769         kmod-usb-ledtrig-usbport wpad-basic
770   SUPPORTED_DEVICES += 11acnas
771 endef
772 TARGET_DEVICES += wevo_11acnas
773
774 define Device/wevo_w2914ns-v2
775   IMAGE_SIZE := 16064k
776   UIMAGE_NAME := W2914NS-V2(0.0.0)
777   DEVICE_VENDOR := WeVO
778   DEVICE_MODEL := W2914NS
779   DEVICE_VARIANT := v2
780   DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 kmod-usb3 \
781         kmod-usb-ledtrig-usbport wpad-basic
782   SUPPORTED_DEVICES += w2914nsv2
783 endef
784 TARGET_DEVICES += wevo_w2914ns-v2
785
786 define Device/xiaomi_mir3g
787   BLOCKSIZE := 128k
788   PAGESIZE := 2048
789   KERNEL_SIZE := 4096k
790   IMAGE_SIZE := 124416k
791   UBINIZE_OPTS := -E 5
792   IMAGES += kernel1.bin rootfs0.bin
793   IMAGE/kernel1.bin := append-kernel
794   IMAGE/rootfs0.bin := append-ubi | check-size $$$$(IMAGE_SIZE)
795   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
796   DEVICE_VENDOR := Xiaomi
797   DEVICE_MODEL := Mi Router 3G
798   SUPPORTED_DEVICES += R3G
799   SUPPORTED_DEVICES += mir3g
800   DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 kmod-usb3 \
801         kmod-usb-ledtrig-usbport wpad-basic uboot-envtools
802 endef
803 TARGET_DEVICES += xiaomi_mir3g
804
805 define Device/xiaomi_mir3g-v2
806   IMAGE_SIZE := 14848k
807   DEVICE_VENDOR := Xiaomi
808   DEVICE_MODEL := Mi Router 3G
809   DEVICE_VARIANT := v2
810   DEVICE_ALT0_VENDOR := Xiaomi
811   DEVICE_ALT0_MODEL := Mi Router 4A
812   DEVICE_ALT0_VARIANT := Gigabit Edition
813   DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 wpad-basic
814 endef
815 TARGET_DEVICES += xiaomi_mir3g-v2
816
817 define Device/xiaomi_mir3p
818   BLOCKSIZE := 128k
819   PAGESIZE := 2048
820   KERNEL_SIZE:= 4096k
821   UBINIZE_OPTS := -E 5
822   IMAGE_SIZE := 255488k
823   DEVICE_VENDOR := Xiaomi
824   DEVICE_MODEL := Mi Router 3 Pro
825   IMAGES += factory.bin
826   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
827   IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | append-ubi | \
828         check-size $$$$(IMAGE_SIZE)
829   DEVICE_PACKAGES := kmod-mt7615e kmod-usb3 kmod-usb-ledtrig-usbport \
830         wpad-basic uboot-envtools
831 endef
832 TARGET_DEVICES += xiaomi_mir3p
833
834 define Device/xiaoyu_xy-c5
835   IMAGE_SIZE := 32448k
836   DEVICE_VENDOR := XiaoYu
837   DEVICE_MODEL := XY-C5
838   DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-usb3
839 endef
840 TARGET_DEVICES += xiaoyu_xy-c5
841
842 define Device/xzwifi_creativebox-v1
843   IMAGE_SIZE := 32448k
844   DEVICE_VENDOR := CreativeBox
845   DEVICE_MODEL := v1
846   DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-mt7603 kmod-mt76x2 \
847         kmod-sdhci-mt7620 kmod-usb3
848 endef
849 TARGET_DEVICES += xzwifi_creativebox-v1
850
851 define Device/youhua_wr1200js
852   IMAGE_SIZE := 16064k
853   DEVICE_VENDOR := YouHua
854   DEVICE_MODEL := WR1200JS
855   DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 kmod-usb3 \
856         kmod-usb-ledtrig-usbport wpad-basic
857 endef
858 TARGET_DEVICES += youhua_wr1200js
859
860 define Device/youku_yk-l2
861   IMAGE_SIZE := 16064k
862   DEVICE_VENDOR := Youku
863   DEVICE_MODEL := YK-L2
864   DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 kmod-usb3 \
865         kmod-usb-ledtrig-usbport wpad-basic
866 endef
867 TARGET_DEVICES += youku_yk-l2
868
869 define Device/zbtlink_zbt-we1326
870   IMAGE_SIZE := 16064k
871   DEVICE_VENDOR := Zbtlink
872   DEVICE_MODEL := ZBT-WE1326
873   DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-sdhci-mt7620 \
874         wpad-basic
875   SUPPORTED_DEVICES += zbt-we1326
876 endef
877 TARGET_DEVICES += zbtlink_zbt-we1326
878
879 define Device/zbtlink_zbt-we3526
880   IMAGE_SIZE := 16064k
881   DEVICE_VENDOR := Zbtlink
882   DEVICE_MODEL := ZBT-WE3526
883   DEVICE_PACKAGES := kmod-sdhci-mt7620 kmod-mt7603 kmod-mt76x2 kmod-usb3 \
884         kmod-usb-ledtrig-usbport wpad-basic
885 endef
886 TARGET_DEVICES += zbtlink_zbt-we3526
887
888 define Device/zbtlink_zbt-wg2626
889   IMAGE_SIZE := 16064k
890   DEVICE_VENDOR := Zbtlink
891   DEVICE_MODEL := ZBT-WG2626
892   DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-sdhci-mt7620 \
893         kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
894   SUPPORTED_DEVICES += zbt-wg2626
895 endef
896 TARGET_DEVICES += zbtlink_zbt-wg2626
897
898 define Device/zbtlink_zbt-wg3526-16m
899   IMAGE_SIZE := 16064k
900   DEVICE_VENDOR := Zbtlink
901   DEVICE_MODEL := ZBT-WG3526
902   DEVICE_VARIANT := 16M
903   DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-sdhci-mt7620 \
904         kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
905   SUPPORTED_DEVICES += zbt-wg3526 zbt-wg3526-16M
906 endef
907 TARGET_DEVICES += zbtlink_zbt-wg3526-16m
908
909 define Device/zbtlink_zbt-wg3526-32m
910   IMAGE_SIZE := 32448k
911   DEVICE_VENDOR := Zbtlink
912   DEVICE_MODEL := ZBT-WG3526
913   DEVICE_VARIANT := 32M
914   DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-sdhci-mt7620 \
915         kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
916   SUPPORTED_DEVICES += ac1200pro zbt-wg3526-32M
917 endef
918 TARGET_DEVICES += zbtlink_zbt-wg3526-32m
919
920 define Device/zio_freezio
921   IMAGE_SIZE := 16064k
922   DEVICE_VENDOR := ZIO
923   DEVICE_MODEL := FREEZIO
924   DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 kmod-usb3 \
925         kmod-usb-ledtrig-usbport wpad-basic
926 endef
927 TARGET_DEVICES += zio_freezio