diff --git a/target/linux/lantiq/image/Makefile b/target/linux/lantiq/image/Makefile
index 4cacaccba9..a583dd09d7 100644
--- a/target/linux/lantiq/image/Makefile
+++ b/target/linux/lantiq/image/Makefile
@@ -136,6 +136,34 @@ endif
 
 ifeq ($(SUBTARGET),xway_legacy)
 
+define Device/arcadyan_arv4518pwr01
+  DEVICE_VENDOR := Arcadyan
+  DEVICE_MODEL := ARV4518PWR01
+  IMAGE_SIZE := 3776k
+  DEVICE_DTS := ARV4518PWR01
+  DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
+	kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
+	kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \
+	ltq-adsl-app ppp-mod-pppoa \
+	kmod-ath5k wpad-mini
+  SUPPORTED_DEVICES += ARV4518PWR01
+endef
+TARGET_DEVICES += arcadyan_arv4518pwr01
+
+define Device/arcadyan_arv4518pwr01a
+  DEVICE_VENDOR := Arcadyan
+  DEVICE_MODEL := ARV4518PWR01A
+  IMAGE_SIZE := 3776k
+  DEVICE_DTS := ARV4518PWR01A
+  DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
+	kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
+	kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \
+	ltq-adsl-app ppp-mod-pppoa \
+	kmod-ath5k wpad-basic
+  SUPPORTED_DEVICES += ARV4518PWR01A
+endef
+TARGET_DEVICES += arcadyan_arv4518pwr01a
+
 define Device/arcadyan_arv4520pw
   DEVICE_VENDOR := Arcadyan
   DEVICE_MODEL := ARV4520PW
@@ -186,81 +214,12 @@ define Device/arcadyan_arv452cqw
 endef
 TARGET_DEVICES += arcadyan_arv452cqw
 
-define Device/arcadyan_arv4518pwr01
-  DEVICE_VENDOR := Arcadyan
-  DEVICE_MODEL := ARV4518PWR01
-  IMAGE_SIZE := 3776k
-  DEVICE_DTS := ARV4518PWR01
-  DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
-	kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
-	kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \
-	ltq-adsl-app ppp-mod-pppoa \
-	kmod-ath5k wpad-mini
-  SUPPORTED_DEVICES += ARV4518PWR01
-endef
-TARGET_DEVICES += arcadyan_arv4518pwr01
-
-define Device/arcadyan_arv4518pwr01a
-  DEVICE_VENDOR := Arcadyan
-  DEVICE_MODEL := ARV4518PWR01A
-  IMAGE_SIZE := 3776k
-  DEVICE_DTS := ARV4518PWR01A
-  DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
-	kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
-	kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \
-	ltq-adsl-app ppp-mod-pppoa \
-	kmod-ath5k wpad-basic
-  SUPPORTED_DEVICES += ARV4518PWR01A
-endef
-TARGET_DEVICES += arcadyan_arv4518pwr01a
-
 endif
 
 ifeq ($(SUBTARGET),xway)
 
 # Danube
 
-define Device/bt_homehub-v2b
-  $(Device/NAND)
-  DEVICE_VENDOR := British Telecom
-  DEVICE_MODEL := Home Hub 2
-  DEVICE_VARIANT := Type B
-  BOARD_NAME := BTHOMEHUBV2B
-  DEVICE_DTS := BTHOMEHUBV2B
-  DEVICE_PACKAGES := kmod-usb-dwc2 \
-	kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
-	kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \
-	kmod-ltq-deu-danube \
-	ltq-adsl-app ppp-mod-pppoa \
-	kmod-ath9k kmod-owl-loader wpad-basic
-  SUPPORTED_DEVICES += BTHOMEHUBV2B
-endef
-TARGET_DEVICES += bt_homehub-v2b
-
-define Device/lantiq_easy50712
-  DEVICE_VENDOR := Lantiq
-  DEVICE_MODEL := Danube (EASY50712)
-  DEVICE_DTS := EASY50712
-  IMAGE_SIZE := 3776k
-endef
-TARGET_DEVICES += lantiq_easy50712
-
-define Device/audiocodes_mp-252
-  DEVICE_VENDOR := AudioCodes
-  DEVICE_MODEL := MediaPack MP-252
-  IMAGE_SIZE := 14848k
-  DEVICE_DTS := ACMP252
-  DEVICE_PACKAGES :=  kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
-	kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \
-	kmod-ltq-tapi kmod-ltq-vmmc \
-	kmod-usb-ledtrig-usbport kmod-usb-dwc2 \
-	kmod-rt2800-pci \
-	ltq-adsl-app ppp-mod-pppoa \
-	wpad-basic
-  SUPPORTED_DEVICES += ACMP252
-endef
-TARGET_DEVICES += audiocodes_mp-252
-
 define Device/arcadyan_arv4510pw
   DEVICE_VENDOR := Arcadyan
   DEVICE_MODEL := ARV4510PW
@@ -278,22 +237,6 @@ define Device/arcadyan_arv4510pw
 endef
 TARGET_DEVICES += arcadyan_arv4510pw
 
