ar71xx: image: simplify TP-Link devices definitions
[librecmc/librecmc.git] / target / linux / ar71xx / image / tp-link.mk
1 DEVICE_VARS += LOADER_FLASH_OFFS TPLINK_BOARD_NAME TPLINK_FLASHLAYOUT TPLINK_HEADER_VERSION TPLINK_HWID TPLINK_HWREV
2
3 define Build/copy-file
4         cat "$(1)" > "$@"
5 endef
6
7 define Build/loader-okli
8         dd if=$(KDIR)/loader-$(1).gz bs=7680 conv=sync of="$@.new"
9         cat "$@" >> "$@.new"
10         mv "$@.new" "$@"
11 endef
12
13 define Build/loader-okli-compile
14         $(call Build/loader-common,FLASH_OFFS=$(LOADER_FLASH_OFFS) FLASH_MAX=0 KERNEL_CMDLINE="$(CMDLINE)")
15 endef
16
17 # combine kernel and rootfs into one image
18 # mktplinkfw <type> <optional extra arguments to mktplinkfw binary>
19 # <type> is "sysupgrade" or "factory"
20 #
21 # -a align the rootfs start on an <align> bytes boundary
22 # -j add jffs2 end-of-filesystem markers
23 # -s strip padding from end of the image
24 # -X reserve <size> bytes in the firmware image (hexval prefixed with 0x)
25 define Build/mktplinkfw
26         -$(STAGING_DIR_HOST)/bin/mktplinkfw \
27                 -H $(TPLINK_HWID) -W $(TPLINK_HWREV) -F $(TPLINK_FLASHLAYOUT) -N OpenWrt -V $(REVISION) \
28                 -m $(TPLINK_HEADER_VERSION) \
29                 -k $(IMAGE_KERNEL) \
30                 -r $@ \
31                 -o $@.new \
32                 -j -X 0x40000 \
33                 -a $(call rootfs_align,$(FILESYSTEM)) \
34                 $(wordlist 2,$(words $(1)),$(1)) \
35                 $(if $(findstring sysupgrade,$(word 1,$(1))),-s) && mv $@.new $@ || rm -f $@
36 endef
37
38 # mktplinkfw-combined
39 #
40 # -c combined image
41 define Build/mktplinkfw-combined
42         $(STAGING_DIR_HOST)/bin/mktplinkfw \
43                 -H $(TPLINK_HWID) -W $(TPLINK_HWREV) -F $(TPLINK_FLASHLAYOUT) -N OpenWrt -V $(REVISION) $(1) \
44                 -m $(TPLINK_HEADER_VERSION) \
45                 -k $@ \
46                 -o $@.new \
47                 -s -S \
48                 -c
49         @mv $@.new $@
50 endef
51
52 # add RE450 and similar header to the kernel image
53 define Build/mktplinkfw-kernel
54         $(STAGING_DIR_HOST)/bin/mktplinkfw-kernel \
55                 -H $(TPLINK_HWID) -N OpenWrt -V $(REVISION) \
56                 -L $(KERNEL_LOADADDR) -E $(KERNEL_LOADADDR) \
57                 -k $@ \
58                 -o $@.new
59         @mv $@.new $@
60 endef
61
62 define Build/uImageArcher
63         mkimage -A $(LINUX_KARCH) \
64                 -O linux -T kernel \
65                 -C $(1) -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
66                 -n '$(call toupper,$(LINUX_KARCH)) LEDE Linux-$(LINUX_VERSION)' -d $@ $@.new
67         @mv $@.new $@
68 endef
69
70
71 define Device/tplink
72   TPLINK_HWREV := 0x1
73   TPLINK_HEADER_VERSION := 1
74   LOADER_TYPE := gz
75   KERNEL := kernel-bin | patch-cmdline | lzma
76   KERNEL_INITRAMFS := kernel-bin | patch-cmdline | lzma | mktplinkfw-combined
77   IMAGES := sysupgrade.bin factory.bin
78   IMAGE/sysupgrade.bin := append-rootfs | mktplinkfw sysupgrade
79   IMAGE/factory.bin := append-rootfs | mktplinkfw factory
80 endef
81
82 define Device/tplink-nolzma
83   $(Device/tplink)
84   LOADER_FLASH_OFFS := 0x22000
85   COMPILE := loader-$(1).gz
86   COMPILE/loader-$(1).gz := loader-okli-compile
87   KERNEL := copy-file $(KDIR)/vmlinux.bin.lzma | uImage lzma -M 0x4f4b4c49 | loader-okli $(1)
88   KERNEL_INITRAMFS := copy-file $(KDIR)/vmlinux-initramfs.bin.lzma | loader-kernel-cmdline | mktplinkfw-combined
89 endef
90
91 define Device/tplink-4m
92   $(Device/tplink-nolzma)
93   TPLINK_FLASHLAYOUT := 4M
94   IMAGE_SIZE := 3904k
95 endef
96
97 define Device/tplink-8m
98   $(Device/tplink-nolzma)
99   TPLINK_FLASHLAYOUT := 8M
100   IMAGE_SIZE := 7936k
101 endef
102
103 define Device/tplink-4mlzma
104   $(Device/tplink)
105   TPLINK_FLASHLAYOUT := 4Mlzma
106   IMAGE_SIZE := 3904k
107 endef
108
109 define Device/tplink-8mlzma
110   $(Device/tplink)
111   TPLINK_FLASHLAYOUT := 8Mlzma
112   IMAGE_SIZE := 7936k
113 endef
114
115 define Device/tplink-16mlzma
116   $(Device/tplink)
117   TPLINK_FLASHLAYOUT := 16Mlzma
118   IMAGE_SIZE := 15872k
119 endef
120
121 define Device/archer-cxx
122   KERNEL := kernel-bin | patch-cmdline | lzma | uImageArcher lzma
123   IMAGES := sysupgrade.bin factory.bin
124   IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade
125   IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
126 endef
127
128 define Device/archer-c25-v1
129   $(Device/archer-cxx)
130   DEVICE_TITLE := TP-LINK Archer C25 v1
131   DEVICE_PACKAGES := kmod-ath10k ath10k-firmware-qca9887
132   BOARDNAME := ARCHER-C25-V1
133   TPLINK_BOARD_NAME := ARCHER-C25-V1
134   DEVICE_PROFILE := ARCHERC25V1
135   IMAGE_SIZE := 7808k
136   LOADER_TYPE := elf
137   MTDPARTS := spi0.0:128k(factory-uboot)ro,64k(u-boot)ro,1536k(kernel),6272k(rootfs),128k(config)ro,64k(art)ro,7808k@0x30000(firmware)
138 endef
139
140 define Device/archer-c59-v1
141   $(Device/archer-cxx)
142   DEVICE_TITLE := TP-LINK Archer C59 v1
143   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k ath10k-firmware-qca988x
144   BOARDNAME := ARCHER-C59-V1
145   TPLINK_BOARD_NAME := ARCHER-C59-V1
146   DEVICE_PROFILE := ARCHERC59V1
147   IMAGE_SIZE := 14528k
148   MTDPARTS := spi0.0:64k(u-boot)ro,64k(mac)ro,1536k(kernel),12992k(rootfs),1664k(tplink)ro,64k(art)ro,14528k@0x20000(firmware)
149 endef
150
151 define Device/archer-c60-v1
152   $(Device/archer-cxx)
153   DEVICE_TITLE := TP-LINK Archer C60 v1
154   DEVICE_PACKAGES := kmod-ath10k ath10k-firmware-qca988x
155   BOARDNAME := ARCHER-C60-V1
156   TPLINK_BOARD_NAME := ARCHER-C60-V1
157   DEVICE_PROFILE := ARCHERC60V1
158   IMAGE_SIZE := 7936k
159   MTDPARTS := spi0.0:64k(u-boot)ro,64k(mac)ro,1344k(kernel),6592k(rootfs),64k(tplink)ro,64k(art)ro,7936k@0x20000(firmware)
160 endef
161 TARGET_DEVICES += archer-c25-v1 archer-c59-v1 archer-c60-v1
162
163 define Device/archer-c5-v1
164   $(Device/tplink-16mlzma)
165   DEVICE_TITLE := TP-LINK Archer C5 v1
166   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k ath10k-firmware-qca988x
167   BOARDNAME := ARCHER-C5
168   DEVICE_PROFILE := ARCHERC7
169   TPLINK_HWID := 0xc5000001
170 endef
171
172 define Device/archer-c7-v1
173   $(Device/tplink-8mlzma)
174   DEVICE_TITLE := TP-LINK Archer C7 v1
175   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k ath10k-firmware-qca988x
176   BOARDNAME := ARCHER-C7
177   DEVICE_PROFILE := ARCHERC7
178   TPLINK_HWID := 0x75000001
179 endef
180
181 define Device/archer-c7-v2
182   $(Device/tplink-16mlzma)
183   DEVICE_TITLE := TP-LINK Archer C7 v2
184   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k ath10k-firmware-qca988x
185   BOARDNAME := ARCHER-C7-V2
186   DEVICE_PROFILE := ARCHERC7
187   TPLINK_HWID := 0xc7000002
188   IMAGES := sysupgrade.bin factory.bin factory-us.bin factory-eu.bin
189   IMAGE/factory-us.bin := append-rootfs | mktplinkfw factory -C US
190   IMAGE/factory-eu.bin := append-rootfs | mktplinkfw factory -C EU
191 endef
192
193 define Device/archer-c7-v2-il
194   $(Device/tplink-16mlzma)
195   DEVICE_TITLE := TP-LINK Archer C7 v2 (IL)
196   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k ath10k-firmware-qca988x
197   BOARDNAME := ARCHER-C7-V2
198   DEVICE_PROFILE := ARCHERC7
199   TPLINK_HWID := 0xc7000002
200   TPLINK_HWREV := 0x494c0001
201 endef
202
203 define Device/tl-wdr7500-v3
204   $(Device/tplink-8mlzma)
205   DEVICE_TITLE := TP-LINK Archer C7 v3
206   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k ath10k-firmware-qca988x
207   BOARDNAME := ARCHER-C7
208   DEVICE_PROFILE := ARCHERC7
209   TPLINK_HWID := 0x75000003
210 endef
211 TARGET_DEVICES += archer-c5-v1 archer-c7-v1 archer-c7-v2 archer-c7-v2-il tl-wdr7500-v3
212
213 define Device/cpe510-520-v1
214   DEVICE_TITLE := TP-LINK CPE510/520 v1
215   DEVICE_PACKAGES := rssileds
216   MTDPARTS := spi0.0:128k(u-boot)ro,64k(pation-table)ro,64k(product-info)ro,1536k(kernel),6144k(rootfs),192k(config)ro,64k(ART)ro,7680k@0x40000(firmware)
217   IMAGE_SIZE := 7680k
218   BOARDNAME := CPE510
219   TPLINK_BOARD_NAME := CPE510
220   DEVICE_PROFILE := CPE510
221   LOADER_TYPE := elf
222   KERNEL := kernel-bin | patch-cmdline | lzma | loader-kernel
223   IMAGES := sysupgrade.bin factory.bin
224   IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade
225   IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
226 endef
227
228 define Device/cpe210-220-v1
229   $(Device/cpe510-520-v1)
230   DEVICE_TITLE := TP-LINK CPE210/220 v1
231   BOARDNAME := CPE210
232   TPLINK_BOARD_NAME := CPE210
233 endef
234
235 define Device/wbs210-v1
236   $(Device/cpe510-520-v1)
237   DEVICE_TITLE := TP-LINK WBS210 v1
238   BOARDNAME := WBS210
239   TPLINK_BOARD_NAME := WBS210
240 endef
241
242 define Device/wbs510-v1
243   $(Device/cpe510-520-v1)
244   DEVICE_TITLE := TP-LINK WBS510 v1
245   BOARDNAME := WBS510
246   TPLINK_BOARD_NAME := WBS510
247 endef
248 TARGET_DEVICES += cpe210-220-v1 cpe510-520-v1 wbs210-v1 wbs510-v1
249
250 define Device/eap120-v1
251   DEVICE_TITLE := TP-LINK EAP120 v1
252   MTDPARTS := spi0.0:128k(u-boot)ro,64k(pation-table)ro,64k(product-info)ro,1536k(kernel),14336k(rootfs),192k(config)ro,64k(ART)ro,15872k@0x40000(firmware)
253   IMAGE_SIZE := 15872k
254   BOARDNAME := EAP120
255   TPLINK_BOARD_NAME := EAP120
256   DEVICE_PROFILE := EAP120
257   LOADER_TYPE := elf
258   KERNEL := kernel-bin | patch-cmdline | lzma | loader-kernel
259   IMAGES := sysupgrade.bin factory.bin
260   IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade
261   IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
262 endef
263 TARGET_DEVICES += eap120-v1
264
265 define Device/re450-v1
266   DEVICE_TITLE := TP-LINK RE450 v1
267   DEVICE_PACKAGES := kmod-ath10k ath10k-firmware-qca988x
268   MTDPARTS := spi0.0:128k(u-boot)ro,1344k(kernel),4672k(rootfs),64k(pation-table)ro,64k(product-info)ro,1856k(config)ro,64k(art)ro,6016k@0x20000(firmware)
269   IMAGE_SIZE := 7936k
270   BOARDNAME := RE450
271   TPLINK_BOARD_NAME := RE450
272   DEVICE_PROFILE := RE450
273   LOADER_TYPE := elf
274   KERNEL := kernel-bin | patch-cmdline | lzma | mktplinkfw-kernel
275   IMAGES := sysupgrade.bin factory.bin
276   IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade
277   IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
278 endef
279 TARGET_DEVICES += re450-v1
280
281 define Device/tl-mr10u-v1
282   $(Device/tplink-4mlzma)
283   DEVICE_TITLE := TP-LINK TL-MR10U v1
284   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
285   BOARDNAME := TL-MR10U
286   DEVICE_PROFILE := TLMR10U
287   TPLINK_HWID := 0x00100101
288   CONSOLE := ttyATH0,115200
289 endef
290
291 define Device/tl-mr11u-v1
292   $(Device/tplink-4mlzma)
293   DEVICE_TITLE := TP-LINK TL-MR11U v1
294   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
295   BOARDNAME := TL-MR11U
296   DEVICE_PROFILE := TLMR11U
297   TPLINK_HWID := 0x00110101
298   CONSOLE := ttyATH0,115200
299 endef
300
301 define Device/tl-mr11u-v2
302   $(Device/tl-mr11u-v1)
303   DEVICE_TITLE := TP-LINK TL-MR11U v2
304   TPLINK_HWID := 0x00110102
305 endef
306
307 define Device/tl-mr12u-v1
308   $(Device/tplink-4mlzma)
309   DEVICE_TITLE := TP-LINK TL-MR12U v1
310   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
311   BOARDNAME := TL-MR13U
312   DEVICE_PROFILE := TLMR12U
313   TPLINK_HWID := 0x00120101
314   CONSOLE := ttyATH0,115200
315 endef
316
317 define Device/tl-mr13u-v1
318   $(Device/tl-mr12u-v1)
319   DEVICE_TITLE := TP-LINK TL-MR13U v1
320   DEVICE_PROFILE := TLMR13U
321   TPLINK_HWID := 0x00130101
322 endef
323 TARGET_DEVICES += tl-mr10u-v1 tl-mr11u-v1 tl-mr11u-v2 tl-mr12u-v1 tl-mr13u-v1
324
325 define Device/tl-mr3020-v1
326   $(Device/tplink-4mlzma)
327   DEVICE_TITLE := TP-LINK TL-MR3020 v1
328   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
329   BOARDNAME := TL-MR3020
330   DEVICE_PROFILE := TLMR3020
331   TPLINK_HWID := 0x30200001
332   CONSOLE := ttyATH0,115200
333 endef
334
335 define Device/tl-mr3040-v1
336   $(Device/tl-mr3020-v1)
337   DEVICE_TITLE := TP-LINK TL-MR3040 v1
338   BOARDNAME := TL-MR3040
339   DEVICE_PROFILE := TLMR3040
340   TPLINK_HWID := 0x30400001
341 endef
342
343 define Device/tl-mr3040-v2
344   $(Device/tl-mr3040-v1)
345   DEVICE_TITLE := TP-LINK TL-MR3040 v2
346   BOARDNAME := TL-MR3040-v2
347   TPLINK_HWID := 0x30400002
348 endef
349
350 define Device/tl-mr3220-v1
351   $(Device/tplink-4m)
352   DEVICE_TITLE := TP-LINK TL-MR3220 v1
353   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
354   BOARDNAME := TL-MR3220
355   DEVICE_PROFILE := TLMR3220
356   TPLINK_HWID := 0x32200001
357 endef
358
359 define Device/tl-mr3220-v2
360   $(Device/tplink-4mlzma)
361   DEVICE_TITLE := TP-LINK TL-MR3220 v2
362   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
363   BOARDNAME := TL-MR3220-v2
364   DEVICE_PROFILE := TLMR3220
365   TPLINK_HWID := 0x32200002
366   CONSOLE := ttyATH0,115200
367 endef
368
369 define Device/tl-mr3420-v1
370   $(Device/tplink-4m)
371   DEVICE_TITLE := TP-LINK TL-MR3420 v1
372   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
373   BOARDNAME := TL-MR3420
374   DEVICE_PROFILE := TLMR3420
375   TPLINK_HWID := 0x34200001
376 endef
377
378 define Device/tl-mr3420-v2
379   $(Device/tplink-4mlzma)
380   DEVICE_TITLE := TP-LINK TL-MR3420 v2
381   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
382   BOARDNAME := TL-MR3420-v2
383   DEVICE_PROFILE := TLMR3420
384   TPLINK_HWID := 0x34200002
385 endef
386 TARGET_DEVICES += tl-mr3020-v1 tl-mr3040-v1 tl-mr3040-v2 tl-mr3220-v1 tl-mr3220-v2 tl-mr3420-v1 tl-mr3420-v2
387
388 define Device/tl-mr6400-v1
389   $(Device/tplink-8mlzma)
390   DEVICE_TITLE := TP-LINK TL-MR6400 v1
391   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-net kmod-usb-net-rndis kmod-usb-serial kmod-usb-serial-option adb-enablemodem
392   BOARDNAME := TL-MR6400
393   DEVICE_PROFILE := TLMR6400
394   TPLINK_HWID := 0x64000001
395 endef
396 TARGET_DEVICES += tl-mr6400-v1
397
398 define Device/tl-wa701nd-v1
399   $(Device/tplink-4m)
400   DEVICE_TITLE := TP-LINK TL-WA701N/ND v1
401   BOARDNAME := TL-WA901ND
402   DEVICE_PROFILE := TLWA701
403   TPLINK_HWID := 0x07010001
404 endef
405
406 define Device/tl-wa701nd-v2
407   $(Device/tplink-4mlzma)
408   DEVICE_TITLE := TP-LINK TL-WA701N/ND v2
409   BOARDNAME := TL-WA701ND-v2
410   DEVICE_PROFILE := TLWA701
411   TPLINK_HWID := 0x07010002
412   CONSOLE := ttyATH0,115200
413 endef
414
415 define Device/tl-wa7210n-v2
416   $(Device/tplink-4mlzma)
417   DEVICE_TITLE := TP-LINK TL-WA7210N v2
418   DEVICE_PACKAGES := rssileds kmod-ledtrig-netdev
419   BOARDNAME := TL-WA7210N-v2
420   DEVICE_PROFILE := TLWA7210
421   TPLINK_HWID := 0x72100002
422   CONSOLE := ttyATH0,115200
423 endef
424
425 define Device/tl-wa730re-v1
426   $(Device/tplink-4m)
427   DEVICE_TITLE := TP-LINK TL-WA730RE v1
428   BOARDNAME := TL-WA901ND
429   DEVICE_PROFILE := TLWA730RE
430   TPLINK_HWID := 0x07300001
431 endef
432
433 define Device/tl-wa750re-v1
434   $(Device/tplink-4mlzma)
435   DEVICE_TITLE := TP-LINK TL-WA750RE v1
436   DEVICE_PACKAGES := rssileds
437   BOARDNAME := TL-WA750RE
438   DEVICE_PROFILE := TLWA750
439   TPLINK_HWID := 0x07500001
440 endef
441
442 define Device/tl-wa7510n-v1
443   $(Device/tplink-4m)
444   DEVICE_TITLE := TP-LINK TL-WA7510N v1
445   BOARDNAME := TL-WA7510N
446   DEVICE_PROFILE := TLWA7510
447   TPLINK_HWID := 0x75100001
448 endef
449 TARGET_DEVICES += tl-wa701nd-v1 tl-wa701nd-v2 tl-wa7210n-v2 tl-wa730re-v1 tl-wa750re-v1 tl-wa7510n-v1
450
451 define Device/tl-wa801nd-v1
452   $(Device/tplink-4m)
453   DEVICE_TITLE := TP-LINK TL-WA801N/ND v1
454   BOARDNAME := TL-WA901ND
455   DEVICE_PROFILE := TLWA801
456   TPLINK_HWID := 0x08010001
457 endef
458
459 define Device/tl-wa801nd-v2
460   $(Device/tplink-4mlzma)
461   DEVICE_TITLE := TP-LINK TL-WA801N/ND v2
462   BOARDNAME := TL-WA801ND-v2
463   DEVICE_PROFILE := TLWA801
464   TPLINK_HWID := 0x08010002
465 endef
466
467 define Device/tl-wa801nd-v3
468   $(Device/tplink-4mlzma)
469   DEVICE_TITLE := TP-LINK TL-WA801N/ND v3
470   BOARDNAME := TL-WA801ND-v3
471   DEVICE_PROFILE := TLWA801
472   TPLINK_HWID := 0x08010003
473 endef
474
475 define Device/tl-wa830re-v1
476   $(Device/tplink-4m)
477   DEVICE_TITLE := TP-LINK TL-WA830RE v1
478   BOARDNAME := TL-WA901ND
479   DEVICE_PROFILE := TLWA830
480   TPLINK_HWID := 0x08300010
481 endef
482
483 define Device/tl-wa830re-v2
484   $(Device/tplink-4mlzma)
485   DEVICE_TITLE := TP-LINK TL-WA830RE v2
486   BOARDNAME := TL-WA830RE-v2
487   DEVICE_PROFILE := TLWA830
488   TPLINK_HWID := 0x08300002
489 endef
490
491 define Device/tl-wa850re-v1
492   $(Device/tplink-4mlzma)
493   DEVICE_TITLE := TP-LINK TL-WA850RE v1
494   BOARDNAME := TL-WA850RE
495   DEVICE_PROFILE := TLWA850
496   TPLINK_HWID := 0x08500001
497 endef
498
499 define Device/tl-wa850re-v2
500   $(Device/tplink)
501   DEVICE_TITLE := TP-LINK TL-WA850RE v2
502   DEVICE_PACKAGES := rssileds
503   BOARDNAME := TL-WA850RE-V2
504   DEVICE_PROFILE := TLWA850
505   TPLINK_BOARD_NAME := TLWA850REV2
506   TPLINK_HWID := 0x08500002
507   KERNEL := kernel-bin | patch-cmdline | lzma | mktplinkfw-kernel
508   IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade
509   IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
510   MTDPARTS := spi0.0:128k(u-boot)ro,1344k(kernel),2304k(rootfs),256k(config)ro,64k(art)ro,3648k@0x20000(firmware)
511 endef
512
513 define Device/tl-wa860re-v1
514   $(Device/tplink-4mlzma)
515   DEVICE_TITLE := TP-LINK TL-WA860RE v1
516   BOARDNAME := TL-WA860RE
517   DEVICE_PROFILE := TLWA860
518   TPLINK_HWID := 0x08600001
519 endef
520 TARGET_DEVICES += tl-wa801nd-v1 tl-wa801nd-v2 tl-wa801nd-v3 tl-wa830re-v1 tl-wa830re-v2 tl-wa850re-v1 tl-wa850re-v2 tl-wa860re-v1
521
522 define Device/tl-wa901nd-v1
523   $(Device/tplink-4m)
524   DEVICE_TITLE := TP-LINK TL-WA901N/ND v1
525   BOARDNAME := TL-WA901ND
526   DEVICE_PROFILE := TLWA901
527   TPLINK_HWID := 0x09010001
528 endef
529
530 define Device/tl-wa901nd-v2
531   $(Device/tplink-4m)
532   DEVICE_TITLE := TP-LINK TL-WA901N/ND v2
533   BOARDNAME := TL-WA901ND-v2
534   DEVICE_PROFILE := TLWA901
535   TPLINK_HWID := 0x09010002
536 endef
537
538 define Device/tl-wa901nd-v3
539   $(Device/tplink-4mlzma)
540   DEVICE_TITLE := TP-LINK TL-WA901N/ND v3
541   BOARDNAME := TL-WA901ND-v3
542   DEVICE_PROFILE := TLWA901
543   TPLINK_HWID := 0x09010003
544 endef
545
546 define Device/tl-wa901nd-v4
547   $(Device/tplink-4mlzma)
548   DEVICE_TITLE := TP-LINK TL-WA901N/ND v4
549   BOARDNAME := TL-WA901ND-v4
550   DEVICE_PROFILE := TLWA901
551   TPLINK_HWID := 0x09010004
552   IMAGE/factory.bin := append-rootfs | mktplinkfw factory -C EU
553 endef
554 TARGET_DEVICES += tl-wa901nd-v1 tl-wa901nd-v2 tl-wa901nd-v3 tl-wa901nd-v4
555
556 define Device/tl-wdr3320-v2
557   $(Device/tplink-4mlzma)
558   DEVICE_TITLE := TP-LINK TL-WDR3320 v2
559   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
560   BOARDNAME := TL-WDR3320-v2
561   DEVICE_PROFILE := TLWDR3320V2
562   TPLINK_HWID := 0x33200002
563   TPLINK_HEADER_VERSION := 2
564 endef
565
566 define Device/tl-wdr3500-v1
567   $(Device/tplink-8mlzma)
568   DEVICE_TITLE := TP-LINK TL-WDR3500 v1
569   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
570   BOARDNAME := TL-WDR3500
571   DEVICE_PROFILE := TLWDR4300
572   TPLINK_HWID := 0x35000001
573 endef
574
575 define Device/tl-wdr3600-v1
576   $(Device/tl-wdr3500-v1)
577   DEVICE_TITLE := TP-LINK TL-WDR3600 v1
578   BOARDNAME := TL-WDR4300
579   TPLINK_HWID := 0x36000001
580   IMAGE/factory.bin := append-rootfs | mktplinkfw factory -C US
581 endef
582
583 define Device/tl-wdr4300-v1
584   $(Device/tl-wdr3600-v1)
585   DEVICE_TITLE := TP-LINK TL-WDR4300 v1
586   TPLINK_HWID := 0x43000001
587 endef
588
589 define Device/tl-wdr4300-v1-il
590   $(Device/tl-wdr3500-v1)
591   DEVICE_TITLE := TP-LINK TL-WDR4300 v1 (IL)
592   BOARDNAME := TL-WDR4300
593   TPLINK_HWID := 0x43008001
594 endef
595
596 define Device/tl-wdr4310-v1
597   $(Device/tl-wdr4300-v1-il)
598   DEVICE_TITLE := TP-LINK TL-WDR4310 v1
599   TPLINK_HWID := 0x43100001
600 endef
601
602 define Device/tl-wdr4900-v2
603   $(Device/tplink-8mlzma)
604   DEVICE_TITLE := TP-LINK TL-WDR4900 v2
605   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
606   BOARDNAME := TL-WDR4900-v2
607   DEVICE_PROFILE := TLWDR4900V2
608   TPLINK_HWID := 0x49000002
609 endef
610
611 define Device/tl-wdr6500-v2
612   $(Device/tplink-8mlzma)
613   DEVICE_TITLE := TP-LINK TL-WDR6500 v2
614   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k ath10k-firmware-qca988x
615   KERNEL := kernel-bin | patch-cmdline | lzma | uImage lzma
616   KERNEL_INITRAMFS := kernel-bin | patch-cmdline | lzma | uImage lzma | mktplinkfw-combined
617   BOARDNAME := TL-WDR6500-v2
618   DEVICE_PROFILE := TLWDR6500V2
619   TPLINK_HWID := 0x65000002
620   TPLINK_HEADER_VERSION := 2
621 endef
622
623 define Device/mw4530r-v1
624   $(Device/tl-wdr4300-v1)
625   DEVICE_TITLE := Mercury MW4530R v1
626   TPLINK_HWID := 0x45300001
627 endef
628 TARGET_DEVICES += tl-wdr3320-v2 tl-wdr3500-v1 tl-wdr3600-v1 tl-wdr4300-v1 tl-wdr4300-v1-il tl-wdr4310-v1 tl-wdr4900-v2 tl-wdr6500-v2 mw4530r-v1
629
630 define Device/tl-wpa8630-v1
631   $(Device/tplink-8mlzma)
632   DEVICE_TITLE := TP-LINK TL-WPA8630 v1
633   DEVICE_PACKAGES := kmod-ath10k ath10k-firmware-qca988x
634   BOARDNAME := TL-WPA8630
635   DEVICE_PROFILE := TL-WPA8630
636   TPLINK_HWID := 0x86300001
637 endef
638 TARGET_DEVICES += tl-wpa8630-v1
639
640 define Device/tl-wr1041n-v2
641   $(Device/tplink-4mlzma)
642   DEVICE_TITLE := TP-LINK TL-WR1041N v2
643   BOARDNAME := TL-WR1041N-v2
644   DEVICE_PROFILE := TLWR1041
645   TPLINK_HWID := 0x10410002
646 endef
647 TARGET_DEVICES += tl-wr1041n-v2
648
649 define Device/tl-wr1043nd-v1
650   $(Device/tplink-8m)
651   DEVICE_TITLE := TP-LINK TL-WR1043N/ND v1
652   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
653   BOARDNAME := TL-WR1043ND
654   DEVICE_PROFILE := TLWR1043
655   TPLINK_HWID := 0x10430001
656 endef
657
658 define Device/tl-wr1043nd-v2
659   $(Device/tplink-8mlzma)
660   DEVICE_TITLE := TP-LINK TL-WR1043N/ND v2
661   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
662   BOARDNAME := TL-WR1043ND-v2
663   DEVICE_PROFILE := TLWR1043
664   TPLINK_HWID := 0x10430002
665 endef
666
667 define Device/tl-wr1043nd-v3
668   $(Device/tl-wr1043nd-v2)
669   DEVICE_TITLE := TP-LINK TL-WR1043N/ND v3
670   TPLINK_HWID := 0x10430003
671 endef
672
673 define Device/tl-wr1043nd-v4
674   $(Device/tplink)
675   DEVICE_TITLE := TP-LINK TL-WR1043N/ND v4
676   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
677   BOARDNAME := TL-WR1043ND-v4
678   DEVICE_PROFILE := TLWR1043
679   TPLINK_HWID :=  0x10430004
680   TPLINK_FLASHLAYOUT := 16Msafeloader
681   MTDPARTS := spi0.0:128k(u-boot)ro,1536k(kernel),14016k(rootfs),128k(product-info)ro,320k(config)ro,64k(partition-table)ro,128k(logs)ro,64k(ART)ro,15552k@0x20000(firmware)
682   IMAGE_SIZE := 15552k
683   TPLINK_BOARD_NAME := TLWR1043NDV4
684   KERNEL := kernel-bin | patch-cmdline | lzma | mktplinkfw-combined
685   IMAGES := sysupgrade.bin factory.bin
686   IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade
687   IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
688 endef
689
690 define Device/tl-wr2543-v1
691   $(Device/tplink-8mlzma)
692   DEVICE_TITLE := TP-LINK TL-WR2543N/ND v1
693   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
694   BOARDNAME := TL-WR2543N
695   DEVICE_PROFILE := TLWR2543
696   TPLINK_HWID := 0x25430001
697   IMAGE/sysupgrade.bin := append-rootfs | mktplinkfw sysupgrade -v 3.13.99
698   IMAGE/factory.bin := append-rootfs | mktplinkfw factory -v 3.13.99
699 endef
700 TARGET_DEVICES += tl-wr1043nd-v1 tl-wr1043nd-v2 tl-wr1043nd-v3 tl-wr1043nd-v4 tl-wr2543-v1
701
702 define Device/tl-wr703n-v1
703   $(Device/tplink-4mlzma)
704   DEVICE_TITLE := TP-LINK TL-WR703N v1
705   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
706   BOARDNAME := TL-WR703N
707   DEVICE_PROFILE := TLWR703
708   TPLINK_HWID := 0x07030101
709   CONSOLE := ttyATH0,115200
710 endef
711
712 define Device/tl-wr710n-v1
713   $(Device/tplink-8mlzma)
714   DEVICE_TITLE := TP-LINK TL-WR710N v1
715   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
716   BOARDNAME := TL-WR710N
717   DEVICE_PROFILE := TLWR710
718   TPLINK_HWID := 0x07100001
719   CONSOLE := ttyATH0,115200
720 endef
721
722 define Device/tl-wr710n-v2
723   $(Device/tplink-4mlzma)
724   DEVICE_TITLE := TP-LINK TL-WR710N v2
725   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
726   BOARDNAME := TL-WR710N
727   DEVICE_PROFILE := TLWR710
728   TPLINK_HWID := 0x07100002
729   CONSOLE := ttyATH0,115200
730 endef
731
732 define Device/tl-wr710n-v2.1
733   $(Device/tl-wr710n-v1)
734   DEVICE_TITLE := TP-LINK TL-WR710N v2.1
735   TPLINK_HWID := 0x07100002
736   TPLINK_HWREV := 0x00000002
737 endef
738
739 define Device/tl-wr720n-v3
740   $(Device/tplink-4mlzma)
741   DEVICE_TITLE := TP-LINK TL-WR720N v3
742   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
743   BOARDNAME := TL-WR720N-v3
744   DEVICE_PROFILE := TLWR720
745   TPLINK_HWID := 0x07200103
746   CONSOLE := ttyATH0,115200
747 endef
748
749 define Device/tl-wr720n-v4
750   $(Device/tl-wr720n-v3)
751   DEVICE_TITLE := TP-LINK TL-WR720N v4
752   TPLINK_HWID := 0x07200104
753 endef
754 TARGET_DEVICES += tl-wr703n-v1 tl-wr710n-v1 tl-wr710n-v2 tl-wr710n-v2.1 tl-wr720n-v3 tl-wr720n-v4
755
756 define Device/tl-wr740n-v1
757   $(Device/tplink-4m)
758   DEVICE_TITLE := TP-LINK TL-WR740N/ND v1
759   BOARDNAME := TL-WR741ND
760   DEVICE_PROFILE := TLWR740
761   TPLINK_HWID := 0x07400001
762 endef
763
764 define Device/tl-wr740n-v3
765   $(Device/tl-wr740n-v1)
766   DEVICE_TITLE := TP-LINK TL-WR740N/ND v3
767   TPLINK_HWID := 0x07400003
768 endef
769
770 define Device/tl-wr740n-v4
771   $(Device/tplink-4mlzma)
772   DEVICE_TITLE := TP-LINK TL-WR740N/ND v4
773   BOARDNAME := TL-WR741ND-v4
774   DEVICE_PROFILE := TLWR740
775   TPLINK_HWID := 0x07400004
776   CONSOLE := ttyATH0,115200
777 endef
778
779 define Device/tl-wr740n-v5
780   $(Device/tl-wr740n-v4)
781   DEVICE_TITLE := TP-LINK TL-WR740N/ND v5
782   TPLINK_HWID := 0x07400005
783 endef
784
785 define Device/tl-wr740n-v6
786   $(Device/tplink-4mlzma)
787   DEVICE_TITLE := TP-LINK TL-WR740N/ND v6
788   BOARDNAME := TL-WR740N-v6
789   DEVICE_PROFILE := TLWR740
790   TPLINK_HWID := 0x07400006
791 endef
792 TARGET_DEVICES += tl-wr740n-v1 tl-wr740n-v3 tl-wr740n-v4 tl-wr740n-v5 tl-wr740n-v6
793
794 define Device/tl-wr741nd-v1
795   $(Device/tplink-4m)
796   DEVICE_TITLE := TP-LINK TL-WR741N/ND v1
797   BOARDNAME := TL-WR741ND
798   DEVICE_PROFILE := TLWR741
799   TPLINK_HWID := 0x07410001
800 endef
801
802 define Device/tl-wr741nd-v2
803   $(Device/tl-wr741nd-v1)
804   DEVICE_TITLE := TP-LINK TL-WR741N/ND v2
805 endef
806
807 define Device/tl-wr741nd-v4
808   $(Device/tplink-4mlzma)
809   DEVICE_TITLE := TP-LINK TL-WR741N/ND v4
810   BOARDNAME := TL-WR741ND-v4
811   DEVICE_PROFILE := TLWR741
812   TPLINK_HWID := 0x07410004
813   CONSOLE := ttyATH0,115200
814 endef
815
816 define Device/tl-wr741nd-v5
817   $(Device/tl-wr741nd-v4)
818   DEVICE_TITLE := TP-LINK TL-WR741N/ND v5
819   TPLINK_HWID := 0x07400005
820 endef
821
822 define Device/tl-wr743nd-v1
823   $(Device/tplink-4m)
824   DEVICE_TITLE := TP-LINK TL-WR743N/ND v1
825   BOARDNAME := TL-WR741ND
826   DEVICE_PROFILE := TLWR743
827   TPLINK_HWID := 0x07430001
828 endef
829
830 define Device/tl-wr743nd-v2
831   $(Device/tl-wr741nd-v4)
832   DEVICE_TITLE := TP-LINK TL-WR743N/ND v2
833   DEVICE_PROFILE := TLWR743
834   TPLINK_HWID := 0x07430002
835 endef
836 TARGET_DEVICES += tl-wr741nd-v1 tl-wr741nd-v2 tl-wr741nd-v4 tl-wr741nd-v5 tl-wr743nd-v1 tl-wr743nd-v2
837
838 define Device/tl-wr802n-v1
839   $(Device/tplink-4mlzma)
840   DEVICE_TITLE := TP-LINK TL-WR802N v1
841   BOARDNAME := TL-WR802N-v1
842   DEVICE_PROFILE := TLWR802
843   TPLINK_HWID := 0x08020001
844   TPLINK_HWREV := 1
845 endef
846
847 define Device/tl-wr802n-v2
848   $(Device/tplink-4mlzma)
849   DEVICE_TITLE := TP-LINK TL-WR802N v2
850   BOARDNAME := TL-WR802N-v2
851   DEVICE_PROFILE := TLWR802
852   TPLINK_HWID := 0x08020002
853   TPLINK_HWREV := 2
854   IMAGES += factory-us.bin factory-eu.bin
855   IMAGE/factory-us.bin := append-rootfs | mktplinkfw factory -C US
856   IMAGE/factory-eu.bin := append-rootfs | mktplinkfw factory -C EU
857 endef
858
859 define Device/tl-wr810n-v1
860   $(Device/tplink-8mlzma)
861   DEVICE_TITLE := TP-LINK TL-WR810N v1
862   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
863   BOARDNAME := TL-WR810N
864   DEVICE_PROFILE := TLWR810
865   TPLINK_HWID := 0x08100001
866 endef
867
868 define Device/tl-wr840n-v2
869   $(Device/tplink-4mlzma)
870   DEVICE_TITLE := TP-LINK TL-WR840N v2
871   BOARDNAME := TL-WR840N-v2
872   DEVICE_PROFILE := TLWR840
873   TPLINK_HWID := 0x08400002
874   IMAGES += factory-eu.bin
875   IMAGE/factory-eu.bin := append-rootfs | mktplinkfw factory -C EU
876 endef
877
878 define Device/tl-wr840n-v3
879   $(Device/tl-wr840n-v2)
880   DEVICE_TITLE := TP-LINK TL-WR840N v3
881   BOARDNAME := TL-WR840N-v3
882   TPLINK_HWID := 0x08400003
883 endef
884 TARGET_DEVICES += tl-wr802n-v1 tl-wr802n-v2 tl-wr810n-v1 tl-wr840n-v2 tl-wr840n-v3
885
886 define Device/tl-wr841-v1.5
887   $(Device/tplink-4m)
888   DEVICE_TITLE := TP-LINK TL-WR841N/ND v1.5
889   BOARDNAME := TL-WR841N-v1.5
890   DEVICE_PROFILE := TLWR841
891   TPLINK_HWID := 0x08410002
892   TPLINK_HWREV := 2
893 endef
894
895 define Device/tl-wr841-v3
896   $(Device/tplink-4m)
897   DEVICE_TITLE := TP-LINK TL-WR841N/ND v3
898   BOARDNAME := TL-WR941ND
899   DEVICE_PROFILE := TLWR841
900   TPLINK_HWID := 0x08410003
901   TPLINK_HWREV := 3
902 endef
903
904 define Device/tl-wr841-v5
905   $(Device/tplink-4m)
906   DEVICE_TITLE := TP-LINK TL-WR841N/ND v5
907   BOARDNAME := TL-WR741ND
908   DEVICE_PROFILE := TLWR841
909   TPLINK_HWID := 0x08410005
910 endef
911
912 define Device/tl-wr841-v7
913   $(Device/tplink-4m)
914   DEVICE_TITLE := TP-LINK TL-WR841N/ND v7
915   BOARDNAME := TL-WR841N-v7
916   DEVICE_PROFILE := TLWR841
917   TPLINK_HWID := 0x08410007
918 endef
919
920 define Device/tl-wr841-v8
921   $(Device/tplink-4mlzma)
922   DEVICE_TITLE := TP-LINK TL-WR841N/ND v8
923   BOARDNAME := TL-WR841N-v8
924   DEVICE_PROFILE := TLWR841
925   TPLINK_HWID := 0x08410008
926 endef
927
928 define Device/tl-wr841-v9
929   $(Device/tplink-4mlzma)
930   DEVICE_TITLE := TP-LINK TL-WR841N/ND v9
931   BOARDNAME := TL-WR841N-v9
932   DEVICE_PROFILE := TLWR841
933   TPLINK_HWID := 0x08410009
934 endef
935
936 define Device/tl-wr841-v10
937   $(Device/tl-wr841-v9)
938   DEVICE_TITLE := TP-LINK TL-WR841N/ND v10
939   TPLINK_HWID := 0x08410010
940 endef
941
942 define Device/tl-wr841-v11
943   $(Device/tplink-4mlzma)
944   DEVICE_TITLE := TP-LINK TL-WR841N/ND v11
945   BOARDNAME := TL-WR841N-v11
946   DEVICE_PROFILE := TLWR841
947   TPLINK_HWID := 0x08410011
948   IMAGES += factory-us.bin factory-eu.bin
949   IMAGE/factory-us.bin := append-rootfs | mktplinkfw factory -C US
950   IMAGE/factory-eu.bin := append-rootfs | mktplinkfw factory -C EU
951 endef
952
953 define Device/tl-wr841-v12
954   $(Device/tl-wr841-v11)
955   DEVICE_TITLE := TP-LINK TL-WR841N/ND v12
956   TPLINK_HWID := 0x08410012
957 endef
958 TARGET_DEVICES += tl-wr841-v1.5 tl-wr841-v3 tl-wr841-v5 tl-wr841-v7 tl-wr841-v8 tl-wr841-v9 tl-wr841-v10 tl-wr841-v11 tl-wr841-v12
959
960 define Device/tl-wr842n-v1
961   $(Device/tplink-8m)
962   DEVICE_TITLE := TP-LINK TL-WR842N/ND v1
963   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
964   BOARDNAME := TL-MR3420
965   DEVICE_PROFILE := TLWR842
966   TPLINK_HWID := 0x08420001
967 endef
968
969 define Device/tl-wr842n-v2
970   $(Device/tplink-8mlzma)
971   DEVICE_TITLE := TP-LINK TL-WR842N/ND v2
972   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
973   BOARDNAME := TL-WR842N-v2
974   DEVICE_PROFILE := TLWR842
975   TPLINK_HWID := 0x8420002
976 endef
977
978 define Device/tl-wr842n-v3
979   $(Device/tplink-16mlzma)
980   DEVICE_TITLE := TP-LINK TL-WR842N/ND v3
981   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
982   BOARDNAME := TL-WR842N-v3
983   DEVICE_PROFILE := TLWR842
984   TPLINK_HWID := 0x08420003
985 endef
986
987 define Device/tl-wr843nd-v1
988   $(Device/tplink-4mlzma)
989   DEVICE_TITLE := TP-LINK TL-WR843N/ND v1
990   BOARDNAME := TL-WR841N-v8
991   DEVICE_PROFILE := TLWR843
992   TPLINK_HWID := 0x08430001
993 endef
994
995 define Device/tl-wr847n-v8
996   $(Device/tplink-4mlzma)
997   DEVICE_TITLE := TP-LINK TL-WR847N/ND v8
998   BOARDNAME := TL-WR841N-v8
999   DEVICE_PROFILE := TLWR841
1000   TPLINK_HWID := 0x08470008
1001 endef
1002 TARGET_DEVICES += tl-wr842n-v1 tl-wr842n-v2 tl-wr842n-v3 tl-wr843nd-v1 tl-wr847n-v8
1003
1004 define Device/tl-wr940n-v4
1005   $(Device/tplink-4mlzma)
1006   DEVICE_TITLE := TP-LINK TL-WR940N v4
1007   BOARDNAME := TL-WR940N-v4
1008   DEVICE_PROFILE := TLWR941
1009   TPLINK_HWID := 0x09400004
1010   IMAGES += factory-us.bin factory-eu.bin
1011   IMAGE/factory-us.bin := append-rootfs | mktplinkfw factory -C US
1012   IMAGE/factory-eu.bin := append-rootfs | mktplinkfw factory -C EU
1013 endef
1014
1015 define Device/tl-wr941nd-v2
1016   $(Device/tplink-4m)
1017   DEVICE_TITLE := TP-LINK TL-WR941N/ND v2
1018   BOARDNAME := TL-WR941ND
1019   DEVICE_PROFILE := TLWR941
1020   TPLINK_HWID := 0x09410002
1021   TPLINK_HWREV := 2
1022 endef
1023
1024 define Device/tl-wr941nd-v3
1025   $(Device/tl-wr941nd-v2)
1026   DEVICE_TITLE := TP-LINK TL-WR941N/ND v3
1027 endef
1028
1029 define Device/tl-wr941nd-v4
1030   $(Device/tplink-4m)
1031   DEVICE_TITLE := TP-LINK TL-WR941N/ND v4
1032   BOARDNAME := TL-WR741ND
1033   DEVICE_PROFILE := TLWR941
1034   TPLINK_HWID := 0x09410004
1035 endef
1036
1037 define Device/tl-wr941nd-v5
1038   $(Device/tplink-4mlzma)
1039   DEVICE_TITLE := TP-LINK TL-WR941N/ND v5
1040   BOARDNAME := TL-WR941ND-v5
1041   DEVICE_PROFILE := TLWR941
1042   TPLINK_HWID := 0x09410005
1043 endef
1044
1045 define Device/tl-wr941nd-v6
1046   $(Device/tplink-4mlzma)
1047   DEVICE_TITLE := TP-LINK TL-WR941N/ND v6
1048   BOARDNAME := TL-WR941ND-v6
1049   DEVICE_PROFILE := TLWR941
1050   TPLINK_HWID := 0x09410006
1051 endef
1052
1053 # Chinese version (unlike European) is similar to the TL-WDR3500
1054 define Device/tl-wr941nd-v6-cn
1055   $(Device/tplink-4mlzma)
1056   DEVICE_TITLE := TP-LINK TL-WR941N/ND v6 (CN)
1057   BOARDNAME := TL-WDR3500
1058   DEVICE_PROFILE := TLWR941
1059   TPLINK_HWID := 0x09410006
1060 endef
1061
1062 define Device/tl-wr942n-v1
1063   DEVICE_TITLE := TP-LINK TL-WR942N v1
1064   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
1065   BOARDNAME := TL-WR942N-V1
1066   TPLINK_BOARD_NAME := TLWR942NV1
1067   DEVICE_PROFILE := TLWR942
1068   IMAGE_SIZE := 14464k
1069   KERNEL := kernel-bin | patch-cmdline | lzma | uImageArcher lzma
1070   IMAGES := sysupgrade.bin factory.bin
1071   IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade
1072   IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
1073   MTDPARTS := spi0.0:128k(u-boot)ro,1344k(kernel),13120k(rootfs),64k(product-info)ro,64k(partition-table)ro,256k(oem-config)ro,1344k(oem-vars)ro,64k(ART)ro,14464k@0x20000(firmware)
1074 endef
1075 TARGET_DEVICES += tl-wr940n-v4 tl-wr941nd-v2 tl-wr941nd-v3 tl-wr941nd-v4 tl-wr941nd-v5 tl-wr941nd-v6 tl-wr941nd-v6-cn tl-wr942n-v1