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