-define Device/arcadyan_arv7525pw
-  DEVICE_VENDOR := Arcadyan
-  DEVICE_MODEL := ARV7525PW
-  DEVICE_ALT0_VENDOR := Telekom
-  DEVICE_ALT0_MODEL := Speedport W303V
-  DEVICE_ALT0_VARIANT := Typ A
-  IMAGE_SIZE := 3776k
-  DEVICE_DTS := ARV4510PW
-  DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic \
-	kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
-	kmod-ltq-adsl-danube-fw-b kmod-ltq-atm-danube \
-	ltq-adsl-app ppp-mod-pppoa -swconfig
-  SUPPORTED_DEVICES += ARV4510PW
-endef
-TARGET_DEVICES += arcadyan_arv7525pw
-
 define Device/arcadyan_arv4519pw
   DEVICE_VENDOR := Arcadyan
   DEVICE_MODEL := ARV4519PW
@@ -376,6 +319,22 @@ define Device/arcadyan_arv7519pw
 endef
 TARGET_DEVICES += arcadyan_arv7519pw
 
+define Device/arcadyan_arv7525pw
+  DEVICE_VENDOR := Arcadyan
+  DEVICE_MODEL := ARV7525PW
+  DEVICE_ALT0_VENDOR := Telekom
+  DEVICE_ALT0_MODEL := Speedport W303V
+  DEVICE_ALT0_VARIANT := Typ A
+  IMAGE_SIZE := 3776k
+  DEVICE_DTS := ARV4510PW
+  DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic \
+	kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
+	kmod-ltq-adsl-danube-fw-b kmod-ltq-atm-danube \
+	ltq-adsl-app ppp-mod-pppoa -swconfig
+  SUPPORTED_DEVICES += ARV4510PW
+endef
+TARGET_DEVICES += arcadyan_arv7525pw
+
 define Device/arcadyan_arv752dpw
   DEVICE_VENDOR := Arcadyan
   DEVICE_MODEL := ARV752DPW
@@ -426,6 +385,47 @@ define Device/arcadyan_arv8539pw22
 endef
 TARGET_DEVICES += arcadyan_arv8539pw22
 
+define Device/audiocodes_mp-252
+  DEVICE_VENDOR := AudioCodes
+  DEVICE_MODEL := MediaPack MP-252
+  IMAGE_SIZE := 14848k
+  DEVICE_DTS := ACMP252
+  DEVICE_PACKAGES :=  kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
+	kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \
+	kmod-ltq-tapi kmod-ltq-vmmc \
+	kmod-usb-ledtrig-usbport kmod-usb-dwc2 \
+	kmod-rt2800-pci \
+	ltq-adsl-app ppp-mod-pppoa \
+	wpad-basic
+  SUPPORTED_DEVICES += ACMP252
+endef
+TARGET_DEVICES += audiocodes_mp-252
+
+define Device/bt_homehub-v2b
+  $(Device/NAND)
+  DEVICE_VENDOR := British Telecom
+  DEVICE_MODEL := Home Hub 2
+  DEVICE_VARIANT := Type B
+  BOARD_NAME := BTHOMEHUBV2B
+  DEVICE_DTS := BTHOMEHUBV2B
+  DEVICE_PACKAGES := kmod-usb-dwc2 \
+	kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
+	kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \
+	kmod-ltq-deu-danube \
+	ltq-adsl-app ppp-mod-pppoa \
+	kmod-ath9k kmod-owl-loader wpad-basic
+  SUPPORTED_DEVICES += BTHOMEHUBV2B
+endef
+TARGET_DEVICES += bt_homehub-v2b
+
+define Device/lantiq_easy50712
+  DEVICE_VENDOR := Lantiq
+  DEVICE_MODEL := Danube (EASY50712)
+  DEVICE_DTS := EASY50712
+  IMAGE_SIZE := 3776k
+endef
+TARGET_DEVICES += lantiq_easy50712
+
 define Device/siemens_gigaset-sx76x
   DEVICE_VENDOR := Siemens
   DEVICE_MODEL := Gigaset sx76x
@@ -443,6 +443,35 @@ TARGET_DEVICES += siemens_gigaset-sx76x
 
 # AR9
 
+define Device/avm_fritz7312
+  $(Device/AVM)
+  DEVICE_MODEL := FRITZ!Box 7312
+  DEVICE_DTS := FRITZ7312
+  IMAGE_SIZE := 15744k
+  DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic \
+	kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \
+	kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \
+	ltq-adsl-app ppp-mod-pppoa \
+	kmod-ltq-deu-ar9 -swconfig
+endef
+TARGET_DEVICES += avm_fritz7312
+
+define Device/avm_fritz7320
+  $(Device/AVM)
+  DEVICE_MODEL := FRITZ!Box 7320
+  DEVICE_ALT0_VENDOR := 1&1
+  DEVICE_ALT0_MODEL := HomeServer
+  DEVICE_DTS := FRITZ7320
+  IMAGE_SIZE := 15744k
+  DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic \
+	kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \
+	kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \
+	ltq-adsl-app ppp-mod-pppoa \
+	kmod-ltq-deu-ar9 kmod-usb-dwc2 -swconfig
+  SUPPORTED_DEVICES += FRITZ7320
+endef
+TARGET_DEVICES += avm_fritz7320
+
 define Device/bt_homehub-v3a
   $(Device/NAND)
   DEVICE_VENDOR := British Telecom
