firmware-utils: mktplinkfw: rework combined image option
[openwrt/openwrt.git] / target / linux / ar71xx / image / tp-link.mk
index b89797e53b2b987e47b6f45358f092e46e521267..5a74197dd951e381947bac5bbaa2beb77fc13eae 100644 (file)
@@ -1,4 +1,4 @@
-DEVICE_VARS += LOADER_FLASH_OFFS TPLINK_BOARD_NAME TPLINK_FLASHLAYOUT TPLINK_HEADER_VERSION TPLINK_HWID TPLINK_HWREV
+DEVICE_VARS += LOADER_FLASH_OFFS TPLINK_BOARD_ID TPLINK_FLASHLAYOUT TPLINK_HEADER_VERSION TPLINK_HWID TPLINK_HWREV
 
 define Build/copy-file
        cat "$(1)" > "$@"
@@ -40,11 +40,11 @@ endef
 # -c combined image
 define Build/mktplinkfw-combined
        $(STAGING_DIR_HOST)/bin/mktplinkfw \
-               -H $(TPLINK_HWID) -W $(TPLINK_HWREV) -F $(TPLINK_FLASHLAYOUT) -N OpenWrt -V $(REVISION) $(1) \
-               -m $(TPLINK_HEADER_VERSION) \
+               -H $(TPLINK_HWID) -W $(TPLINK_HWREV) -N OpenWrt -V $(REVISION) $(1) \
+               -L $(KERNEL_LOADADDR) -m $(TPLINK_HEADER_VERSION) \
+               -E $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
                -k $@ \
                -o $@.new \
-               -s -S \
                -c
        @mv $@.new $@
 endef
@@ -118,49 +118,63 @@ define Device/tplink-16mlzma
   IMAGE_SIZE := 15872k
 endef
 
+define Device/archer-cxx
+  KERNEL := kernel-bin | patch-cmdline | lzma | uImageArcher lzma
+  IMAGES := sysupgrade.bin factory.bin
+  IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade | \
+       append-metadata | check-size $$$$(IMAGE_SIZE)
+  IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
+endef
+
 define Device/archer-c25-v1
+  $(Device/archer-cxx)
   DEVICE_TITLE := TP-LINK Archer C25 v1
   DEVICE_PACKAGES := kmod-ath10k ath10k-firmware-qca9887
   BOARDNAME := ARCHER-C25-V1
-  TPLINK_BOARD_NAME := ARCHER-C25-V1
+  TPLINK_BOARD_ID := ARCHER-C25-V1
   DEVICE_PROFILE := ARCHERC25V1
   IMAGE_SIZE := 7808k
   LOADER_TYPE := elf
-  KERNEL := kernel-bin | patch-cmdline | lzma | uImageArcher lzma
-  IMAGES := sysupgrade.bin factory.bin
-  IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade
-  IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
   MTDPARTS := spi0.0:128k(factory-uboot)ro,64k(u-boot)ro,1536k(kernel),6272k(rootfs),128k(config)ro,64k(art)ro,7808k@0x30000(firmware)
+  SUPPORTED_DEVICES := archer-c25-v1
+endef
+
+define Device/archer-c58-v1
+  $(Device/archer-cxx)
+  DEVICE_TITLE := TP-LINK Archer C58 v1
+  DEVICE_PACKAGES := kmod-ath10k
+  BOARDNAME := ARCHER-C58-V1
+  TPLINK_BOARD_ID := ARCHER-C58-V1
+  DEVICE_PROFILE := ARCHERC58V1
+  IMAGE_SIZE := 7936k
+  MTDPARTS := spi0.0:64k(u-boot)ro,64k(mac)ro,1344k(kernel),6592k(rootfs),64k(tplink)ro,64k(art)ro,7936k@0x20000(firmware)
+  SUPPORTED_DEVICES := archer-c58-v1
 endef
 
 define Device/archer-c59-v1
+  $(Device/archer-cxx)
   DEVICE_TITLE := TP-LINK Archer C59 v1
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k ath10k-firmware-qca988x
   BOARDNAME := ARCHER-C59-V1
