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 define Build/ubnt-erx-factory-image
51 if [ -e $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) -a "$$(stat -c%s $@)" -lt "$(KERNEL_SIZE)" ]; then \
52 echo '21001:6' > $(1).compat; \
53 $(TAR) -cf $(1) --transform='s/^.*/compat/' $(1).compat; \
55 $(TAR) -rf $(1) --transform='s/^.*/vmlinux.tmp/' $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE); \
56 mkhash md5 $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) > $(1).md5; \
57 $(TAR) -rf $(1) --transform='s/^.*/vmlinux.tmp.md5/' $(1).md5; \
59 echo "dummy" > $(1).rootfs; \
60 $(TAR) -rf $(1) --transform='s/^.*/squashfs.tmp/' $(1).rootfs; \
62 mkhash md5 $(1).rootfs > $(1).md5; \
63 $(TAR) -rf $(1) --transform='s/^.*/squashfs.tmp.md5/' $(1).md5; \
65 echo '$(BOARD) $(VERSION_CODE) $(VERSION_NUMBER)' > $(1).version; \
66 $(TAR) -rf $(1) --transform='s/^.*/version.tmp/' $(1).version; \
68 $(CP) $(1) $(BIN_DIR)/; \
70 echo "WARNING: initramfs kernel image too big, cannot generate factory image" >&2; \
76 IMAGE_SIZE := $(ralink_default_fw_size_16M)
77 DEVICE_TITLE := WeVO 11AC NAS Router
78 DEVICE_PACKAGES := kmod-mt7603 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
80 TARGET_DEVICES += 11acnas
82 define Device/dir-860l-b1
86 KERNEL := kernel-bin | patch-dtb | relocate-kernel | lzma | uImage lzma
87 IMAGE_SIZE := $(ralink_default_fw_size_16M)
88 IMAGE/sysupgrade.bin := \
89 append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-rootfs | \
90 seama -m "dev=/dev/mtdblock/2" -m "type=firmware" | \
91 pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
92 IMAGE/factory.bin := \
93 append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | \
94 append-rootfs | pad-rootfs -x 64 | \
95 seama -m "dev=/dev/mtdblock/2" -m "type=firmware" | \
96 seama-seal -m "signature=wrgac13_dlink.2013gui_dir860lb" | \
97 check-size $$$$(IMAGE_SIZE)
98 DEVICE_TITLE := D-Link DIR-860L B1
99 DEVICE_PACKAGES := kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
101 TARGET_DEVICES += dir-860l-b1
103 define Device/mediatek_ap-mt7621a-v60
104 DTS := AP-MT7621A-V60
105 IMAGE_SIZE := $(ralink_default_fw_size_8M)
106 DEVICE_TITLE := Mediatek AP-MT7621A-V60 EVB
107 DEVICE_PACKAGES := kmod-usb3 kmod-sdhci-mt7620 kmod-sound-mt7620
109 TARGET_DEVICES += mediatek_ap-mt7621a-v60
111 define Device/elecom_wrc-1167ghbk2-s
112 DTS := WRC-1167GHBK2-S
114 DEVICE_TITLE := ELECOM WRC-1167GHBK2-S
115 IMAGES += factory.bin
116 IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) |\
117 elecom-wrc-factory WRC-1167GHBK2-S 0.00
119 TARGET_DEVICES += elecom_wrc-1167ghbk2-s
121 define Device/elecom_wrc-2533gst
124 DEVICE_TITLE := ELECOM WRC-2533GST
125 IMAGES += factory.bin
126 IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) |\
127 elecom-gst-factory WRC-2533GST 0.00
129 TARGET_DEVICES += elecom_wrc-2533gst
131 define Device/elecom_wrc-1900gst
134 DEVICE_TITLE := ELECOM WRC-1900GST
135 IMAGES += factory.bin
136 IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) |\
137 elecom-gst-factory WRC-1900GST 0.00
139 TARGET_DEVICES += elecom_wrc-1900gst
143 IMAGE_SIZE := $(ralink_default_fw_size_16M)
144 DEVICE_TITLE := AFOUNDRY EW1200
146 kmod-ata-core kmod-ata-ahci kmod-mt76x2 kmod-mt7603 kmod-usb3 \
147 kmod-usb-ledtrig-usbport wpad-basic
149 TARGET_DEVICES += ew1200
151 define Device/firewrt
153 IMAGE_SIZE := $(ralink_default_fw_size_16M)
154 DEVICE_TITLE := Firefly FireWRT
155 DEVICE_PACKAGES := kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
157 TARGET_DEVICES += firewrt
159 define Device/gnubee_gb-pc1
161 DEVICE_TITLE := GnuBee Personal Cloud One
162 DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-usb3 kmod-sdhci-mt7620
163 IMAGE_SIZE := $(ralink_default_fw_size_32M)
165 TARGET_DEVICES += gnubee_gb-pc1
167 define Device/gnubee_gb-pc2
169 DEVICE_TITLE := GnuBee Personal Cloud Two
170 DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-usb3 kmod-sdhci-mt7620
171 IMAGE_SIZE := $(ralink_default_fw_size_32M)
173 TARGET_DEVICES += gnubee_gb-pc2
179 KERNEL_SIZE := 2097152
181 IMAGE_SIZE := $(ralink_default_fw_size_32M)
182 IMAGES += factory.bin
183 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
184 IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | append-ubi | check-size $$$$(IMAGE_SIZE)
185 DEVICE_TITLE := HiWiFi HC5962
186 DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 kmod-usb3 wpad-basic
188 TARGET_DEVICES += hc5962
190 define Device/iodata_wn-ax1167gr
193 KERNEL_INITRAMFS := $$(KERNEL) | \
194 iodata-factory 7864320 4 0x1055 $(KDIR)/tmp/$$(KERNEL_INITRAMFS_PREFIX)-factory.bin
195 DEVICE_TITLE := I-O DATA WN-AX1167GR
196 DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 wpad-basic
198 TARGET_DEVICES += iodata_wn-ax1167gr
200 define Device/iodata_wn-gx300gr
202 IMAGE_SIZE := 7798784
203 DEVICE_TITLE := I-O DATA WN-GX300GR
204 DEVICE_PACKAGES := kmod-mt7603 wpad-basic
206 TARGET_DEVICES += iodata_wn-gx300gr
210 IMAGE_SIZE := $(ralink_default_fw_size_16M)
211 DEVICE_TITLE := Phicomm K2P
213 TARGET_DEVICES += k2p
222 IMAGES += kernel1.bin rootfs0.bin
223 IMAGE/kernel1.bin := append-kernel
224 IMAGE/rootfs0.bin := append-ubi | check-size $$$$(IMAGE_SIZE)
225 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
226 DEVICE_TITLE := Xiaomi Mi Router 3G
227 SUPPORTED_DEVICES += R3G
229 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic \
232 TARGET_DEVICES += mir3g
237 IMAGE_SIZE := $(ralink_default_fw_size_4M)
238 DEVICE_TITLE := MediaTek MT7621 EVB
240 TARGET_DEVICES += mt7621
242 define Device/newifi-d1
244 IMAGE_SIZE := $(ralink_default_fw_size_32M)
245 DEVICE_TITLE := Newifi D1
247 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
249 TARGET_DEVICES += newifi-d1
251 define Device/d-team_newifi-d2
253 IMAGE_SIZE := $(ralink_default_fw_size_32M)
254 DEVICE_TITLE := Newifi D2
256 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
258 TARGET_DEVICES += d-team_newifi-d2
262 IMAGE_SIZE := $(ralink_default_fw_size_16M)
263 DEVICE_TITLE := PBR-M1
265 kmod-ata-core kmod-ata-ahci kmod-mt7603 kmod-mt76x2 kmod-sdhci-mt7620 \
266 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
268 TARGET_DEVICES += pbr-m1
277 IMAGES += kernel.bin rootfs.bin
278 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
279 IMAGE/kernel.bin := append-kernel
280 IMAGE/rootfs.bin := append-ubi | check-size $$$$(IMAGE_SIZE)
281 DEVICE_TITLE := Netgear R6220
283 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
285 TARGET_DEVICES += r6220
287 define Device/rb750gr3
289 IMAGE_SIZE := $(ralink_default_fw_size_16M)
290 DEVICE_TITLE := MikroTik RB750Gr3
291 DEVICE_PACKAGES := kmod-usb3 uboot-envtools
293 TARGET_DEVICES += rb750gr3
295 define Device/MikroTik
298 DEVICE_PACKAGES := kmod-usb3
301 KERNEL := $(KERNEL_DTB) | loader-kernel
302 IMAGE/sysupgrade.bin := append-kernel | kernel2minor -s 1024 | pad-to $$$$(BLOCKSIZE) | \
303 append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
306 define Device/mikrotik_rbm33g
309 DEVICE_TITLE := MikroTik RouterBOARD M33G
311 TARGET_DEVICES += mikrotik_rbm33g
313 define Device/mikrotik_rbm11g
316 DEVICE_TITLE := MikroTik RouterBOARD M11G
318 TARGET_DEVICES += mikrotik_rbm11g
320 define Device/re350-v1
322 DEVICE_TITLE := TP-LINK RE350 v1
323 DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 wpad-basic
324 TPLINK_BOARD_ID := RE350-V1
327 TPLINK_HEADER_VERSION := 1
329 KERNEL := $(KERNEL_DTB) | tplink-v1-header -e -O
330 IMAGES += factory.bin
331 IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade | append-metadata | check-size $$$$(IMAGE_SIZE)
332 IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
334 TARGET_DEVICES += re350-v1
338 DEVICE_TITLE := Linksys RE6500
339 DEVICE_PACKAGES := kmod-mt76x2 wpad-basic
341 TARGET_DEVICES += re6500
343 define Device/sap-g3200u3
345 DEVICE_TITLE := STORYLiNK SAP-G3200U3
346 DEVICE_PACKAGES := kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
348 TARGET_DEVICES += sap-g3200u3
352 IMAGE_SIZE := $(ralink_default_fw_size_16M)
353 DEVICE_TITLE := SamKnows Whitebox 8
355 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport \
356 uboot-envtools wpad-basic
358 TARGET_DEVICES += sk-wb8
360 define Device/timecloud
362 DEVICE_TITLE := Thunder Timecloud
363 DEVICE_PACKAGES := kmod-usb3
365 TARGET_DEVICES += timecloud
367 define Device/ubnt-erx
369 FILESYSTEMS := squashfs
370 KERNEL_SIZE := 3145728
371 KERNEL_INITRAMFS := $$(KERNEL) | ubnt-erx-factory-image $(KDIR)/tmp/$$(KERNEL_INITRAMFS_PREFIX)-factory.tar
372 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
373 DEVICE_TITLE := Ubiquiti EdgeRouter X
375 TARGET_DEVICES += ubnt-erx
377 define Device/ubnt-erx-sfp
380 DEVICE_TITLE := Ubiquiti EdgeRouter X-SFP
381 DEVICE_PACKAGES += kmod-i2c-algo-pca kmod-gpio-pca953x kmod-i2c-gpio-custom
383 TARGET_DEVICES += ubnt-erx-sfp
385 define Device/unielec_u7621-06-256m-16m
386 DTS := U7621-06-256M-16M
388 DEVICE_TITLE := UniElec U7621-06 (256M RAM/16M flash)
389 DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-sdhci-mt7620 kmod-usb3
390 SUPPORTED_DEVICES += u7621-06-256M-16M
392 TARGET_DEVICES += unielec_u7621-06-256m-16m
394 define Device/unielec_u7621-06-512m-64m
395 DTS := U7621-06-512M-64M
397 DEVICE_TITLE := UniElec U7621-06 (512M RAM/64M flash)
398 DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-sdhci-mt7620 kmod-usb3
400 TARGET_DEVICES += unielec_u7621-06-512m-64m
404 IMAGE_SIZE := 66453504
405 DEVICE_TITLE := Planex VR500
406 DEVICE_PACKAGES := kmod-usb3
408 TARGET_DEVICES += vr500
410 define Device/w2914nsv2
412 IMAGE_SIZE := $(ralink_default_fw_size_16M)
413 DEVICE_TITLE := WeVO W2914NS v2
415 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
417 TARGET_DEVICES += w2914nsv2
419 define Device/wf-2881
423 FILESYSTEMS := squashfs
424 IMAGE_SIZE := 129280k
425 KERNEL := $(KERNEL_DTB) | pad-offset $$(BLOCKSIZE) 64 | uImage lzma
427 IMAGE/sysupgrade.bin := append-kernel | append-ubi | append-metadata | check-size $$$$(IMAGE_SIZE)
428 DEVICE_TITLE := NETIS WF-2881
429 DEVICE_PACKAGES := kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
431 TARGET_DEVICES += wf-2881
433 define Device/mqmaker_witi-256m
435 IMAGE_SIZE := $(ralink_default_fw_size_16M)
436 DEVICE_TITLE := MQmaker WiTi (256MB RAM)
438 kmod-ata-core kmod-ata-ahci kmod-mt76x2 kmod-sdhci-mt7620 kmod-usb3 \
439 kmod-usb-ledtrig-usbport wpad-basic
440 SUPPORTED_DEVICES += witi
442 TARGET_DEVICES += mqmaker_witi-256m
444 define Device/mqmaker_witi-512m
446 IMAGE_SIZE := $(ralink_default_fw_size_16M)
447 DEVICE_TITLE := MQmaker WiTi (512MB RAM)
449 kmod-ata-core kmod-ata-ahci kmod-mt76x2 kmod-sdhci-mt7620 kmod-usb3 \
450 kmod-usb-ledtrig-usbport wpad-basic
452 TARGET_DEVICES += mqmaker_witi-512m
454 define Device/wndr3700v5
456 IMAGE_SIZE := $(ralink_default_fw_size_16M)
457 DEVICE_TITLE := Netgear WNDR3700v5
458 DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 kmod-usb3 wpad-basic
460 TARGET_DEVICES += wndr3700v5
462 define Device/youhua_wr1200js
465 DEVICE_TITLE := YouHua WR1200JS
467 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
469 TARGET_DEVICES += youhua_wr1200js
471 define Device/wsr-1166
473 IMAGE/sysupgrade.bin := trx | pad-rootfs | append-metadata
474 IMAGE_SIZE := $(ralink_default_fw_size_16M)
475 DEVICE_TITLE := Buffalo WSR-1166
476 DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 wpad-basic
478 TARGET_DEVICES += wsr-1166
480 define Device/wsr-600
482 IMAGE_SIZE := $(ralink_default_fw_size_16M)
483 DEVICE_TITLE := Buffalo WSR-600
484 DEVICE_PACKAGES := kmod-mt7603 kmod-rt2800-pci wpad-basic
486 TARGET_DEVICES += wsr-600
488 define Device/zbt-we1326
490 IMAGE_SIZE := $(ralink_default_fw_size_16M)
491 DEVICE_TITLE := ZBT WE1326
493 kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-sdhci-mt7620 wpad-basic
495 TARGET_DEVICES += zbt-we1326
497 define Device/zbtlink_zbt-we3526
499 IMAGE_SIZE := $(ralink_default_fw_size_16M)
500 DEVICE_TITLE := ZBT WE3526
502 kmod-sdhci-mt7620 kmod-mt7603 kmod-mt76x2 \
503 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
505 TARGET_DEVICES += zbtlink_zbt-we3526
507 define Device/zbt-wg2626
509 IMAGE_SIZE := $(ralink_default_fw_size_16M)
510 DEVICE_TITLE := ZBT WG2626
512 kmod-ata-core kmod-ata-ahci kmod-sdhci-mt7620 kmod-mt76x2 kmod-usb3 \
513 kmod-usb-ledtrig-usbport wpad-basic
515 TARGET_DEVICES += zbt-wg2626
517 define Device/zbt-wg3526-16M
518 DTS := ZBT-WG3526-16M
519 IMAGE_SIZE := $(ralink_default_fw_size_16M)
520 SUPPORTED_DEVICES += zbt-wg3526
521 DEVICE_TITLE := ZBT WG3526 (16MB flash)
523 kmod-ata-core kmod-ata-ahci kmod-sdhci-mt7620 kmod-mt7603 kmod-mt76x2 \
524 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
526 TARGET_DEVICES += zbt-wg3526-16M
528 define Device/zbt-wg3526-32M
529 DTS := ZBT-WG3526-32M
530 IMAGE_SIZE := $(ralink_default_fw_size_32M)
531 SUPPORTED_DEVICES += ac1200pro
532 DEVICE_TITLE := ZBT WG3526 (32MB flash)
534 kmod-ata-core kmod-ata-ahci kmod-sdhci-mt7620 kmod-mt7603 kmod-mt76x2 \
535 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic
537 TARGET_DEVICES += zbt-wg3526-32M
539 # FIXME: is this still needed?
541 #define Build/Compile
542 rm -rf $(KDIR)/relocate
543 $(CP) ../../generic/image/relocate $(KDIR)
544 $(MAKE) -C $(KDIR)/relocate KERNEL_ADDR=$(KERNEL_LOADADDR) CROSS_COMPILE=$(TARGET_CROSS)
545 $(CP) $(KDIR)/relocate/loader.bin $(KDIR)/loader.bin