@@ -461,6 +490,36 @@ define Device/bt_homehub-v3a
 endef
 TARGET_DEVICES += bt_homehub-v3a
 
+define Device/buffalo_wbmr-hp-g300h-a
+  DEVICE_VENDOR := Buffalo
+  DEVICE_MODEL := WBMR-HP-G300H
+  DEVICE_VARIANT := A
+  IMAGE_SIZE := 31488k
+  DEVICE_DTS := WBMR
+  DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
+	kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \
+	kmod-ltq-adsl-ar9-fw-a kmod-ltq-atm-ar9 \
+	ltq-adsl-app ppp-mod-pppoa \
+	kmod-ath9k kmod-owl-loader wpad-basic
+  SUPPORTED_DEVICES := WBMR buffalo,wbmr-hp-g300h
+endef
+TARGET_DEVICES += buffalo_wbmr-hp-g300h-a
+
+define Device/buffalo_wbmr-hp-g300h-b
+  DEVICE_VENDOR := Buffalo
+  DEVICE_MODEL := WBMR-HP-G300H
+  DEVICE_VARIANT := B
+  IMAGE_SIZE := 31488k
+  DEVICE_DTS := WBMR
+  DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
+	kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \
+	kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \
+	ltq-adsl-app ppp-mod-pppoa \
+	kmod-ath9k kmod-owl-loader wpad-basic
+  SUPPORTED_DEVICES := WBMR buffalo,wbmr-hp-g300h
+endef
+TARGET_DEVICES += buffalo_wbmr-hp-g300h-b
+
 DGN3500_KERNEL_OFFSET_HEX=0x50000
 DGN3500_KERNEL_OFFSET_DEC=327680
 define Device/netgear_dgn3500
@@ -518,79 +577,20 @@ define Device/netgear_dgn3500b
 endef
 TARGET_DEVICES += netgear_dgn3500b
 
-define Device/buffalo_wbmr-hp-g300h-a
-  DEVICE_VENDOR := Buffalo
-  DEVICE_MODEL := WBMR-HP-G300H
-  DEVICE_VARIANT := A
-  IMAGE_SIZE := 31488k
-  DEVICE_DTS := WBMR
-  DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
+define Device/zte_h201l
+  DEVICE_VENDOR := ZTE
+  DEVICE_MODEL := H201L
+  IMAGE_SIZE := 7808k
+  DEVICE_DTS := H201L
+  DEVICE_PACKAGES := kmod-ath9k-htc wpad-basic \
 	kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \
-	kmod-ltq-adsl-ar9-fw-a kmod-ltq-atm-ar9 \
-	ltq-adsl-app ppp-mod-pppoa \
-	kmod-ath9k kmod-owl-loader wpad-basic
-  SUPPORTED_DEVICES := WBMR buffalo,wbmr-hp-g300h
+	kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \
+	ltq-adsl-app ppp-mod-pppoe \
+	kmod-ltq-deu-ar9 kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
+	kmod-ltq-tapi kmod-ltq-vmmc
+  SUPPORTED_DEVICES += H201L
 endef
-TARGET_DEVICES += buffalo_wbmr-hp-g300h-a
-
-define Device/buffalo_wbmr-hp-g300h-b
-  DEVICE_VENDOR := Buffalo
-  DEVICE_MODEL := WBMR-HP-G300H
-  DEVICE_VARIANT := B
-  IMAGE_SIZE := 31488k
-  DEVICE_DTS := WBMR
-  DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
-	kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \
-	kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \
-	ltq-adsl-app ppp-mod-pppoa \
-	kmod-ath9k kmod-owl-loader wpad-basic
-  SUPPORTED_DEVICES := WBMR buffalo,wbmr-hp-g300h
-endef
-TARGET_DEVICES += buffalo_wbmr-hp-g300h-b
-
-define Device/avm_fritz7312
-  $(Device/AVM)
-  DEVICE_MODEL := FRITZ!Box 7312
-  DEVICE_DTS := FRITZ7312
-  IMAGE_SIZE := 15744k
-  DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic \
-	kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \
-	kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \
-	ltq-adsl-app ppp-mod-pppoa \
-	kmod-ltq-deu-ar9 -swconfig
-endef
-TARGET_DEVICES += avm_fritz7312
-
-define Device/avm_fritz7320
-  $(Device/AVM)
-  DEVICE_MODEL := FRITZ!Box 7320
-  DEVICE_ALT0_VENDOR := 1&1
-  DEVICE_ALT0_MODEL := HomeServer
-  DEVICE_DTS := FRITZ7320
-  IMAGE_SIZE := 15744k
-  DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic \
-	kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \
-	kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \
-	ltq-adsl-app ppp-mod-pppoa \
-	kmod-ltq-deu-ar9 kmod-usb-dwc2 -swconfig
-  SUPPORTED_DEVICES += FRITZ7320
-endef
-TARGET_DEVICES += avm_fritz7320
-
-define Device/zte_h201l
-  DEVICE_VENDOR := ZTE
-  DEVICE_MODEL := H201L
-  IMAGE_SIZE := 7808k
-  DEVICE_DTS := H201L
-  DEVICE_PACKAGES := kmod-ath9k-htc wpad-basic \
-	kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \
-	kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \
-	ltq-adsl-app ppp-mod-pppoe \
-	kmod-ltq-deu-ar9 kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
-	kmod-ltq-tapi kmod-ltq-vmmc
-  SUPPORTED_DEVICES += H201L
-endef
-TARGET_DEVICES += zte_h201l
+TARGET_DEVICES += zte_h201l
 
 define Device/zyxel_p-2601hn
   DEVICE_VENDOR := ZyXEL