-  TPLINK_BOARD_NAME := ARCHER-C59-V1
+  TPLINK_BOARD_ID := ARCHER-C59-V1
   DEVICE_PROFILE := ARCHERC59V1
   IMAGE_SIZE := 14528k
-  KERNEL := kernel-bin | patch-cmdline | lzma | uImageArcher lzma
-  IMAGES := sysupgrade.bin factory.bin
-  IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade
-  IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
   MTDPARTS := spi0.0:64k(u-boot)ro,64k(mac)ro,1536k(kernel),12992k(rootfs),1664k(tplink)ro,64k(art)ro,14528k@0x20000(firmware)
+  SUPPORTED_DEVICES := archer-c59-v1
 endef
 
 define Device/archer-c60-v1
+  $(Device/archer-cxx)
   DEVICE_TITLE := TP-LINK Archer C60 v1
   DEVICE_PACKAGES := kmod-ath10k ath10k-firmware-qca988x
   BOARDNAME := ARCHER-C60-V1
-  TPLINK_BOARD_NAME := ARCHER-C60-V1
+  TPLINK_BOARD_ID := ARCHER-C60-V1
   DEVICE_PROFILE := ARCHERC60V1
   IMAGE_SIZE := 7936k
-  KERNEL := kernel-bin | patch-cmdline | lzma | uImageArcher lzma
-  IMAGES := sysupgrade.bin factory.bin
-  IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade
-  IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
   MTDPARTS := spi0.0:64k(u-boot)ro,64k(mac)ro,1344k(kernel),6592k(rootfs),64k(tplink)ro,64k(art)ro,7936k@0x20000(firmware)
+  SUPPORTED_DEVICES := archer-c60-v1
 endef
-TARGET_DEVICES += archer-c25-v1 archer-c59-v1 archer-c60-v1
+TARGET_DEVICES += archer-c25-v1 archer-c58-v1 archer-c59-v1 archer-c60-v1
 
 define Device/archer-c5-v1
   $(Device/tplink-16mlzma)
@@ -218,7 +232,7 @@ define Device/cpe510-520-v1
   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)
   IMAGE_SIZE := 7680k
   BOARDNAME := CPE510
-  TPLINK_BOARD_NAME := CPE510
+  TPLINK_BOARD_ID := CPE510
   DEVICE_PROFILE := CPE510
   LOADER_TYPE := elf
   KERNEL := kernel-bin | patch-cmdline | lzma | loader-kernel
@@ -230,25 +244,22 @@ endef
 define Device/cpe210-220-v1
   $(Device/cpe510-520-v1)
   DEVICE_TITLE := TP-LINK CPE210/220 v1
-  DEVICE_PACKAGES := rssileds
   BOARDNAME := CPE210
-  TPLINK_BOARD_NAME := CPE210
+  TPLINK_BOARD_ID := CPE210
 endef
 
 define Device/wbs210-v1
   $(Device/cpe510-520-v1)
   DEVICE_TITLE := TP-LINK WBS210 v1
-  DEVICE_PACKAGES := rssileds
   BOARDNAME := WBS210
-  TPLINK_BOARD_NAME := WBS210
+  TPLINK_BOARD_ID := WBS210
 endef
 
 define Device/wbs510-v1
   $(Device/cpe510-520-v1)
   DEVICE_TITLE := TP-LINK WBS510 v1
-  DEVICE_PACKAGES := rssileds
   BOARDNAME := WBS510
-  TPLINK_BOARD_NAME := WBS510
+  TPLINK_BOARD_ID := WBS510
 endef
 TARGET_DEVICES += cpe210-220-v1 cpe510-520-v1 wbs210-v1 wbs510-v1
 
@@ -257,7 +268,7 @@ define Device/eap120-v1
   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)
   IMAGE_SIZE := 15872k
   BOARDNAME := EAP120
