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-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
93 TARGET_DEVICES += 11acnas
95 define Device/dir-860l-b1
99 SEAMA_SIGNATURE := wrgac13_dlink.2013gui_dir860lb
100 KERNEL := kernel-bin | patch-dtb | relocate-kernel | lzma | uImage lzma
101 IMAGE_SIZE := $(ralink_default_fw_size_16M)
102 DEVICE_TITLE := D-Link DIR-860L B1
103 DEVICE_PACKAGES := kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
105 TARGET_DEVICES += dir-860l-b1
107 define Device/mediatek_ap-mt7621a-v60
108 DTS := AP-MT7621A-V60
109 IMAGE_SIZE := $(ralink_default_fw_size_8M)
110 DEVICE_TITLE := Mediatek AP-MT7621A-V60 EVB
111 DEVICE_PACKAGES := kmod-usb3 kmod-sdhci-mt7620 kmod-sound-mt7620
113 TARGET_DEVICES += mediatek_ap-mt7621a-v60
115 define Device/xzwifi_creativebox-v1
116 DTS := CreativeBox-v1
117 IMAGE_SIZE := $(ralink_default_fw_size_32M)
118 DEVICE_TITLE := CreativeBox v1
120 kmod-ata-core kmod-ata-ahci kmod-mt7603 kmod-mt76x2 kmod-sdhci-mt7620 \
123 TARGET_DEVICES += xzwifi_creativebox-v1
125 define Device/elecom_wrc-1167ghbk2-s
126 DTS := WRC-1167GHBK2-S
128 DEVICE_TITLE := ELECOM WRC-1167GHBK2-S
129 IMAGES += factory.bin
130 IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) |\
131 elecom-wrc-factory WRC-1167GHBK2-S 0.00
133 TARGET_DEVICES += elecom_wrc-1167ghbk2-s
135 define Device/elecom_wrc-2533gst
138 DEVICE_TITLE := ELECOM WRC-2533GST
139 IMAGES += factory.bin
140 IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) |\
141 elecom-gst-factory WRC-2533GST 0.00
143 TARGET_DEVICES += elecom_wrc-2533gst
145 define Device/elecom_wrc-1900gst
148 DEVICE_TITLE := ELECOM WRC-1900GST
149 IMAGES += factory.bin
150 IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) |\
151 elecom-gst-factory WRC-1900GST 0.00
153 TARGET_DEVICES += elecom_wrc-1900gst
157 IMAGE_SIZE := $(ralink_default_fw_size_16M)
158 DEVICE_TITLE := AFOUNDRY EW1200
160 kmod-ata-core kmod-ata-ahci kmod-mt76x2 kmod-mt7603 kmod-usb3 \
161 kmod-usb-ledtrig-usbport wpad-basic
163 TARGET_DEVICES += ew1200
165 define Device/firewrt
167 IMAGE_SIZE := $(ralink_default_fw_size_16M)
168 DEVICE_TITLE := Firefly FireWRT
169 DEVICE_PACKAGES := kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
171 TARGET_DEVICES += firewrt
173 define Device/gehua_ghl-r-001
175 IMAGE_SIZE := $(ralink_default_fw_size_32M)
176 DEVICE_TITLE := GeHua GHL-R-001
178 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
180 TARGET_DEVICES += gehua_ghl-r-001
182 define Device/gnubee_gb-pc1
184 DEVICE_TITLE := GnuBee Personal Cloud One
185 DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-usb3 kmod-sdhci-mt7620
186 IMAGE_SIZE := $(ralink_default_fw_size_32M)
188 TARGET_DEVICES += gnubee_gb-pc1
190 define Device/gnubee_gb-pc2
192 DEVICE_TITLE := GnuBee Personal Cloud Two
193 DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-usb3 kmod-sdhci-mt7620
194 IMAGE_SIZE := $(ralink_default_fw_size_32M)
196 TARGET_DEVICES += gnubee_gb-pc2
202 KERNEL_SIZE := 2097152
204 IMAGE_SIZE := $(ralink_default_fw_size_32M)
205 IMAGES += factory.bin
206 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
207 IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | append-ubi | check-size $$$$(IMAGE_SIZE)
208 DEVICE_TITLE := HiWiFi HC5962
209 DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 kmod-usb3 wpad-basic
211 TARGET_DEVICES += hc5962
213 define Device/iodata_wn-ax1167gr
216 KERNEL_INITRAMFS := $$(KERNEL) | \
217 iodata-factory 7864320 4 0x1055 $(KDIR)/tmp/$$(KERNEL_INITRAMFS_PREFIX)-factory.bin
218 DEVICE_TITLE := I-O DATA WN-AX1167GR
219 DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 wpad-basic
221 TARGET_DEVICES += iodata_wn-ax1167gr
223 define Device/iodata_wn-gx300gr
225 IMAGE_SIZE := 7798784
226 DEVICE_TITLE := I-O DATA WN-GX300GR
227 DEVICE_PACKAGES := kmod-mt7603 wpad-basic
229 TARGET_DEVICES += iodata_wn-gx300gr
233 IMAGE_SIZE := $(ralink_default_fw_size_16M)
234 DEVICE_TITLE := Phicomm K2P
236 TARGET_DEVICES += k2p
245 IMAGES += kernel1.bin rootfs0.bin
246 IMAGE/kernel1.bin := append-kernel
247 IMAGE/rootfs0.bin := append-ubi | check-size $$$$(IMAGE_SIZE)
248 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
249 DEVICE_TITLE := Xiaomi Mi Router 3G
250 SUPPORTED_DEVICES += R3G
252 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic \
255 TARGET_DEVICES += mir3g
260 IMAGE_SIZE := $(ralink_default_fw_size_4M)
261 DEVICE_TITLE := MediaTek MT7621 EVB
263 TARGET_DEVICES += mt7621
265 define Device/newifi-d1
267 IMAGE_SIZE := $(ralink_default_fw_size_32M)
268 DEVICE_TITLE := Newifi D1
270 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
272 TARGET_DEVICES += newifi-d1
274 define Device/d-team_newifi-d2
276 IMAGE_SIZE := $(ralink_default_fw_size_32M)
277 DEVICE_TITLE := Newifi D2
279 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
281 TARGET_DEVICES += d-team_newifi-d2
285 IMAGE_SIZE := $(ralink_default_fw_size_16M)
286 DEVICE_TITLE := PBR-M1
288 kmod-ata-core kmod-ata-ahci kmod-mt7603 kmod-mt76x2 kmod-sdhci-mt7620 \
289 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
291 TARGET_DEVICES += pbr-m1
300 IMAGES += kernel.bin rootfs.bin
301 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
302 IMAGE/kernel.bin := append-kernel
303 IMAGE/rootfs.bin := append-ubi | check-size $$$$(IMAGE_SIZE)
304 DEVICE_TITLE := Netgear R6220
306 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
308 TARGET_DEVICES += r6220
310 define Device/netgear_r6350
317 IMAGES += kernel.bin rootfs.bin
318 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
319 IMAGE/kernel.bin := append-kernel
320 IMAGE/rootfs.bin := append-ubi | check-size $$$$(IMAGE_SIZE)
321 DEVICE_TITLE := Netgear R6350
323 kmod-mt7603 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
325 TARGET_DEVICES += netgear_r6350
327 define Device/MikroTik
330 DEVICE_PACKAGES := kmod-usb3
333 KERNEL := $(KERNEL_DTB) | loader-kernel
334 IMAGE/sysupgrade.bin := append-kernel | kernel2minor -s 1024 | pad-to $$$$(BLOCKSIZE) | \
335 append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
338 define Device/mikrotik_rb750gr3
341 DEVICE_TITLE := MikroTik RouterBOARD RB750Gr3
342 DEVICE_PACKAGES += kmod-gpio-beeper
344 TARGET_DEVICES += mikrotik_rb750gr3
346 define Device/mikrotik_rbm33g
349 DEVICE_TITLE := MikroTik RouterBOARD M33G
351 TARGET_DEVICES += mikrotik_rbm33g
353 define Device/mikrotik_rbm11g
356 DEVICE_TITLE := MikroTik RouterBOARD M11G
358 TARGET_DEVICES += mikrotik_rbm11g
360 define Device/mtc_wr1201
363 DEVICE_TITLE := MTC Wireless Router WR1201
364 KERNEL_INITRAMFS := $(KERNEL_DTB) | wr1201-factory-header
365 DEVICE_PACKAGES := kmod-sdhci-mt7620 kmod-mt76x2 kmod-usb3 \
366 kmod-usb-ledtrig-usbport wpad-basic
368 TARGET_DEVICES += mtc_wr1201
370 define Device/re350-v1
372 DEVICE_TITLE := TP-LINK RE350 v1
373 DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 wpad-basic
374 TPLINK_BOARD_ID := RE350-V1
377 TPLINK_HEADER_VERSION := 1
379 KERNEL := $(KERNEL_DTB) | tplink-v1-header -e -O
380 IMAGES += factory.bin
381 IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade | append-metadata | check-size $$$$(IMAGE_SIZE)
382 IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
384 TARGET_DEVICES += re350-v1
388 DEVICE_TITLE := Linksys RE6500
389 DEVICE_PACKAGES := kmod-mt76x2 wpad-basic
391 TARGET_DEVICES += re6500
393 define Device/sap-g3200u3
395 DEVICE_TITLE := STORYLiNK SAP-G3200U3
396 DEVICE_PACKAGES := kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
398 TARGET_DEVICES += sap-g3200u3
402 IMAGE_SIZE := $(ralink_default_fw_size_16M)
403 DEVICE_TITLE := SamKnows Whitebox 8
405 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport \
406 uboot-envtools wpad-basic
408 TARGET_DEVICES += sk-wb8
410 define Device/timecloud
412 DEVICE_TITLE := Thunder Timecloud
413 DEVICE_PACKAGES := kmod-usb3
415 TARGET_DEVICES += timecloud
417 define Device/ubnt-erx
419 FILESYSTEMS := squashfs
420 KERNEL_SIZE := 3145728
421 KERNEL_INITRAMFS := $$(KERNEL) | ubnt-erx-factory-image $(KDIR)/tmp/$$(KERNEL_INITRAMFS_PREFIX)-factory.tar
422 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
423 DEVICE_TITLE := Ubiquiti EdgeRouter X
425 TARGET_DEVICES += ubnt-erx
427 define Device/ubnt-erx-sfp
430 DEVICE_TITLE := Ubiquiti EdgeRouter X-SFP
431 DEVICE_PACKAGES += kmod-i2c-algo-pca kmod-gpio-pca953x kmod-i2c-gpio-custom
433 TARGET_DEVICES += ubnt-erx-sfp
435 define Device/unielec_u7621-06-256m-16m
436 DTS := U7621-06-256M-16M
438 DEVICE_TITLE := UniElec U7621-06 (256M RAM/16M flash)
439 DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-sdhci-mt7620 kmod-usb3
440 SUPPORTED_DEVICES += u7621-06-256M-16M
442 TARGET_DEVICES += unielec_u7621-06-256m-16m
444 define Device/unielec_u7621-06-512m-64m
445 DTS := U7621-06-512M-64M
447 DEVICE_TITLE := UniElec U7621-06 (512M RAM/64M flash)
448 DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-sdhci-mt7620 kmod-usb3
450 TARGET_DEVICES += unielec_u7621-06-512m-64m
454 IMAGE_SIZE := 66453504
455 DEVICE_TITLE := Planex VR500
456 DEVICE_PACKAGES := kmod-usb3
458 TARGET_DEVICES += vr500
460 define Device/w2914nsv2
462 IMAGE_SIZE := $(ralink_default_fw_size_16M)
463 DEVICE_TITLE := WeVO W2914NS v2
465 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
467 TARGET_DEVICES += w2914nsv2
469 define Device/wf-2881
473 FILESYSTEMS := squashfs
474 IMAGE_SIZE := 129280k
475 KERNEL := $(KERNEL_DTB) | pad-offset $$(BLOCKSIZE) 64 | uImage lzma
477 IMAGE/sysupgrade.bin := append-kernel | append-ubi | append-metadata | check-size $$$$(IMAGE_SIZE)
478 DEVICE_TITLE := NETIS WF-2881
479 DEVICE_PACKAGES := kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
481 TARGET_DEVICES += wf-2881
483 define Device/mqmaker_witi-256m
485 IMAGE_SIZE := $(ralink_default_fw_size_16M)
486 DEVICE_TITLE := MQmaker WiTi (256MB RAM)
488 kmod-ata-core kmod-ata-ahci kmod-mt76x2 kmod-sdhci-mt7620 kmod-usb3 \
489 kmod-usb-ledtrig-usbport wpad-basic
490 SUPPORTED_DEVICES += witi
492 TARGET_DEVICES += mqmaker_witi-256m
494 define Device/mqmaker_witi-512m
496 IMAGE_SIZE := $(ralink_default_fw_size_16M)
497 DEVICE_TITLE := MQmaker WiTi (512MB RAM)
499 kmod-ata-core kmod-ata-ahci kmod-mt76x2 kmod-sdhci-mt7620 kmod-usb3 \
500 kmod-usb-ledtrig-usbport wpad-basic
502 TARGET_DEVICES += mqmaker_witi-512m
504 define Device/wndr3700v5
506 IMAGE_SIZE := $(ralink_default_fw_size_16M)
507 DEVICE_TITLE := Netgear WNDR3700v5
508 DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 kmod-usb3 wpad-basic
510 TARGET_DEVICES += wndr3700v5
512 define Device/youhua_wr1200js
515 DEVICE_TITLE := YouHua WR1200JS
517 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
519 TARGET_DEVICES += youhua_wr1200js
521 define Device/wsr-1166
523 IMAGE/sysupgrade.bin := trx | pad-rootfs | append-metadata
524 IMAGE_SIZE := $(ralink_default_fw_size_16M)
525 DEVICE_TITLE := Buffalo WSR-1166
526 DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 wpad-basic
528 TARGET_DEVICES += wsr-1166
530 define Device/wsr-600
532 IMAGE_SIZE := $(ralink_default_fw_size_16M)
533 DEVICE_TITLE := Buffalo WSR-600
534 DEVICE_PACKAGES := kmod-mt7603 kmod-rt2800-pci wpad-basic
536 TARGET_DEVICES += wsr-600
538 define Device/zbt-we1326
540 IMAGE_SIZE := $(ralink_default_fw_size_16M)
541 DEVICE_TITLE := ZBT WE1326
543 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-sdhci-mt7620 wpad-basic
545 TARGET_DEVICES += zbt-we1326
547 define Device/zbtlink_zbt-we3526
549 IMAGE_SIZE := $(ralink_default_fw_size_16M)
550 DEVICE_TITLE := ZBT WE3526
552 kmod-sdhci-mt7620 kmod-mt7603 kmod-mt76x2 \
553 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
555 TARGET_DEVICES += zbtlink_zbt-we3526
557 define Device/zbt-wg2626
559 IMAGE_SIZE := $(ralink_default_fw_size_16M)
560 DEVICE_TITLE := ZBT WG2626
562 kmod-ata-core kmod-ata-ahci kmod-sdhci-mt7620 kmod-mt76x2 kmod-usb3 \
563 kmod-usb-ledtrig-usbport wpad-basic
565 TARGET_DEVICES += zbt-wg2626
567 define Device/zbt-wg3526-16M
568 DTS := ZBT-WG3526-16M
569 IMAGE_SIZE := $(ralink_default_fw_size_16M)
570 SUPPORTED_DEVICES += zbt-wg3526
571 DEVICE_TITLE := ZBT WG3526 (16MB flash)
573 kmod-ata-core kmod-ata-ahci kmod-sdhci-mt7620 kmod-mt7603 kmod-mt76x2 \
574 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
576 TARGET_DEVICES += zbt-wg3526-16M
578 define Device/zbt-wg3526-32M
579 DTS := ZBT-WG3526-32M
580 IMAGE_SIZE := $(ralink_default_fw_size_32M)
581 SUPPORTED_DEVICES += ac1200pro
582 DEVICE_TITLE := ZBT WG3526 (32MB flash)
584 kmod-ata-core kmod-ata-ahci kmod-sdhci-mt7620 kmod-mt7603 kmod-mt76x2 \
585 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
587 TARGET_DEVICES += zbt-wg3526-32M