@@ -607,7 +607,6 @@ define Device/zyxel_p-2601hn
 endef
 TARGET_DEVICES += zyxel_p-2601hn
 
-
 endif
 
 
@@ -615,30 +614,15 @@ ifeq ($(SUBTARGET),xrx200)
 
 # VR9
 
-define Device/zyxel_p-2812hnu-f1
-  $(Device/NAND)
-  DEVICE_VENDOR := ZyXEL
-  DEVICE_MODEL := P-2812HNU
-  DEVICE_VARIANT := F1
-  BOARD_NAME := P2812HNUF1
-  DEVICE_DTS := P2812HNUF1
-  DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic kmod-usb-dwc2 kmod-usb-ledtrig-usbport
-  KERNEL_SIZE := 3072k
-  SUPPORTED_DEVICES += P2812HNUF1
-endef
-TARGET_DEVICES += zyxel_p-2812hnu-f1
+include tp-link.mk
 
-define Device/zyxel_p-2812hnu-f3
-  $(Device/NAND)
-  DEVICE_VENDOR := ZyXEL
-  DEVICE_MODEL := P-2812HNU
-  DEVICE_VARIANT := F3
-  BOARD_NAME := P2812HNUF3
-  DEVICE_DTS := P2812HNUF3
-  DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic kmod-usb-dwc2
-  SUPPORTED_DEVICES += P2812HNUF3
+define Device/alphanetworks_asl56026
+  DEVICE_VENDOR := BT Openreach
+  DEVICE_MODEL := ECI VDSL Modem V-2FUb/I
+  DEVICE_DTS := ASL56026
+  IMAGE_SIZE := 7488k
 endef
-TARGET_DEVICES += zyxel_p-2812hnu-f3
+TARGET_DEVICES += alphanetworks_asl56026
 
 define Device/arcadyan_arv7519rw22
   DEVICE_VENDOR := Arcadyan
@@ -655,64 +639,78 @@ define Device/arcadyan_arv7519rw22
 endef
 TARGET_DEVICES += arcadyan_arv7519rw22
 
-define Device/alphanetworks_asl56026
+define Device/arcadyan_vg3503j
   DEVICE_VENDOR := BT Openreach
-  DEVICE_MODEL := ECI VDSL Modem V-2FUb/I
-  DEVICE_DTS := ASL56026
-  IMAGE_SIZE := 7488k
+  DEVICE_MODEL := ECI VDSL Modem V-2FUb/R
+  IMAGE_SIZE := 8000k
+  DEVICE_DTS := VG3503J
+  SUPPORTED_DEVICES += VG3503J
 endef
-TARGET_DEVICES += alphanetworks_asl56026
+TARGET_DEVICES += arcadyan_vg3503j
 
-define Device/bt_homehub-v5a
-  $(Device/NAND)
-  DEVICE_VENDOR := British Telecom
-  DEVICE_MODEL := Home Hub 5
-  DEVICE_VARIANT := Type A
-  BOARD_NAME := BTHOMEHUBV5A
-  DEVICE_DTS := BTHOMEHUBV5A
-  DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader \
-	kmod-ath10k-ct ath10k-firmware-qca988x-ct wpad-basic kmod-usb-dwc2
-  SUPPORTED_DEVICES += BTHOMEHUBV5A
+define Device/arcadyan_vgv7510kw22-brn
+  $(Device/lantiqBrnImage)
+  DEVICE_VENDOR := Arcadyan
+  DEVICE_MODEL := VGV7510KW22
+  DEVICE_VARIANT := BRN
+  DEVICE_ALT0_VENDOR := o2
+  DEVICE_ALT0_MODEL := Box 6431
+  DEVICE_ALT0_VARIANT := BRN
+  IMAGE_SIZE := 7168k
+  DEVICE_DTS := VGV7510KW22BRN
+  SIGNATURE := BRNDA6431
+  MAGIC := 0x12345678
+  CRC32_POLY := 0x04c11db7
+  DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic kmod-usb-dwc2 kmod-ltq-tapi kmod-ltq-vmmc
+  SUPPORTED_DEVICES += VGV7510KW22BRN
 endef