-  TPLINK_BOARD_NAME := EAP120
+  TPLINK_BOARD_ID := EAP120
   DEVICE_PROFILE := EAP120
   LOADER_TYPE := elf
   KERNEL := kernel-bin | patch-cmdline | lzma | loader-kernel
@@ -273,9 +284,10 @@ define Device/re450-v1
   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)
   IMAGE_SIZE := 7936k
   BOARDNAME := RE450
-  TPLINK_BOARD_NAME := RE450
+  TPLINK_BOARD_ID := RE450
   DEVICE_PROFILE := RE450
   LOADER_TYPE := elf
+  TPLINK_HWID := 0x0
   KERNEL := kernel-bin | patch-cmdline | lzma | mktplinkfw-kernel
   IMAGES := sysupgrade.bin factory.bin
   IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade
@@ -304,13 +316,9 @@ define Device/tl-mr11u-v1
 endef
 
 define Device/tl-mr11u-v2
-  $(Device/tplink-4mlzma)
+  $(Device/tl-mr11u-v1)
   DEVICE_TITLE := TP-LINK TL-MR11U v2
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
-  BOARDNAME := TL-MR11U
-  DEVICE_PROFILE := TLMR11U
   TPLINK_HWID := 0x00110102
-  CONSOLE := ttyATH0,115200
 endef
 
 define Device/tl-mr12u-v1
@@ -324,13 +332,10 @@ define Device/tl-mr12u-v1
 endef
 
 define Device/tl-mr13u-v1
-  $(Device/tplink-4mlzma)
+  $(Device/tl-mr12u-v1)
   DEVICE_TITLE := TP-LINK TL-MR13U v1
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
-  BOARDNAME := TL-MR13U
   DEVICE_PROFILE := TLMR13U
   TPLINK_HWID := 0x00130101
-  CONSOLE := ttyATH0,115200
 endef
 TARGET_DEVICES += tl-mr10u-v1 tl-mr11u-v1 tl-mr11u-v2 tl-mr12u-v1 tl-mr13u-v1
 
@@ -345,23 +350,18 @@ define Device/tl-mr3020-v1
 endef
 
 define Device/tl-mr3040-v1
-  $(Device/tplink-4mlzma)
+  $(Device/tl-mr3020-v1)
   DEVICE_TITLE := TP-LINK TL-MR3040 v1
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   BOARDNAME := TL-MR3040
   DEVICE_PROFILE := TLMR3040
   TPLINK_HWID := 0x30400001
-  CONSOLE := ttyATH0,115200
 endef
 
 define Device/tl-mr3040-v2
-  $(Device/tplink-4mlzma)
+  $(Device/tl-mr3040-v1)
   DEVICE_TITLE := TP-LINK TL-MR3040 v2
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   BOARDNAME := TL-MR3040-v2
-  DEVICE_PROFILE := TLMR3040
   TPLINK_HWID := 0x30400002
-  CONSOLE := ttyATH0,115200
 endef
 
 define Device/tl-mr3220-v1
@@ -513,18 +513,31 @@ define Device/tl-wa850re-v1
   TPLINK_HWID := 0x08500001
 endef
 
-define Device/tl-wa850re-v2
+define Device/tl-wa85xre
   $(Device/tplink)
+  KERNEL := kernel-bin | patch-cmdline | lzma | mktplinkfw-kernel
+  IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade
+  IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
+  MTDPARTS := spi0.0:128k(u-boot)ro,1344k(kernel),2304k(rootfs),256k(config)ro,64k(art)ro,3648k@0x20000(firmware)
+endef
+
+define Device/tl-wa850re-v2
+  $(Device/tl-wa85xre)
   DEVICE_TITLE := TP-LINK TL-WA850RE v2
   DEVICE_PACKAGES := rssileds
   BOARDNAME := TL-WA850RE-V2
   DEVICE_PROFILE := TLWA850
-  TPLINK_BOARD_NAME := TLWA850REV2
+  TPLINK_BOARD_ID := TLWA850REV2
   TPLINK_HWID := 0x08500002
