diff --git a/target/linux/ath79/image/common-tp-link.mk b/target/linux/ath79/image/common-tp-link.mk
index a9fccd0fe69f2fa5ef4b76ba4b2b85c39c8c6a7f..cfc574e4fbe7151acf59748a75f9d48091ce510e 100644
--- a/target/linux/ath79/image/common-tp-link.mk
+++ b/target/linux/ath79/image/common-tp-link.mk
@@ -1,5 +1,5 @@
 DEVICE_VARS += TPLINK_HWID TPLINK_HWREV TPLINK_FLASHLAYOUT TPLINK_HEADER_VERSION
-DEVICE_VARS += TPLINK_BOARD_ID
+DEVICE_VARS += TPLINK_BOARD_ID TPLINK_HWREVADD TPLINK_HVERSION
 
 define Build/uImageArcher
 	mkimage -A $(LINUX_KARCH) \
@@ -21,6 +21,17 @@ define Device/tplink-v1
   IMAGE/factory.bin := tplink-v1-image factory
 endef
 
+define Device/tplink-v2
+  DEVICE_VENDOR := TP-Link
+  TPLINK_HWREV := 0x1
+  TPLINK_HWREVADD := 0x0
+  TPLINK_HVERSION := 3
+  KERNEL := kernel-bin | append-dtb | lzma
+  KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | tplink-v2-header
+  IMAGE/sysupgrade.bin := tplink-v2-image -s | append-metadata | \
+	check-size $$$$(IMAGE_SIZE)
+endef
+
 define Device/tplink-nolzma
   $(Device/tplink-v1)
   LOADER_FLASH_OFFS := 0x22000
diff --git a/target/linux/ath79/image/generic-tp-link.mk b/target/linux/ath79/image/generic-tp-link.mk
index f1a603dc6d666d880eb5c5a38b7752837d8a40f6..2a2384762bd81bae10f4ab821c3bce97af4ee608 100644
--- a/target/linux/ath79/image/generic-tp-link.mk
+++ b/target/linux/ath79/image/generic-tp-link.mk
@@ -190,8 +190,8 @@ endef
 TARGET_DEVICES += tplink_archer-c7-v5
 
 define Device/tplink_archer-d50-v1
+  $(Device/tplink-v2)
   SOC := qca9531
-  DEVICE_VENDOR := TP-Link
   DEVICE_MODEL := Archer D50
   DEVICE_VARIANT := v1
   DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport \
@@ -201,14 +201,8 @@ define Device/tplink_archer-d50-v1
   TPLINK_HWID := 0xC1200001
   TPLINK_HWREV := 0x00000046
   TPLINK_FLASHLAYOUT := 8Mqca
-  TPLINK_HWREVADD := 0x00000000
-  TPLINK_HVERSION := 3
-  KERNEL := kernel-bin | append-dtb | lzma
   KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | \
 	tplink-v2-header -s -V "ver. 1.0"
-  IMAGES := sysupgrade.bin
-  IMAGE/sysupgrade.bin := tplink-v2-image -s -V "ver. 2.0" | append-metadata | \
-	check-size $$$$(IMAGE_SIZE)
 endef
 TARGET_DEVICES += tplink_archer-d50-v1