-TARGET_DEVICES += bt_homehub-v5a
+TARGET_DEVICES += arcadyan_vgv7510kw22-brn
 
-define Device/netgear_dm200
-  DEVICE_VENDOR := NETGEAR
-  DEVICE_MODEL := DM200
-  DEVICE_DTS := DM200
-  IMAGES := sysupgrade.bin factory.img
-  IMAGE/sysupgrade.bin := append-kernel | \
-	pad-offset 64k 64 | append-uImage-fakehdr filesystem | \
-	pad-offset 64k 64 | append-uImage-fakehdr filesystem | \
-	append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
-  IMAGE/factory.img := $$(IMAGE/sysupgrade.bin) | netgear-dni
-  IMAGE_SIZE := 7872k
-  NETGEAR_BOARD_ID := DM200
-  NETGEAR_HW_ID := 29765233+8+0+64+0+0
+define Device/arcadyan_vgv7510kw22-nor
+  DEVICE_VENDOR := Arcadyan
+  DEVICE_MODEL := VGV7510KW22
+  DEVICE_VARIANT := NOR
+  DEVICE_ALT0_VENDOR := o2
+  DEVICE_ALT0_MODEL := Box 6431
+  DEVICE_ALT0_VARIANT := NOR
+  IMAGE_SIZE := 15232k
+  DEVICE_DTS := VGV7510KW22NOR
+  DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic kmod-usb-dwc2 kmod-ltq-tapi kmod-ltq-vmmc
+  SUPPORTED_DEVICES += VGV7510KW22NOR
 endef
-DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_HW_ID
-TARGET_DEVICES += netgear_dm200
+TARGET_DEVICES += arcadyan_vgv7510kw22-nor
 
-define Device/lantiq_easy80920-nand
-  $(Device/lantiqFullImage)
-  DEVICE_VENDOR := Lantiq
-  DEVICE_MODEL := VR9 EASY80920
-  DEVICE_VARIANT := NAND
-  DEVICE_DTS := EASY80920NAND
-  IMAGE_SIZE := 64512k
-  DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic kmod-usb-dwc2 kmod-usb-ledtrig-usbport
+define Device/arcadyan_vgv7519-brn
+  $(Device/lantiqBrnImage)
+  DEVICE_VENDOR := Arcadyan
+  DEVICE_MODEL := VGV7519
+  DEVICE_VARIANT := BRN
+  DEVICE_ALT0_VENDOR := KPN
+  DEVICE_ALT0_MODEL := Experiabox 8
+  DEVICE_ALT0_VARIANT := BRN
+  IMAGE_SIZE := 7168k
+  DEVICE_DTS := VGV7519BRN
+  SIGNATURE := 5D00008000
+  MAGIC := 0x12345678
+  CRC32_POLY := 0x2083b8ed
+  DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic kmod-usb-dwc2 kmod-ltq-tapi kmod-ltq-vmmc
+  SUPPORTED_DEVICES += VGV7519BRN
 endef
-TARGET_DEVICES += lantiq_easy80920-nand
+TARGET_DEVICES += arcadyan_vgv7519-brn
 
-define Device/lantiq_easy80920-nor
-  DEVICE_VENDOR := Lantiq
-  DEVICE_MODEL := VR9 EASY80920
+define Device/arcadyan_vgv7519-nor
+  DEVICE_VENDOR := Arcadyan
+  DEVICE_MODEL := VGV7519
   DEVICE_VARIANT := NOR
-  DEVICE_DTS := EASY80920NOR
-  IMAGE_SIZE := 7936k
-  DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic kmod-usb-dwc2 kmod-usb-ledtrig-usbport
+  DEVICE_ALT0_VENDOR := KPN
+  DEVICE_ALT0_MODEL := Experiabox 8
+  DEVICE_ALT0_VARIANT := NOR
+  IMAGE_SIZE := 15360k
+  DEVICE_DTS := VGV7519NOR
+  DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic kmod-usb-dwc2 kmod-ltq-tapi kmod-ltq-vmmc
+  SUPPORTED_DEVICES += VGV7519NOR
 endef
-TARGET_DEVICES += lantiq_easy80920-nor
+TARGET_DEVICES += arcadyan_vgv7519-nor
 
 define Device/avm_fritz3370
   $(Device/AVM)
@@ -754,6 +752,17 @@ define Device/avm_fritz7360sl
 endef
 TARGET_DEVICES += avm_fritz7360sl
 
+define Device/avm_fritz7362sl
+  $(Device/AVM)
+  $(Device/NAND)
+  DEVICE_MODEL := FRITZ!Box 7362 SL
+  KERNEL_SIZE := 4096k
+  IMAGE_SIZE := 49152k
+  DEVICE_DTS := FRITZ7362SL
+  DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic kmod-usb-dwc2 fritz-tffs
+endef
+TARGET_DEVICES += avm_fritz7362sl
+
 define Device/avm_fritz7412
   $(Device/AVM)
   $(Device/NAND)
