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