6 DEVICE_VARS += TPLINK_BOARD_ID TPLINK_HEADER_VERSION TPLINK_HWID TPLINK_HWREV
8 define Build/elecom-gst-factory
9 $(eval product=$(word 1,$(1)))
10 $(eval version=$(word 2,$(1)))
11 ( $(STAGING_DIR_HOST)/bin/mkhash md5 $@ | tr -d '\n' ) >> $@
13 echo -n "ELECOM $(product) v$(version)" | \
14 dd bs=32 count=1 conv=sync; \
18 echo -n "MT7621_ELECOM_$(product)" >> $@
21 define Build/elecom-wrc-factory
22 $(eval product=$(word 1,$(1)))
23 $(eval version=$(word 2,$(1)))
24 $(STAGING_DIR_HOST)/bin/mkhash md5 $@ >> $@
26 echo -n "ELECOM $(product) v$(version)" | \
27 dd bs=32 count=1 conv=sync; \
33 define Build/iodata-factory
34 $(eval fw_size=$(word 1,$(1)))
35 $(eval fw_type=$(word 2,$(1)))
36 $(eval product=$(word 3,$(1)))
37 $(eval factory_bin=$(word 4,$(1)))
38 if [ -e $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) -a "$$(stat -c%s $@)" -lt "$(fw_size)" ]; then \
39 $(CP) $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) $(factory_bin); \
40 $(STAGING_DIR_HOST)/bin/mksenaofw \
41 -r 0x30a -p $(product) -t $(fw_type) \
42 -e $(factory_bin) -o $(factory_bin).new; \
43 mv $(factory_bin).new $(factory_bin); \
44 $(CP) $(factory_bin) $(BIN_DIR)/; \
46 echo "WARNING: initramfs kernel image too big, cannot generate factory image" >&2; \
50 # The OEM webinterface expects an kernel with initramfs which has the uImage
51 # header field ih_name.
52 # We don't wan't to set the header name field for the kernel include in the
53 # sysupgrade image as well, as this image shouldn't be accepted by the OEM
54 # webinterface. It will soft-brick the board.
55 define Build/wr1201-factory-header
56 mkimage -A $(LINUX_KARCH) \
58 -C lzma -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
59 -n 'WR1201_8_128' -d $@ $@.new
63 define Build/ubnt-erx-factory-image
64 if [ -e $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) -a "$$(stat -c%s $@)" -lt "$(KERNEL_SIZE)" ]; then \
65 echo '21001:6' > $(1).compat; \
66 $(TAR) -cf $(1) --transform='s/^.*/compat/' $(1).compat; \
68 $(TAR) -rf $(1) --transform='s/^.*/vmlinux.tmp/' $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE); \
69 mkhash md5 $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) > $(1).md5; \
70 $(TAR) -rf $(1) --transform='s/^.*/vmlinux.tmp.md5/' $(1).md5; \
72 echo "dummy" > $(1).rootfs; \
73 $(TAR) -rf $(1) --transform='s/^.*/squashfs.tmp/' $(1).rootfs; \
75 mkhash md5 $(1).rootfs > $(1).md5; \
76 $(TAR) -rf $(1) --transform='s/^.*/squashfs.tmp.md5/' $(1).md5; \
78 echo '$(BOARD) $(VERSION_CODE) $(VERSION_NUMBER)' > $(1).version; \
79 $(TAR) -rf $(1) --transform='s/^.*/version.tmp/' $(1).version; \
81 $(CP) $(1) $(BIN_DIR)/; \
83 echo "WARNING: initramfs kernel image too big, cannot generate factory image" >&2; \
89 IMAGE_SIZE := $(ralink_default_fw_size_16M)
90 DEVICE_TITLE := WeVO 11AC NAS Router
91 DEVICE_PACKAGES := kmod-mt7603 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
93 TARGET_DEVICES += 11acnas
95 define Device/dir-860l-b1
99 KERNEL := kernel-bin | patch-dtb | relocate-kernel | lzma | uImage lzma
100 IMAGE_SIZE := $(ralink_default_fw_size_16M)
101 IMAGE/sysupgrade.bin := \
102 append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-rootfs | \
103 seama -m "dev=/dev/mtdblock/2" -m "type=firmware" | \
104 pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
105 IMAGE/factory.bin := \
106 append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | \
107 append-rootfs | pad-rootfs -x 64 | \
108 seama -m "dev=/dev/mtdblock/2" -m "type=firmware" | \
109 seama-seal -m "signature=wrgac13_dlink.2013gui_dir860lb" | \
110 check-size $$$$(IMAGE_SIZE)
111 DEVICE_TITLE := D-Link DIR-860L B1
112 DEVICE_PACKAGES := kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
114 TARGET_DEVICES += dir-860l-b1
116 define Device/mediatek_ap-mt7621a-v60
117 DTS := AP-MT7621A-V60
118 IMAGE_SIZE := $(ralink_default_fw_size_8M)
119 DEVICE_TITLE := Mediatek AP-MT7621A-V60 EVB
120 DEVICE_PACKAGES := kmod-usb3 kmod-sdhci-mt7620 kmod-sound-mt7620
122 TARGET_DEVICES += mediatek_ap-mt7621a-v60
124 define Device/xzwifi_creativebox-v1
125 DTS := CreativeBox-v1
126 IMAGE_SIZE := $(ralink_default_fw_size_32M)
127 DEVICE_TITLE := CreativeBox v1
129 kmod-ata-core kmod-ata-ahci kmod-mt7603 kmod-mt76x2 kmod-sdhci-mt7620 \
132 TARGET_DEVICES += xzwifi_creativebox-v1
134 define Device/elecom_wrc-1167ghbk2-s
135 DTS := WRC-1167GHBK2-S
137 DEVICE_TITLE := ELECOM WRC-1167GHBK2-S
138 IMAGES += factory.bin
139 IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) |\
140 elecom-wrc-factory WRC-1167GHBK2-S 0.00
142 TARGET_DEVICES += elecom_wrc-1167ghbk2-s
144 define Device/elecom_wrc-2533gst
147 DEVICE_TITLE := ELECOM WRC-2533GST
148 IMAGES += factory.bin
149 IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) |\
150 elecom-gst-factory WRC-2533GST 0.00
152 TARGET_DEVICES += elecom_wrc-2533gst
154 define Device/elecom_wrc-1900gst
157 DEVICE_TITLE := ELECOM WRC-1900GST
158 IMAGES += factory.bin
159 IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) |\
160 elecom-gst-factory WRC-1900GST 0.00
162 TARGET_DEVICES += elecom_wrc-1900gst
166 IMAGE_SIZE := $(ralink_default_fw_size_16M)
167 DEVICE_TITLE := AFOUNDRY EW1200
169 kmod-ata-core kmod-ata-ahci kmod-mt76x2 kmod-mt7603 kmod-usb3 \
170 kmod-usb-ledtrig-usbport wpad-basic
172 TARGET_DEVICES += ew1200
174 define Device/firewrt
176 IMAGE_SIZE := $(ralink_default_fw_size_16M)
177 DEVICE_TITLE := Firefly FireWRT
178 DEVICE_PACKAGES := kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
180 TARGET_DEVICES += firewrt
182 define Device/gehua_ghl-r-001
184 IMAGE_SIZE := $(ralink_default_fw_size_32M)
185 DEVICE_TITLE := GeHua GHL-R-001
187 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
189 TARGET_DEVICES += gehua_ghl-r-001
191 define Device/gnubee_gb-pc1
193 DEVICE_TITLE := GnuBee Personal Cloud One
194 DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-usb3 kmod-sdhci-mt7620
195 IMAGE_SIZE := $(ralink_default_fw_size_32M)
197 TARGET_DEVICES += gnubee_gb-pc1
199 define Device/gnubee_gb-pc2
201 DEVICE_TITLE := GnuBee Personal Cloud Two
202 DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-usb3 kmod-sdhci-mt7620
203 IMAGE_SIZE := $(ralink_default_fw_size_32M)
205 TARGET_DEVICES += gnubee_gb-pc2
211 KERNEL_SIZE := 2097152
213 IMAGE_SIZE := $(ralink_default_fw_size_32M)
214 IMAGES += factory.bin
215 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
216 IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | append-ubi | check-size $$$$(IMAGE_SIZE)
217 DEVICE_TITLE := HiWiFi HC5962
218 DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 kmod-usb3 wpad-basic
220 TARGET_DEVICES += hc5962
222 define Device/iodata_wn-ax1167gr
225 KERNEL_INITRAMFS := $$(KERNEL) | \
226 iodata-factory 7864320 4 0x1055 $(KDIR)/tmp/$$(KERNEL_INITRAMFS_PREFIX)-factory.bin
227 DEVICE_TITLE := I-O DATA WN-AX1167GR
228 DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 wpad-basic
230 TARGET_DEVICES += iodata_wn-ax1167gr
232 define Device/iodata_wn-gx300gr
234 IMAGE_SIZE := 7798784
235 DEVICE_TITLE := I-O DATA WN-GX300GR
236 DEVICE_PACKAGES := kmod-mt7603 wpad-basic
238 TARGET_DEVICES += iodata_wn-gx300gr
242 IMAGE_SIZE := $(ralink_default_fw_size_16M)
243 DEVICE_TITLE := Phicomm K2P
245 TARGET_DEVICES += k2p
254 IMAGES += kernel1.bin rootfs0.bin
255 IMAGE/kernel1.bin := append-kernel
256 IMAGE/rootfs0.bin := append-ubi | check-size $$$$(IMAGE_SIZE)
257 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
258 DEVICE_TITLE := Xiaomi Mi Router 3G
259 SUPPORTED_DEVICES += R3G
261 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic \
264 TARGET_DEVICES += mir3g
269 IMAGE_SIZE := $(ralink_default_fw_size_4M)
270 DEVICE_TITLE := MediaTek MT7621 EVB
272 TARGET_DEVICES += mt7621
274 define Device/newifi-d1
276 IMAGE_SIZE := $(ralink_default_fw_size_32M)
277 DEVICE_TITLE := Newifi D1
279 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
281 TARGET_DEVICES += newifi-d1
283 define Device/d-team_newifi-d2
285 IMAGE_SIZE := $(ralink_default_fw_size_32M)
286 DEVICE_TITLE := Newifi D2
288 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
290 TARGET_DEVICES += d-team_newifi-d2
294 IMAGE_SIZE := $(ralink_default_fw_size_16M)
295 DEVICE_TITLE := PBR-M1
297 kmod-ata-core kmod-ata-ahci kmod-mt7603 kmod-mt76x2 kmod-sdhci-mt7620 \
298 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
300 TARGET_DEVICES += pbr-m1
309 IMAGES += kernel.bin rootfs.bin
310 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
311 IMAGE/kernel.bin := append-kernel
312 IMAGE/rootfs.bin := append-ubi | check-size $$$$(IMAGE_SIZE)
313 DEVICE_TITLE := Netgear R6220
315 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
317 TARGET_DEVICES += r6220
319 define Device/netgear_r6350
326 IMAGES += kernel.bin rootfs.bin
327 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
328 IMAGE/kernel.bin := append-kernel
329 IMAGE/rootfs.bin := append-ubi | check-size $$$$(IMAGE_SIZE)
330 DEVICE_TITLE := Netgear R6350
332 kmod-mt7603 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
334 TARGET_DEVICES += netgear_r6350
336 define Device/rb750gr3
338 IMAGE_SIZE := $(ralink_default_fw_size_16M)
339 DEVICE_TITLE := MikroTik RB750Gr3
340 DEVICE_PACKAGES := kmod-usb3 uboot-envtools
342 TARGET_DEVICES += rb750gr3
344 define Device/MikroTik
347 DEVICE_PACKAGES := kmod-usb3
350 KERNEL := $(KERNEL_DTB) | loader-kernel
351 IMAGE/sysupgrade.bin := append-kernel | kernel2minor -s 1024 | pad-to $$$$(BLOCKSIZE) | \
352 append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
355 define Device/mikrotik_rbm33g
358 DEVICE_TITLE := MikroTik RouterBOARD M33G
360 TARGET_DEVICES += mikrotik_rbm33g
362 define Device/mikrotik_rbm11g
365 DEVICE_TITLE := MikroTik RouterBOARD M11G
367 TARGET_DEVICES += mikrotik_rbm11g
369 define Device/mtc_wr1201
372 DEVICE_TITLE := MTC Wireless Router WR1201
373 KERNEL_INITRAMFS := $(KERNEL_DTB) | wr1201-factory-header
374 DEVICE_PACKAGES := kmod-sdhci-mt7620 kmod-mt76x2 kmod-usb3 \
375 kmod-usb-ledtrig-usbport wpad-basic
377 TARGET_DEVICES += mtc_wr1201
379 define Device/re350-v1
381 DEVICE_TITLE := TP-LINK RE350 v1
382 DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 wpad-basic
383 TPLINK_BOARD_ID := RE350-V1
386 TPLINK_HEADER_VERSION := 1
388 KERNEL := $(KERNEL_DTB) | tplink-v1-header -e -O
389 IMAGES += factory.bin
390 IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade | append-metadata | check-size $$$$(IMAGE_SIZE)
391 IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
393 TARGET_DEVICES += re350-v1
397 DEVICE_TITLE := Linksys RE6500
398 DEVICE_PACKAGES := kmod-mt76x2 wpad-basic
400 TARGET_DEVICES += re6500
402 define Device/sap-g3200u3
404 DEVICE_TITLE := STORYLiNK SAP-G3200U3
405 DEVICE_PACKAGES := kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
407 TARGET_DEVICES += sap-g3200u3
411 IMAGE_SIZE := $(ralink_default_fw_size_16M)
412 DEVICE_TITLE := SamKnows Whitebox 8
414 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport \
415 uboot-envtools wpad-basic
417 TARGET_DEVICES += sk-wb8
419 define Device/timecloud
421 DEVICE_TITLE := Thunder Timecloud
422 DEVICE_PACKAGES := kmod-usb3
424 TARGET_DEVICES += timecloud
426 define Device/ubnt-erx
428 FILESYSTEMS := squashfs
429 KERNEL_SIZE := 3145728
430 KERNEL_INITRAMFS := $$(KERNEL) | ubnt-erx-factory-image $(KDIR)/tmp/$$(KERNEL_INITRAMFS_PREFIX)-factory.tar
431 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
432 DEVICE_TITLE := Ubiquiti EdgeRouter X
434 TARGET_DEVICES += ubnt-erx
436 define Device/ubnt-erx-sfp
439 DEVICE_TITLE := Ubiquiti EdgeRouter X-SFP
440 DEVICE_PACKAGES += kmod-i2c-algo-pca kmod-gpio-pca953x kmod-i2c-gpio-custom
442 TARGET_DEVICES += ubnt-erx-sfp
444 define Device/unielec_u7621-06-256m-16m
445 DTS := U7621-06-256M-16M
447 DEVICE_TITLE := UniElec U7621-06 (256M RAM/16M flash)
448 DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-sdhci-mt7620 kmod-usb3
449 SUPPORTED_DEVICES += u7621-06-256M-16M
451 TARGET_DEVICES += unielec_u7621-06-256m-16m
453 define Device/unielec_u7621-06-512m-64m
454 DTS := U7621-06-512M-64M
456 DEVICE_TITLE := UniElec U7621-06 (512M RAM/64M flash)
457 DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-sdhci-mt7620 kmod-usb3
459 TARGET_DEVICES += unielec_u7621-06-512m-64m
463 IMAGE_SIZE := 66453504
464 DEVICE_TITLE := Planex VR500
465 DEVICE_PACKAGES := kmod-usb3
467 TARGET_DEVICES += vr500
469 define Device/w2914nsv2
471 IMAGE_SIZE := $(ralink_default_fw_size_16M)
472 DEVICE_TITLE := WeVO W2914NS v2
474 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
476 TARGET_DEVICES += w2914nsv2
478 define Device/wf-2881
482 FILESYSTEMS := squashfs
483 IMAGE_SIZE := 129280k
484 KERNEL := $(KERNEL_DTB) | pad-offset $$(BLOCKSIZE) 64 | uImage lzma
486 IMAGE/sysupgrade.bin := append-kernel | append-ubi | append-metadata | check-size $$$$(IMAGE_SIZE)
487 DEVICE_TITLE := NETIS WF-2881
488 DEVICE_PACKAGES := kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
490 TARGET_DEVICES += wf-2881
492 define Device/mqmaker_witi-256m
494 IMAGE_SIZE := $(ralink_default_fw_size_16M)
495 DEVICE_TITLE := MQmaker WiTi (256MB RAM)
497 kmod-ata-core kmod-ata-ahci kmod-mt76x2 kmod-sdhci-mt7620 kmod-usb3 \
498 kmod-usb-ledtrig-usbport wpad-basic
499 SUPPORTED_DEVICES += witi
501 TARGET_DEVICES += mqmaker_witi-256m
503 define Device/mqmaker_witi-512m
505 IMAGE_SIZE := $(ralink_default_fw_size_16M)
506 DEVICE_TITLE := MQmaker WiTi (512MB RAM)
508 kmod-ata-core kmod-ata-ahci kmod-mt76x2 kmod-sdhci-mt7620 kmod-usb3 \
509 kmod-usb-ledtrig-usbport wpad-basic
511 TARGET_DEVICES += mqmaker_witi-512m
513 define Device/wndr3700v5
515 IMAGE_SIZE := $(ralink_default_fw_size_16M)
516 DEVICE_TITLE := Netgear WNDR3700v5
517 DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 kmod-usb3 wpad-basic
519 TARGET_DEVICES += wndr3700v5
521 define Device/youhua_wr1200js
524 DEVICE_TITLE := YouHua WR1200JS
526 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
528 TARGET_DEVICES += youhua_wr1200js
530 define Device/wsr-1166
532 IMAGE/sysupgrade.bin := trx | pad-rootfs | append-metadata
533 IMAGE_SIZE := $(ralink_default_fw_size_16M)
534 DEVICE_TITLE := Buffalo WSR-1166
535 DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 wpad-basic
537 TARGET_DEVICES += wsr-1166
539 define Device/wsr-600
541 IMAGE_SIZE := $(ralink_default_fw_size_16M)
542 DEVICE_TITLE := Buffalo WSR-600
543 DEVICE_PACKAGES := kmod-mt7603 kmod-rt2800-pci wpad-basic
545 TARGET_DEVICES += wsr-600
547 define Device/zbt-we1326
549 IMAGE_SIZE := $(ralink_default_fw_size_16M)
550 DEVICE_TITLE := ZBT WE1326
552 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-sdhci-mt7620 wpad-basic
554 TARGET_DEVICES += zbt-we1326
556 define Device/zbtlink_zbt-we3526
558 IMAGE_SIZE := $(ralink_default_fw_size_16M)
559 DEVICE_TITLE := ZBT WE3526
561 kmod-sdhci-mt7620 kmod-mt7603 kmod-mt76x2 \
562 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
564 TARGET_DEVICES += zbtlink_zbt-we3526
566 define Device/zbt-wg2626
568 IMAGE_SIZE := $(ralink_default_fw_size_16M)
569 DEVICE_TITLE := ZBT WG2626
571 kmod-ata-core kmod-ata-ahci kmod-sdhci-mt7620 kmod-mt76x2 kmod-usb3 \
572 kmod-usb-ledtrig-usbport wpad-basic
574 TARGET_DEVICES += zbt-wg2626
576 define Device/zbt-wg3526-16M
577 DTS := ZBT-WG3526-16M
578 IMAGE_SIZE := $(ralink_default_fw_size_16M)
579 SUPPORTED_DEVICES += zbt-wg3526
580 DEVICE_TITLE := ZBT WG3526 (16MB flash)
582 kmod-ata-core kmod-ata-ahci kmod-sdhci-mt7620 kmod-mt7603 kmod-mt76x2 \
583 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
585 TARGET_DEVICES += zbt-wg3526-16M
587 define Device/zbt-wg3526-32M
588 DTS := ZBT-WG3526-32M
589 IMAGE_SIZE := $(ralink_default_fw_size_32M)
590 SUPPORTED_DEVICES += ac1200pro
591 DEVICE_TITLE := ZBT WG3526 (32MB flash)
593 kmod-ata-core kmod-ata-ahci kmod-sdhci-mt7620 kmod-mt7603 kmod-mt76x2 \
594 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
596 TARGET_DEVICES += zbt-wg3526-32M