-  KERNEL := kernel-bin | patch-cmdline | lzma | mktplinkfw-kernel
-  IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade
-  IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
-  MTDPARTS := spi0.0:128k(u-boot)ro,1344k(kernel),2304k(rootfs),256k(config)ro,64k(art)ro,3648k@0x20000(firmware)
+endef
+
+define Device/tl-wa855re-v1
+  $(Device/tl-wa85xre)
+  DEVICE_TITLE := TP-LINK TL-WA855RE v1
+  BOARDNAME := TL-WA855RE-v1
+  DEVICE_PROFILE := TLWA855RE
+  TPLINK_HWID := 0x08550001
+  TPLINK_BOARD_ID := TLWA855REV1
 endef
 
 define Device/tl-wa860re-v1
@@ -534,7 +547,7 @@ define Device/tl-wa860re-v1
   DEVICE_PROFILE := TLWA860
   TPLINK_HWID := 0x08600001
 endef
-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
+TARGET_DEVICES += tl-wa801nd-v1 tl-wa801nd-v2 tl-wa801nd-v3 tl-wa830re-v1 tl-wa830re-v2 tl-wa850re-v1 tl-wa850re-v2 tl-wa855re-v1 tl-wa860re-v1
 
 define Device/tl-wa901nd-v1
   $(Device/tplink-4m)
@@ -590,40 +603,29 @@ define Device/tl-wdr3500-v1
 endef
 
 define Device/tl-wdr3600-v1
-  $(Device/tplink-8mlzma)
+  $(Device/tl-wdr3500-v1)
   DEVICE_TITLE := TP-LINK TL-WDR3600 v1
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   BOARDNAME := TL-WDR4300
-  DEVICE_PROFILE := TLWDR4300
   TPLINK_HWID := 0x36000001
   IMAGE/factory.bin := append-rootfs | mktplinkfw factory -C US
 endef
 
 define Device/tl-wdr4300-v1
-  $(Device/tplink-8mlzma)
+  $(Device/tl-wdr3600-v1)
   DEVICE_TITLE := TP-LINK TL-WDR4300 v1
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
-  BOARDNAME := TL-WDR4300
-  DEVICE_PROFILE := TLWDR4300
   TPLINK_HWID := 0x43000001
-  IMAGE/factory.bin := append-rootfs | mktplinkfw factory -C US
 endef
 
 define Device/tl-wdr4300-v1-il
-  $(Device/tplink-8mlzma)
+  $(Device/tl-wdr3500-v1)
   DEVICE_TITLE := TP-LINK TL-WDR4300 v1 (IL)
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   BOARDNAME := TL-WDR4300
-  DEVICE_PROFILE := TLWDR4300
   TPLINK_HWID := 0x43008001
 endef
 
 define Device/tl-wdr4310-v1
-  $(Device/tplink-8mlzma)
+  $(Device/tl-wdr4300-v1-il)
   DEVICE_TITLE := TP-LINK TL-WDR4310 v1
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
-  BOARDNAME := TL-WDR4300
-  DEVICE_PROFILE := TLWDR4300
   TPLINK_HWID := 0x43100001
 endef
 
@@ -693,11 +695,8 @@ define Device/tl-wr1043nd-v2
 endef
 
 define Device/tl-wr1043nd-v3
-  $(Device/tplink-8mlzma)
+  $(Device/tl-wr1043nd-v2)
   DEVICE_TITLE := TP-LINK TL-WR1043N/ND v3
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
-  BOARDNAME := TL-WR1043ND-v2
-  DEVICE_PROFILE := TLWR1043
   TPLINK_HWID := 0x10430003
 endef
 
@@ -708,10 +707,9 @@ define Device/tl-wr1043nd-v4
   BOARDNAME := TL-WR1043ND-v4
   DEVICE_PROFILE := TLWR1043
   TPLINK_HWID :=  0x10430004
-  TPLINK_FLASHLAYOUT := 16Msafeloader
   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)
   IMAGE_SIZE := 15552k