@@ -766,27 +775,18 @@ define Device/avm_fritz7412
 endef
 TARGET_DEVICES += avm_fritz7412
 
-define Device/avm_fritz7362sl
-  $(Device/AVM)
+define Device/bt_homehub-v5a
   $(Device/NAND)
-  DEVICE_MODEL := FRITZ!Box 7362 SL
-  KERNEL_SIZE := 4096k
-  IMAGE_SIZE := 49152k
-  DEVICE_DTS := FRITZ7362SL
-  DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic kmod-usb-dwc2 fritz-tffs
-endef
-TARGET_DEVICES += avm_fritz7362sl
-
-define Device/arcadyan_vg3503j
-  DEVICE_VENDOR := BT Openreach
-  DEVICE_MODEL := ECI VDSL Modem V-2FUb/R
-  IMAGE_SIZE := 8000k
-  DEVICE_DTS := VG3503J
-  SUPPORTED_DEVICES += VG3503J
+  DEVICE_VENDOR := British Telecom
+  DEVICE_MODEL := Home Hub 5
+  DEVICE_VARIANT := Type A
+  BOARD_NAME := BTHOMEHUBV5A
+  DEVICE_DTS := BTHOMEHUBV5A
+  DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader \
+	kmod-ath10k-ct ath10k-firmware-qca988x-ct wpad-basic kmod-usb-dwc2
+  SUPPORTED_DEVICES += BTHOMEHUBV5A
 endef
-TARGET_DEVICES += arcadyan_vg3503j
-
-include tp-link.mk
+TARGET_DEVICES += bt_homehub-v5a
 
 define Device/buffalo_wbmr-300hpd
   DEVICE_VENDOR := Buffalo
@@ -798,113 +798,74 @@ define Device/buffalo_wbmr-300hpd
 endef
 TARGET_DEVICES += buffalo_wbmr-300hpd
 
-define Device/arcadyan_vgv7510kw22-nor
-  DEVICE_VENDOR := Arcadyan
-  DEVICE_MODEL := VGV7510KW22
+define Device/lantiq_easy80920-nand
+  $(Device/lantiqFullImage)
+  DEVICE_VENDOR := Lantiq
+  DEVICE_MODEL := VR9 EASY80920
+  DEVICE_VARIANT := NAND
+  DEVICE_DTS := EASY80920NAND
+  IMAGE_SIZE := 64512k
+  DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic kmod-usb-dwc2 kmod-usb-ledtrig-usbport
+endef
+TARGET_DEVICES += lantiq_easy80920-nand
+
+define Device/lantiq_easy80920-nor
+  DEVICE_VENDOR := Lantiq
+  DEVICE_MODEL := VR9 EASY80920
   DEVICE_VARIANT := NOR
-  DEVICE_ALT0_VENDOR := o2
-  DEVICE_ALT0_MODEL := Box 6431
-  DEVICE_ALT0_VARIANT := NOR
-  IMAGE_SIZE := 15232k
-  DEVICE_DTS := VGV7510KW22NOR
-  DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic kmod-usb-dwc2 kmod-ltq-tapi kmod-ltq-vmmc
-  SUPPORTED_DEVICES += VGV7510KW22NOR
+  DEVICE_DTS := EASY80920NOR
+  IMAGE_SIZE := 7936k
+  DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic kmod-usb-dwc2 kmod-usb-ledtrig-usbport
 endef
-TARGET_DEVICES += arcadyan_vgv7510kw22-nor
+TARGET_DEVICES += lantiq_easy80920-nor
 
-define Device/arcadyan_vgv7510kw22-brn
-  $(Device/lantiqBrnImage)
-  DEVICE_VENDOR := Arcadyan
-  DEVICE_MODEL := VGV7510KW22
-  DEVICE_VARIANT := BRN
-  DEVICE_ALT0_VENDOR := o2
-  DEVICE_ALT0_MODEL := Box 6431
-  DEVICE_ALT0_VARIANT := BRN
-  IMAGE_SIZE := 7168k
-  DEVICE_DTS := VGV7510KW22BRN
-  SIGNATURE := BRNDA6431
-  MAGIC := 0x12345678
-  CRC32_POLY := 0x04c11db7
-  DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic kmod-usb-dwc2 kmod-ltq-tapi kmod-ltq-vmmc
-  SUPPORTED_DEVICES += VGV7510KW22BRN
+define Device/netgear_dm200
+  DEVICE_VENDOR := NETGEAR
+  DEVICE_MODEL := DM200
+  DEVICE_DTS := DM200
+  IMAGES := sysupgrade.bin factory.img
+  IMAGE/sysupgrade.bin := append-kernel | \
+	pad-offset 64k 64 | append-uImage-fakehdr filesystem | \
+	pad-offset 64k 64 | append-uImage-fakehdr filesystem | \
+	append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
+  IMAGE/factory.img := $$(IMAGE/sysupgrade.bin) | netgear-dni
+  IMAGE_SIZE := 7872k
+  NETGEAR_BOARD_ID := DM200
+  NETGEAR_HW_ID := 29765233+8+0+64+0+0
 endef