-  TPLINK_BOARD_NAME := TLWR1043NDV4
+  TPLINK_BOARD_ID := TLWR1043NDV4
   KERNEL := kernel-bin | patch-cmdline | lzma | mktplinkfw-combined
   IMAGES := sysupgrade.bin factory.bin
   IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade
@@ -748,6 +746,7 @@ define Device/tl-wr710n-v1
   DEVICE_PROFILE := TLWR710
   TPLINK_HWID := 0x07100001
   CONSOLE := ttyATH0,115200
+  IMAGE/factory.bin := append-rootfs | mktplinkfw factory -C US
 endef
 
 define Device/tl-wr710n-v2
@@ -761,14 +760,10 @@ define Device/tl-wr710n-v2
 endef
 
 define Device/tl-wr710n-v2.1
-  $(Device/tplink-8mlzma)
+  $(Device/tl-wr710n-v1)
   DEVICE_TITLE := TP-LINK TL-WR710N v2.1
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2
-  BOARDNAME := TL-WR710N
-  DEVICE_PROFILE := TLWR710
   TPLINK_HWID := 0x07100002
   TPLINK_HWREV := 0x00000002
-  CONSOLE := ttyATH0,115200
 endef
 
 define Device/tl-wr720n-v3
@@ -782,13 +777,9 @@ define Device/tl-wr720n-v3
 endef
 
 define Device/tl-wr720n-v4
-  $(Device/tplink-4mlzma)
+  $(Device/tl-wr720n-v3)
   DEVICE_TITLE := TP-LINK TL-WR720N v4
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2
-  BOARDNAME := TL-WR720N-v3
-  DEVICE_PROFILE := TLWR720
   TPLINK_HWID := 0x07200104
-  CONSOLE := ttyATH0,115200
 endef
 TARGET_DEVICES += tl-wr703n-v1 tl-wr710n-v1 tl-wr710n-v2 tl-wr710n-v2.1 tl-wr720n-v3 tl-wr720n-v4
 
@@ -801,10 +792,8 @@ define Device/tl-wr740n-v1
 endef
 
 define Device/tl-wr740n-v3
-  $(Device/tplink-4m)
+  $(Device/tl-wr740n-v1)
   DEVICE_TITLE := TP-LINK TL-WR740N/ND v3
-  BOARDNAME := TL-WR741ND
-  DEVICE_PROFILE := TLWR740
   TPLINK_HWID := 0x07400003
 endef
 
@@ -818,12 +807,9 @@ define Device/tl-wr740n-v4
 endef
 
 define Device/tl-wr740n-v5
-  $(Device/tplink-4mlzma)
+  $(Device/tl-wr740n-v4)
   DEVICE_TITLE := TP-LINK TL-WR740N/ND v5
-  BOARDNAME := TL-WR741ND-v4
-  DEVICE_PROFILE := TLWR740
   TPLINK_HWID := 0x07400005
-  CONSOLE := ttyATH0,115200
 endef
 
 define Device/tl-wr740n-v6
@@ -844,11 +830,8 @@ define Device/tl-wr741nd-v1
 endef
 
 define Device/tl-wr741nd-v2
-  $(Device/tplink-4m)
+  $(Device/tl-wr741nd-v1)
   DEVICE_TITLE := TP-LINK TL-WR741N/ND v2
-  BOARDNAME := TL-WR741ND
-  DEVICE_PROFILE := TLWR741
-  TPLINK_HWID := 0x07410001
 endef
 
 define Device/tl-wr741nd-v4
@@ -861,12 +844,9 @@ define Device/tl-wr741nd-v4
 endef
 
 define Device/tl-wr741nd-v5
-  $(Device/tplink-4mlzma)
+  $(Device/tl-wr741nd-v4)
   DEVICE_TITLE := TP-LINK TL-WR741N/ND v5
-  BOARDNAME := TL-WR741ND-v4
-  DEVICE_PROFILE := TLWR741
   TPLINK_HWID := 0x07400005
-  CONSOLE := ttyATH0,115200
 endef
 
 define Device/tl-wr743nd-v1
@@ -878,12 +858,10 @@ define Device/tl-wr743nd-v1
 endef
 
 define Device/tl-wr743nd-v2
-  $(Device/tplink-4mlzma)
+  $(Device/tl-wr741nd-v4)
   DEVICE_TITLE := TP-LINK TL-WR743N/ND v2
-  BOARDNAME := TL-WR741ND-v4
   DEVICE_PROFILE := TLWR743
   TPLINK_HWID := 0x07430002
-  CONSOLE := ttyATH0,115200
 endef
 TARGET_DEVICES += tl-wr741nd-v1 tl-wr741nd-v2 tl-wr741nd-v4 tl-wr741nd-v5 tl-wr743nd-v1 tl-wr743nd-v2
 
@@ -986,10 +964,8 @@ define Device/tl-wr841-v9
 endef
 
 define Device/tl-wr841-v10
-  $(Device/tplink-4mlzma)
+  $(Device/tl-wr841-v9)
   DEVICE_TITLE := TP-LINK TL-WR841N/ND v10
-  BOARDNAME := TL-WR841N-v9
-  DEVICE_PROFILE := TLWR841
   TPLINK_HWID := 0x08410010
 endef
 
@@ -1055,6 +1031,25 @@ define Device/tl-wr847n-v8
 endef
 TARGET_DEVICES += tl-wr842n-v1 tl-wr842n-v2 tl-wr842n-v3 tl-wr843nd-v1 tl-wr847n-v8
 
+define Device/tl-wr902ac-v1
+  DEVICE_TITLE := TP-LINK TL-WR902AC v1
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport \
+       kmod-ath10k ath10k-firmware-qca9887 -swconfig -uboot-envtools
+  BOARDNAME := TL-WR902AC-V1
+  DEVICE_PROFILE := TLWR902
+  TPLINK_BOARD_ID := TL-WR902AC-V1
+  TPLINK_HWID := 0x0
+  SUPPORTED_DEVICES := tl-wr902ac-v1
+  IMAGE_SIZE := 7360k
+  KERNEL := kernel-bin | patch-cmdline | lzma | mktplinkfw-kernel
+  IMAGES += factory.bin
+  IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
+  IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade | \
+       append-metadata | check-size $$$$(IMAGE_SIZE)
+  MTDPARTS := spi0.0:128k(u-boot)ro,7360k(firmware),640k(tplink)ro,64k(art)ro
+endef
+TARGET_DEVICES += tl-wr902ac-v1
+
 define Device/tl-wr940n-v4
   $(Device/tplink-4mlzma)
   DEVICE_TITLE := TP-LINK TL-WR940N v4
@@ -1076,12 +1071,8 @@ define Device/tl-wr941nd-v2
 endef
 
 define Device/tl-wr941nd-v3
-  $(Device/tplink-4m)
+  $(Device/tl-wr941nd-v2)
   DEVICE_TITLE := TP-LINK TL-WR941N/ND v3
-  BOARDNAME := TL-WR941ND
-  DEVICE_PROFILE := TLWR941
-  TPLINK_HWID := 0x09410002
-  TPLINK_HWREV := 2
 endef
 
 define Device/tl-wr941nd-v4
@@ -1121,13 +1112,15 @@ define Device/tl-wr942n-v1
   DEVICE_TITLE := TP-LINK TL-WR942N v1
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   BOARDNAME := TL-WR942N-V1
-  TPLINK_BOARD_NAME := TLWR942NV1
+  TPLINK_BOARD_ID := TLWR942NV1
   DEVICE_PROFILE := TLWR942
   IMAGE_SIZE := 14464k
   KERNEL := kernel-bin | patch-cmdline | lzma | uImageArcher lzma
   IMAGES := sysupgrade.bin factory.bin
-  IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade
+  IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade | \
+       append-metadata | check-size $$$$(IMAGE_SIZE)
   IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
   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)
+  SUPPORTED_DEVICES := tl-wr942n-v1
 endef
 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