-TARGET_DEVICES += arcadyan_vgv7510kw22-brn
+DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_HW_ID
+TARGET_DEVICES += netgear_dm200
 
-define Device/arcadyan_vgv7519-nor
-  DEVICE_VENDOR := Arcadyan
-  DEVICE_MODEL := VGV7519
-  DEVICE_VARIANT := NOR
-  DEVICE_ALT0_VENDOR := KPN
-  DEVICE_ALT0_MODEL := Experiabox 8
-  DEVICE_ALT0_VARIANT := NOR
-  IMAGE_SIZE := 15360k
-  DEVICE_DTS := VGV7519NOR
-  DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic kmod-usb-dwc2 kmod-ltq-tapi kmod-ltq-vmmc
-  SUPPORTED_DEVICES += VGV7519NOR
+define Device/zyxel_p-2812hnu-f1
+  $(Device/NAND)
+  DEVICE_VENDOR := ZyXEL
+  DEVICE_MODEL := P-2812HNU
+  DEVICE_VARIANT := F1
+  BOARD_NAME := P2812HNUF1
+  DEVICE_DTS := P2812HNUF1
+  DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic kmod-usb-dwc2 kmod-usb-ledtrig-usbport
+  KERNEL_SIZE := 3072k
+  SUPPORTED_DEVICES += P2812HNUF1
 endef
-TARGET_DEVICES += arcadyan_vgv7519-nor
+TARGET_DEVICES += zyxel_p-2812hnu-f1
 
-define Device/arcadyan_vgv7519-brn
-  $(Device/lantiqBrnImage)
-  DEVICE_VENDOR := Arcadyan
-  DEVICE_MODEL := VGV7519
-  DEVICE_VARIANT := BRN
-  DEVICE_ALT0_VENDOR := KPN
-  DEVICE_ALT0_MODEL := Experiabox 8
-  DEVICE_ALT0_VARIANT := BRN
-  IMAGE_SIZE := 7168k
-  DEVICE_DTS := VGV7519BRN
-  SIGNATURE := 5D00008000
-  MAGIC := 0x12345678
-  CRC32_POLY := 0x2083b8ed
-  DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic kmod-usb-dwc2 kmod-ltq-tapi kmod-ltq-vmmc
-  SUPPORTED_DEVICES += VGV7519BRN
+define Device/zyxel_p-2812hnu-f3
+  $(Device/NAND)
+  DEVICE_VENDOR := ZyXEL
+  DEVICE_MODEL := P-2812HNU
+  DEVICE_VARIANT := F3
+  BOARD_NAME := P2812HNUF3
+  DEVICE_DTS := P2812HNUF3
+  DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic kmod-usb-dwc2
+  SUPPORTED_DEVICES += P2812HNUF3
 endef
-TARGET_DEVICES += arcadyan_vgv7519-brn
+TARGET_DEVICES += zyxel_p-2812hnu-f3
 
 endif
 
 
 ifeq ($(SUBTARGET),falcon)
 
-define Device/lantiq_easy98000-nor
-  DEVICE_VENDOR := Lantiq
-  DEVICE_MODEL := EASY98000 Falcon Eval Board
-  DEVICE_VARIANT := NOR
-  IMAGE_SIZE := 3904k
-  DEVICE_DTS := EASY98000NOR
-  DEVICE_PACKAGES := kmod-dm9000 kmod-i2c-lantiq kmod-eeprom-at24
-endef
-TARGET_DEVICES += lantiq_easy98000-nor
-
-define Device/lantiq_easy98000-nand
-  DEVICE_VENDOR := Lantiq
-  DEVICE_MODEL := EASY98000 Falcon Eval Board
-  DEVICE_VARIANT := NAND
-  IMAGE_SIZE := 3904k
-  DEVICE_DTS := EASY98000NAND
-  DEVICE_PACKAGES := kmod-dm9000 kmod-i2c-lantiq kmod-eeprom-at24
-endef
-TARGET_DEVICES += lantiq_easy98000-nand
-
-define Device/lantiq_easy98000-sflash
-  DEVICE_VENDOR := Lantiq
-  DEVICE_MODEL := EASY98000 Falcon Eval Board
-  DEVICE_VARIANT := SFLASH
-  IMAGE_SIZE := 7424k
-  DEVICE_DTS := EASY98000SFLASH
-  DEVICE_PACKAGES := kmod-dm9000 kmod-i2c-lantiq kmod-eeprom-at24
-endef
-TARGET_DEVICES += lantiq_easy98000-sflash
-
-define Device/lantiq_falcon-mdu
-  DEVICE_VENDOR := Lantiq
-  DEVICE_MODEL := Falcon / VINAXdp MDU Board
-  IMAGE_SIZE := 7424k
-  DEVICE_DTS := FALCON-MDU
-endef
-TARGET_DEVICES += lantiq_falcon-mdu
-
 define Device/lantiq_easy88388
   DEVICE_VENDOR := Lantiq
   DEVICE_MODEL := EASY88388 Falcon FTTDP8 Reference Board
@@ -921,13 +882,31 @@ define Device/lantiq_easy88444
 endef
 TARGET_DEVICES += lantiq_easy88444
 
-define Device/lantiq_falcon-sfp
+define Device/lantiq_easy98020
   DEVICE_VENDOR := Lantiq
-  DEVICE_MODEL := Falcon SFP Stick
+  DEVICE_MODEL := Falcon SFU Reference Board (EASY98020)
+  DEVICE_VARIANT := v1.0-v1.7
   IMAGE_SIZE := 7424k
-  DEVICE_DTS := FALCON-SFP
+  DEVICE_DTS := EASY98020
 endef
-TARGET_DEVICES += lantiq_falcon-sfp
+TARGET_DEVICES += lantiq_easy98020
+
+define Device/lantiq_easy98020-v18
+  DEVICE_VENDOR := Lantiq
+  DEVICE_MODEL := Falcon SFU Reference Board (EASY98020)
+  DEVICE_VARIANT := v1.8
+  IMAGE_SIZE := 7424k
+  DEVICE_DTS := EASY98020V18
+endef
+TARGET_DEVICES += lantiq_easy98020-v18
+
+define Device/lantiq_easy98021
+  DEVICE_VENDOR := Lantiq
+  DEVICE_MODEL := Falcon HGU Reference Board (EASY98021)
+  IMAGE_SIZE := 7424k
+  DEVICE_DTS := EASY98021
+endef
+TARGET_DEVICES += lantiq_easy98021
 
 define Device/lantiq_easy98035synce
   DEVICE_VENDOR := Lantiq
@@ -947,31 +926,51 @@ define Device/lantiq_easy98035synce1588
 endef
 TARGET_DEVICES += lantiq_easy98035synce1588
 
-define Device/lantiq_easy98020
+define Device/lantiq_easy98000-nand
   DEVICE_VENDOR := Lantiq
-  DEVICE_MODEL := Falcon SFU Reference Board (EASY98020)
-  DEVICE_VARIANT := v1.0-v1.7
+  DEVICE_MODEL := EASY98000 Falcon Eval Board
+  DEVICE_VARIANT := NAND
+  IMAGE_SIZE := 3904k
+  DEVICE_DTS := EASY98000NAND
+  DEVICE_PACKAGES := kmod-dm9000 kmod-i2c-lantiq kmod-eeprom-at24
+endef
+TARGET_DEVICES += lantiq_easy98000-nand
+
+define Device/lantiq_easy98000-nor
+  DEVICE_VENDOR := Lantiq
+  DEVICE_MODEL := EASY98000 Falcon Eval Board
+  DEVICE_VARIANT := NOR
+  IMAGE_SIZE := 3904k
+  DEVICE_DTS := EASY98000NOR
+  DEVICE_PACKAGES := kmod-dm9000 kmod-i2c-lantiq kmod-eeprom-at24
+endef
+TARGET_DEVICES += lantiq_easy98000-nor
+
+define Device/lantiq_easy98000-sflash
+  DEVICE_VENDOR := Lantiq
+  DEVICE_MODEL := EASY98000 Falcon Eval Board
+  DEVICE_VARIANT := SFLASH
   IMAGE_SIZE := 7424k
-  DEVICE_DTS := EASY98020
+  DEVICE_DTS := EASY98000SFLASH
+  DEVICE_PACKAGES := kmod-dm9000 kmod-i2c-lantiq kmod-eeprom-at24
 endef
-TARGET_DEVICES += lantiq_easy98020
+TARGET_DEVICES += lantiq_easy98000-sflash
 
-define Device/lantiq_easy98020-v18
+define Device/lantiq_falcon-mdu
   DEVICE_VENDOR := Lantiq
-  DEVICE_MODEL := Falcon SFU Reference Board (EASY98020)
-  DEVICE_VARIANT := v1.8
+  DEVICE_MODEL := Falcon / VINAXdp MDU Board
   IMAGE_SIZE := 7424k
-  DEVICE_DTS := EASY98020V18
+  DEVICE_DTS := FALCON-MDU
 endef
-TARGET_DEVICES += lantiq_easy98020-v18
+TARGET_DEVICES += lantiq_falcon-mdu
 
-define Device/lantiq_easy98021
+define Device/lantiq_falcon-sfp
   DEVICE_VENDOR := Lantiq
-  DEVICE_MODEL := Falcon HGU Reference Board (EASY98021)
+  DEVICE_MODEL := Falcon SFP Stick
   IMAGE_SIZE := 7424k
-  DEVICE_DTS := EASY98021
+  DEVICE_DTS := FALCON-SFP
 endef
-TARGET_DEVICES += lantiq_easy98021
+TARGET_DEVICES += lantiq_falcon-sfp
 
 endif
 
