[openwrt/openwrt] ar71xx: create new ar71xx/tiny subtarget for 4MB flash devices

LEDE Commits lede-commits at lists.infradead.org
Sat Jan 13 10:56:02 PST 2018


neoraider pushed a commit to openwrt/openwrt.git, branch master:
https://git.lede-project.org/0cd5e85e7ad621223b0787e66d8ad20fb2694135

commit 0cd5e85e7ad621223b0787e66d8ad20fb2694135
Author: Matthias Schiffer <mschiffer at universe-factory.net>
AuthorDate: Fri Jan 12 16:36:13 2018 +0100

    ar71xx: create new ar71xx/tiny subtarget for 4MB flash devices
    
    This new subtarget sets the small_flash flag and removes unused kernel
    configuration.
    
    small_flash removes KERNEL_KALLSYMS, which saves ~107KB in the default
    configuration; removing unneeded hardware support from ar71xx/tiny saves
    another ~18KB (both after LZMA).
    
    Signed-off-by: Matthias Schiffer <mschiffer at universe-factory.net>
---
 target/linux/ar71xx/Makefile                       |   2 +-
 target/linux/ar71xx/generic/config-default         |  36 -
 target/linux/ar71xx/image/Makefile                 |   4 +
 target/linux/ar71xx/image/common-tp-link.mk        |  95 +++
 .../linux/ar71xx/image/generic-legacy-devices.mk   | 155 -----
 target/linux/ar71xx/image/generic-tp-link.mk       | 769 +--------------------
 target/linux/ar71xx/image/generic.mk               |  14 +-
 target/linux/ar71xx/image/legacy.mk                |  79 ++-
 target/linux/ar71xx/image/tiny-legacy-devices.mk   | 154 +++++
 target/linux/ar71xx/image/tiny-tp-link.mk          | 684 ++++++++++++++++++
 target/linux/ar71xx/tiny/config-default            |  72 ++
 target/linux/ar71xx/tiny/profiles/00-default.mk    |  11 +
 target/linux/ar71xx/tiny/target.mk                 |   8 +
 13 files changed, 1076 insertions(+), 1007 deletions(-)

diff --git a/target/linux/ar71xx/Makefile b/target/linux/ar71xx/Makefile
index 6d5b4c5..1049619 100644
--- a/target/linux/ar71xx/Makefile
+++ b/target/linux/ar71xx/Makefile
@@ -11,7 +11,7 @@ BOARD:=ar71xx
 BOARDNAME:=Atheros AR7xxx/AR9xxx
 FEATURES:=usbgadget
 CPU_TYPE:=24kc
-SUBTARGETS:=generic nand mikrotik
+SUBTARGETS:=generic tiny nand mikrotik
 
 KERNEL_PATCHVER:=4.9
 
diff --git a/target/linux/ar71xx/generic/config-default b/target/linux/ar71xx/generic/config-default
index 35a8b0f..d5b59b5 100644
--- a/target/linux/ar71xx/generic/config-default
+++ b/target/linux/ar71xx/generic/config-default
@@ -1,5 +1,4 @@
 CONFIG_ATH79_DEV_AP9X_PCI=y
-CONFIG_ATH79_DEV_DSA=y
 CONFIG_ATH79_DEV_ETH=y
 CONFIG_ATH79_DEV_GPIO_BUTTONS=y
 CONFIG_ATH79_DEV_LEDS_GPIO=y
@@ -59,9 +58,6 @@ CONFIG_ATH79_MACH_DB120=y
 CONFIG_ATH79_MACH_DGL_5500_A1=y
 CONFIG_ATH79_MACH_DHP_1565_A1=y
 CONFIG_ATH79_MACH_DIR_505_A1=y
-CONFIG_ATH79_MACH_DIR_600_A1=y
-CONFIG_ATH79_MACH_DIR_615_C1=y
-CONFIG_ATH79_MACH_DIR_615_I1=y
 CONFIG_ATH79_MACH_DIR_825_B1=y
 CONFIG_ATH79_MACH_DIR_825_C1=y
 CONFIG_ATH79_MACH_DIR_869_A1=y
@@ -111,8 +107,6 @@ CONFIG_ATH79_MACH_MYNET_N750=y
 CONFIG_ATH79_MACH_MYNET_REXT=y
 CONFIG_ATH79_MACH_MZK_W04NU=y
 CONFIG_ATH79_MACH_MZK_W300NH=y
-CONFIG_ATH79_MACH_NBG460N=y
-CONFIG_ATH79_MACH_NBG6716=y
 CONFIG_ATH79_MACH_OM2P=y
 CONFIG_ATH79_MACH_OM5P=y
 CONFIG_ATH79_MACH_OM5P_AC=y
@@ -134,32 +128,15 @@ CONFIG_ATH79_MACH_SMART_300=y
 CONFIG_ATH79_MACH_SOM9331=y
 CONFIG_ATH79_MACH_SR3200=y
 CONFIG_ATH79_MACH_TELLSTICK_ZNET_LITE=y
-CONFIG_ATH79_MACH_TEW_632BRP=y
 CONFIG_ATH79_MACH_TEW_673GRU=y
-CONFIG_ATH79_MACH_TEW_712BR=y
 CONFIG_ATH79_MACH_TEW_732BR=y
 CONFIG_ATH79_MACH_TEW_823DRU=y
-CONFIG_ATH79_MACH_TL_MR11U=y
-CONFIG_ATH79_MACH_TL_MR13U=y
-CONFIG_ATH79_MACH_TL_MR3020=y
 CONFIG_ATH79_MACH_TL_MR3X20=y
 CONFIG_ATH79_MACH_TL_MR6400=y
-CONFIG_ATH79_MACH_TL_WA701ND_V2=y
-CONFIG_ATH79_MACH_TL_WA7210N_V2=y
-CONFIG_ATH79_MACH_TL_WA801ND_V3=y
-CONFIG_ATH79_MACH_TL_WA830RE_V2=y
-CONFIG_ATH79_MACH_TL_WA850RE_V2=y
-CONFIG_ATH79_MACH_TL_WA855RE_V1=y
-CONFIG_ATH79_MACH_TL_WA901ND=y
-CONFIG_ATH79_MACH_TL_WA901ND_V2=y
-CONFIG_ATH79_MACH_TL_WA901ND_V4=y
-CONFIG_ATH79_MACH_TL_WAX50RE=y
-CONFIG_ATH79_MACH_TL_WDR3320_V2=y
 CONFIG_ATH79_MACH_TL_WDR3500=y
 CONFIG_ATH79_MACH_TL_WDR4300=y
 CONFIG_ATH79_MACH_TL_WDR6500_V2=y
 CONFIG_ATH79_MACH_TL_WPA8630=y
-CONFIG_ATH79_MACH_TL_WR1041N_V2=y
 CONFIG_ATH79_MACH_TL_WR1043ND=y
 CONFIG_ATH79_MACH_TL_WR1043ND_V2=y
 CONFIG_ATH79_MACH_TL_WR1043ND_V4=y
@@ -167,20 +144,10 @@ CONFIG_ATH79_MACH_TL_WR1043N_V5=y
 CONFIG_ATH79_MACH_TL_WR2543N=y
 CONFIG_ATH79_MACH_TL_WR703N=y
 CONFIG_ATH79_MACH_TL_WR720N_V3=y
-CONFIG_ATH79_MACH_TL_WR741ND=y
-CONFIG_ATH79_MACH_TL_WR741ND_V4=y
-CONFIG_ATH79_MACH_TL_WR802N_V1=y
-CONFIG_ATH79_MACH_TL_WR802N_V2=y
 CONFIG_ATH79_MACH_TL_WR810N=y
 CONFIG_ATH79_MACH_TL_WR810N_V2=y
-CONFIG_ATH79_MACH_TL_WR840N_V2=y
-CONFIG_ATH79_MACH_TL_WR841N_V1=y
-CONFIG_ATH79_MACH_TL_WR841N_V8=y
 CONFIG_ATH79_MACH_TL_WR841N_V9=y
 CONFIG_ATH79_MACH_TL_WR902AC_V1=y
-CONFIG_ATH79_MACH_TL_WR940N_V4=y
-CONFIG_ATH79_MACH_TL_WR941ND=y
-CONFIG_ATH79_MACH_TL_WR941ND_V6=y
 CONFIG_ATH79_MACH_TL_WR942N_V1=y
 CONFIG_ATH79_MACH_TUBE2H=y
 CONFIG_ATH79_MACH_UBNT=y
@@ -192,9 +159,6 @@ CONFIG_ATH79_MACH_WLAE_AG300N=y
 CONFIG_ATH79_MACH_WLR8100=y
 CONFIG_ATH79_MACH_WNDAP360=y
 CONFIG_ATH79_MACH_WNDR3700=y
-CONFIG_ATH79_MACH_WNR2000=y
-CONFIG_ATH79_MACH_WNR2000_V3=y
-CONFIG_ATH79_MACH_WNR2000_V4=y
 CONFIG_ATH79_MACH_WNR2200=y
 CONFIG_ATH79_MACH_WP543=y
 CONFIG_ATH79_MACH_WPE72=y
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
index e14271d..1eaf1e4 100644
--- a/target/linux/ar71xx/image/Makefile
+++ b/target/linux/ar71xx/image/Makefile
@@ -19,6 +19,10 @@ include ./generic-senao.mk
 include ./generic-tp-link.mk
 include ./generic-ubnt.mk
 endif
+ifeq ($(SUBTARGET),tiny)
+include ./tiny-tp-link.mk
+include ./tiny-legacy-devices.mk
+endif
 ifeq ($(SUBTARGET),nand)
 include ./nand.mk
 endif
diff --git a/target/linux/ar71xx/image/common-tp-link.mk b/target/linux/ar71xx/image/common-tp-link.mk
new file mode 100644
index 0000000..c448c97
--- /dev/null
+++ b/target/linux/ar71xx/image/common-tp-link.mk
@@ -0,0 +1,95 @@
+DEVICE_VARS += LOADER_FLASH_OFFS TPLINK_BOARD_ID TPLINK_FLASHLAYOUT TPLINK_HEADER_VERSION TPLINK_HWID TPLINK_HWREV
+
+define Build/copy-file
+	cat "$(1)" > "$@"
+endef
+
+define Build/loader-okli
+	dd if=$(KDIR)/loader-$(1).gz bs=7680 conv=sync of="$@.new"
+	cat "$@" >> "$@.new"
+	mv "$@.new" "$@"
+endef
+
+define Build/loader-okli-compile
+	$(call Build/loader-common,FLASH_OFFS=$(LOADER_FLASH_OFFS) FLASH_MAX=0 KERNEL_CMDLINE="$(CMDLINE)")
+endef
+
+# combine kernel and rootfs into one image
+# mktplinkfw <type> <optional extra arguments to mktplinkfw binary>
+# <type> is "sysupgrade" or "factory"
+#
+# -a align the rootfs start on an <align> bytes boundary
+# -j add jffs2 end-of-filesystem markers
+# -s strip padding from end of the image
+# -X reserve <size> bytes in the firmware image (hexval prefixed with 0x)
+define Build/mktplinkfw
+	-$(STAGING_DIR_HOST)/bin/mktplinkfw \
+		-H $(TPLINK_HWID) -W $(TPLINK_HWREV) -F $(TPLINK_FLASHLAYOUT) -N OpenWrt -V $(REVISION) \
+		-m $(TPLINK_HEADER_VERSION) \
+		-k $(IMAGE_KERNEL) \
+		-r $@ \
+		-o $@.new \
+		-j -X 0x40000 \
+		-a $(call rootfs_align,$(FILESYSTEM)) \
+		$(wordlist 2,$(words $(1)),$(1)) \
+		$(if $(findstring sysupgrade,$(word 1,$(1))),-s) && mv $@.new $@ || rm -f $@
+endef
+
+define Build/uImageArcher
+	mkimage -A $(LINUX_KARCH) \
+		-O linux -T kernel \
+		-C $(1) -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
+		-n '$(call toupper,$(LINUX_KARCH)) OpenWrt Linux-$(LINUX_VERSION)' -d $@ $@.new
+	@mv $@.new $@
+endef
+
+
+define Device/tplink
+  TPLINK_HWREV := 0x1
+  TPLINK_HEADER_VERSION := 1
+  LOADER_TYPE := gz
+  KERNEL := kernel-bin | patch-cmdline | lzma
+  KERNEL_INITRAMFS := kernel-bin | patch-cmdline | lzma | tplink-v1-header
+  IMAGES := sysupgrade.bin factory.bin
+  IMAGE/sysupgrade.bin := append-rootfs | mktplinkfw sysupgrade
+  IMAGE/factory.bin := append-rootfs | mktplinkfw factory
+endef
+
+define Device/tplink-nolzma
+  $(Device/tplink)
+  LOADER_FLASH_OFFS := 0x22000
+  COMPILE := loader-$(1).gz
+  COMPILE/loader-$(1).gz := loader-okli-compile
+  KERNEL := copy-file $(KDIR)/vmlinux.bin.lzma | uImage lzma -M 0x4f4b4c49 | loader-okli $(1)
+  KERNEL_INITRAMFS := copy-file $(KDIR)/vmlinux-initramfs.bin.lzma | loader-kernel-cmdline | tplink-v1-header
+endef
+
+define Device/tplink-4m
+  $(Device/tplink-nolzma)
+  TPLINK_FLASHLAYOUT := 4M
+  IMAGE_SIZE := 3904k
+endef
+
+define Device/tplink-8m
+  $(Device/tplink-nolzma)
+  TPLINK_FLASHLAYOUT := 8M
+  IMAGE_SIZE := 7936k
+endef
+
+define Device/tplink-4mlzma
+  $(Device/tplink)
+  TPLINK_FLASHLAYOUT := 4Mlzma
+  IMAGE_SIZE := 3904k
+endef
+
+define Device/tplink-8mlzma
+  $(Device/tplink)
+  TPLINK_FLASHLAYOUT := 8Mlzma
+  IMAGE_SIZE := 7936k
+endef
+
+define Device/tplink-16mlzma
+  $(Device/tplink)
+  TPLINK_FLASHLAYOUT := 16Mlzma
+  IMAGE_SIZE := 15872k
+endef
diff --git a/target/linux/ar71xx/image/generic-legacy-devices.mk b/target/linux/ar71xx/image/generic-legacy-devices.mk
index e418282..70e3274 100644
--- a/target/linux/ar71xx/image/generic-legacy-devices.mk
+++ b/target/linux/ar71xx/image/generic-legacy-devices.mk
@@ -156,81 +156,6 @@ define LegacyDevice/F9K1115V2
 endef
 LEGACY_DEVICES += F9K1115V2
 
-define LegacyDevice/DIR600A1
-  DEVICE_TITLE := D-Link DIR-600 rev. A1
-endef
-LEGACY_DEVICES += DIR600A1
-
-define LegacyDevice/DIR601A1
-  DEVICE_TITLE := D-Link DIR-601 rev. A1
-endef
-LEGACY_DEVICES += DIR601A1
-
-define LegacyDevice/FR54RTR
-  DEVICE_TITLE := Frys FR-54RTR
-endef
-LEGACY_DEVICES += FR54RTR
-
-define LegacyDevice/EBR2310C1
-  DEVICE_TITLE := D-Link EBR-2310 rev. C1
-endef
-LEGACY_DEVICES += EBR2310C1
-
-define LegacyDevice/DIR615E1
-  DEVICE_TITLE := D-Link DIR-615 rev. E1
-endef
-LEGACY_DEVICES += DIR615E1
-
-define LegacyDevice/DIR615E4
-  DEVICE_TITLE := D-Link DIR-615 rev. E4
-endef
-LEGACY_DEVICES += DIR615E4
-
-define LegacyDevice/DIR615I1
-  DEVICE_TITLE := D-Link DIR-615 rev. I1
-endef
-LEGACY_DEVICES += DIR615I1
-
-define LegacyDevice/DIR615I3
-  DEVICE_TITLE := D-Link DIR-615 rev. I3
-endef
-LEGACY_DEVICES += DIR615I3
-
-define LegacyDevice/A02RBW300N
-  DEVICE_TITLE := Atlantis-Land A02-RB-W300N
-endef
-LEGACY_DEVICES += A02RBW300N
-
-define LegacyDevice/DIR615C1
-  DEVICE_TITLE := D-Link DIR-615 rev. C1
-endef
-LEGACY_DEVICES += DIR615C1
-
-define LegacyDevice/TEW632BRP
-  DEVICE_TITLE := TRENDNet TEW-632BRP
-endef
-LEGACY_DEVICES += TEW632BRP
-
-define LegacyDevice/TEW652BRP_FW
-  DEVICE_TITLE := TRENDNet TEW-652BRP
-endef
-LEGACY_DEVICES += TEW652BRP_FW
-
-define LegacyDevice/TEW652BRP_RECOVERY
-  DEVICE_TITLE := TRENDNet TEW-652BRP (recovery)
-endef
-LEGACY_DEVICES += TEW652BRP_RECOVERY
-
-define LegacyDevice/TEW712BR
-  DEVICE_TITLE := TRENDNet TEW-712BR
-endef
-LEGACY_DEVICES += TEW712BR
-
-define LegacyDevice/DIR601B1
-  DEVICE_TITLE := D-Link DIR-601 rev. B1
-endef
-LEGACY_DEVICES += DIR601B1
-
 define LegacyDevice/DIR505A1
   DEVICE_TITLE := D-Link DIR-505 rev. A1
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
@@ -336,12 +261,6 @@ define LegacyDevice/EPG5000
 endef
 LEGACY_DEVICES += EPG5000
 
-define LegacyDevice/WP543_4M
-  DEVICE_TITLE := Compex WP543/WPJ543 (4MB flash)
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2
-endef
-LEGACY_DEVICES += WP543_4M
-
 define LegacyDevice/WP543_8M
   DEVICE_TITLE := Compex WP543/WPJ543 (8MB flash)
   DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2
@@ -354,12 +273,6 @@ define LegacyDevice/WP543_16M
 endef
 LEGACY_DEVICES += WP543_16M
 
-define LegacyDevice/WPE72_4M
-  DEVICE_TITLE := Compex WPE72/WPE72NX (4MB flash)
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2
-endef
-LEGACY_DEVICES += WPE72_4M
-
 define LegacyDevice/WPE72_8M
   DEVICE_TITLE := Compex WPE72/WPE72NX (8MB flash)
   DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2
@@ -372,53 +285,12 @@ define LegacyDevice/WPE72_16M
 endef
 LEGACY_DEVICES += WPE72_16M
 
-define LegacyDevice/WNR2000
-  DEVICE_TITLE := NETGEAR WNR2000V1
-endef
-LEGACY_DEVICES += WNR2000
-
-define LegacyDevice/WNR2000V3
-  DEVICE_TITLE := NETGEAR WNR2000V3
-endef
-LEGACY_DEVICES += WNR2000V3
-
-define LegacyDevice/WNR2000V4
-  DEVICE_TITLE := NETGEAR WNR2000V4
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
-endef
-LEGACY_DEVICES += WNR2000V4
-
 define LegacyDevice/WNR2200
   DEVICE_TITLE := NETGEAR WNR2200
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
 endef
 LEGACY_DEVICES += WNR2200
 
-define LegacyDevice/REALWNR612V2
-  DEVICE_TITLE := NETGEAR WNR612V2
-endef
-LEGACY_DEVICES += REALWNR612V2
-
-define LegacyDevice/N150R
-  DEVICE_TITLE := On Networks N150
-endef
-LEGACY_DEVICES += N150R
-
-define LegacyDevice/REALWNR1000V2
-  DEVICE_TITLE := NETGEAR WNR1000V2
-endef
-LEGACY_DEVICES += REALWNR1000V2
-
-define LegacyDevice/WNR1000V2_VC
-  DEVICE_TITLE := NETGEAR WNR1000V2-VC
-endef
-LEGACY_DEVICES += WNR1000V2_VC
-
-define LegacyDevice/WPN824N
-  DEVICE_TITLE := NETGEAR WPN824N
-endef
-LEGACY_DEVICES += WPN824N
-
 define LegacyDevice/OM2P
   DEVICE_TITLE := OpenMesh OM2P/OM2P-HS/OM2P-LC
   DEVICE_PACKAGES := om-watchdog
@@ -512,27 +384,6 @@ define LegacyDevice/EAP300V2
 endef
 LEGACY_DEVICES += EAP300V2
 
-define LegacyDevice/WHRG301N
-  DEVICE_TITLE := Buffalo WHR-G301N
-endef
-LEGACY_DEVICES += WHRG301N
-
-define LegacyDevice/WHRHPG300N
-  DEVICE_TITLE := Buffalo WHR-HP-G300N
-endef
-LEGACY_DEVICES += WHRHPG300N
-
-define LegacyDevice/WHRHPGN
-  DEVICE_TITLE := Buffalo WHR-HP-GN
-endef
-LEGACY_DEVICES += WHRHPGN
-
-define LegacyDevice/WLAEAG300N
-  DEVICE_TITLE := Buffalo WLAE-AG300N
-  DEVICE_PACKAGES := kmod-ledtrig-netdev
-endef
-LEGACY_DEVICES += WLAEAG300N
-
 define LegacyDevice/WRT400N
   DEVICE_TITLE := Linksys WRT400N
 endef
@@ -583,9 +434,3 @@ define LegacyDevice/ZCN1523H516
   DEVICE_TITLE := Zcomax ZCN-1523H-5-16
 endef
 LEGACY_DEVICES += ZCN1523H516
-
-define LegacyDevice/NBG_460N_550N_550NH
-  DEVICE_TITLE := ZyXEL NBG 460N/550N/550NH
-  DEVICE_PACKAGES := kmod-rtc-pcf8563
-endef
-LEGACY_DEVICES += NBG_460N_550N_550NH
diff --git a/target/linux/ar71xx/image/generic-tp-link.mk b/target/linux/ar71xx/image/generic-tp-link.mk
index 18178a3..b0d99e2 100644
--- a/target/linux/ar71xx/image/generic-tp-link.mk
+++ b/target/linux/ar71xx/image/generic-tp-link.mk
@@ -1,98 +1,5 @@
-DEVICE_VARS += LOADER_FLASH_OFFS TPLINK_BOARD_ID TPLINK_FLASHLAYOUT TPLINK_HEADER_VERSION TPLINK_HWID TPLINK_HWREV
+include ./common-tp-link.mk
 
-define Build/copy-file
-	cat "$(1)" > "$@"
-endef
-
-define Build/loader-okli
-	dd if=$(KDIR)/loader-$(1).gz bs=7680 conv=sync of="$@.new"
-	cat "$@" >> "$@.new"
-	mv "$@.new" "$@"
-endef
-
-define Build/loader-okli-compile
-	$(call Build/loader-common,FLASH_OFFS=$(LOADER_FLASH_OFFS) FLASH_MAX=0 KERNEL_CMDLINE="$(CMDLINE)")
-endef
-
-# combine kernel and rootfs into one image
-# mktplinkfw <type> <optional extra arguments to mktplinkfw binary>
-# <type> is "sysupgrade" or "factory"
-#
-# -a align the rootfs start on an <align> bytes boundary
-# -j add jffs2 end-of-filesystem markers
-# -s strip padding from end of the image
-# -X reserve <size> bytes in the firmware image (hexval prefixed with 0x)
-define Build/mktplinkfw
-	-$(STAGING_DIR_HOST)/bin/mktplinkfw \
-		-H $(TPLINK_HWID) -W $(TPLINK_HWREV) -F $(TPLINK_FLASHLAYOUT) -N OpenWrt -V $(REVISION) \
-		-m $(TPLINK_HEADER_VERSION) \
-		-k $(IMAGE_KERNEL) \
-		-r $@ \
-		-o $@.new \
-		-j -X 0x40000 \
-		-a $(call rootfs_align,$(FILESYSTEM)) \
-		$(wordlist 2,$(words $(1)),$(1)) \
-		$(if $(findstring sysupgrade,$(word 1,$(1))),-s) && mv $@.new $@ || rm -f $@
-endef
-
-define Build/uImageArcher
-	mkimage -A $(LINUX_KARCH) \
-		-O linux -T kernel \
-		-C $(1) -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
-		-n '$(call toupper,$(LINUX_KARCH)) OpenWrt Linux-$(LINUX_VERSION)' -d $@ $@.new
-	@mv $@.new $@
-endef
-
-
-define Device/tplink
-  TPLINK_HWREV := 0x1
-  TPLINK_HEADER_VERSION := 1
-  LOADER_TYPE := gz
-  KERNEL := kernel-bin | patch-cmdline | lzma
-  KERNEL_INITRAMFS := kernel-bin | patch-cmdline | lzma | tplink-v1-header
-  IMAGES := sysupgrade.bin factory.bin
-  IMAGE/sysupgrade.bin := append-rootfs | mktplinkfw sysupgrade
-  IMAGE/factory.bin := append-rootfs | mktplinkfw factory
-endef
-
-define Device/tplink-nolzma
-  $(Device/tplink)
-  LOADER_FLASH_OFFS := 0x22000
-  COMPILE := loader-$(1).gz
-  COMPILE/loader-$(1).gz := loader-okli-compile
-  KERNEL := copy-file $(KDIR)/vmlinux.bin.lzma | uImage lzma -M 0x4f4b4c49 | loader-okli $(1)
-  KERNEL_INITRAMFS := copy-file $(KDIR)/vmlinux-initramfs.bin.lzma | loader-kernel-cmdline | tplink-v1-header
-endef
-
-define Device/tplink-4m
-  $(Device/tplink-nolzma)
-  TPLINK_FLASHLAYOUT := 4M
-  IMAGE_SIZE := 3904k
-endef
-
-define Device/tplink-8m
-  $(Device/tplink-nolzma)
-  TPLINK_FLASHLAYOUT := 8M
-  IMAGE_SIZE := 7936k
-endef
-
-define Device/tplink-4mlzma
-  $(Device/tplink)
-  TPLINK_FLASHLAYOUT := 4Mlzma
-  IMAGE_SIZE := 3904k
-endef
-
-define Device/tplink-8mlzma
-  $(Device/tplink)
-  TPLINK_FLASHLAYOUT := 8Mlzma
-  IMAGE_SIZE := 7936k
-endef
-
-define Device/tplink-16mlzma
-  $(Device/tplink)
-  TPLINK_FLASHLAYOUT := 16Mlzma
-  IMAGE_SIZE := 15872k
-endef
 
 define Device/archer-cxx
   KERNEL := kernel-bin | patch-cmdline | lzma | uImageArcher lzma
@@ -296,123 +203,6 @@ define Device/re450-v1
 endef
 TARGET_DEVICES += re450-v1
 
-define Device/tl-mr10u-v1
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-MR10U v1
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2
-  BOARDNAME := TL-MR10U
-  DEVICE_PROFILE := TLMR10U
-  TPLINK_HWID := 0x00100101
-  CONSOLE := ttyATH0,115200
-endef
-TARGET_DEVICES += tl-mr10u-v1
-
-define Device/tl-mr11u-v1
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-MR11U v1
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
-  BOARDNAME := TL-MR11U
-  DEVICE_PROFILE := TLMR11U
-  TPLINK_HWID := 0x00110101
-  CONSOLE := ttyATH0,115200
-endef
-TARGET_DEVICES += tl-mr11u-v1
-
-define Device/tl-mr11u-v2
-  $(Device/tl-mr11u-v1)
-  DEVICE_TITLE := TP-LINK TL-MR11U v2
-  TPLINK_HWID := 0x00110102
-endef
-TARGET_DEVICES += tl-mr11u-v2
-
-define Device/tl-mr12u-v1
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-MR12U v1
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
-  BOARDNAME := TL-MR13U
-  DEVICE_PROFILE := TLMR12U
-  TPLINK_HWID := 0x00120101
-  CONSOLE := ttyATH0,115200
-endef
-TARGET_DEVICES += tl-mr12u-v1
-
-define Device/tl-mr13u-v1
-  $(Device/tl-mr12u-v1)
-  DEVICE_TITLE := TP-LINK TL-MR13U v1
-  DEVICE_PROFILE := TLMR13U
-  TPLINK_HWID := 0x00130101
-endef
-TARGET_DEVICES += tl-mr13u-v1
-
-define Device/tl-mr3020-v1
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-MR3020 v1
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
-  BOARDNAME := TL-MR3020
-  DEVICE_PROFILE := TLMR3020
-  TPLINK_HWID := 0x30200001
-  CONSOLE := ttyATH0,115200
-endef
-TARGET_DEVICES += tl-mr3020-v1
-
-define Device/tl-mr3040-v1
-  $(Device/tl-mr3020-v1)
-  DEVICE_TITLE := TP-LINK TL-MR3040 v1
-  BOARDNAME := TL-MR3040
-  DEVICE_PROFILE := TLMR3040
-  TPLINK_HWID := 0x30400001
-endef
-TARGET_DEVICES += tl-mr3040-v1
-
-define Device/tl-mr3040-v2
-  $(Device/tl-mr3040-v1)
-  DEVICE_TITLE := TP-LINK TL-MR3040 v2
-  BOARDNAME := TL-MR3040-v2
-  TPLINK_HWID := 0x30400002
-endef
-TARGET_DEVICES += tl-mr3040-v2
-
-define Device/tl-mr3220-v1
-  $(Device/tplink-4m)
-  DEVICE_TITLE := TP-LINK TL-MR3220 v1
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
-  BOARDNAME := TL-MR3220
-  DEVICE_PROFILE := TLMR3220
-  TPLINK_HWID := 0x32200001
-endef
-TARGET_DEVICES += tl-mr3220-v1
-
-define Device/tl-mr3220-v2
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-MR3220 v2
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
-  BOARDNAME := TL-MR3220-v2
-  DEVICE_PROFILE := TLMR3220
-  TPLINK_HWID := 0x32200002
-  CONSOLE := ttyATH0,115200
-endef
-TARGET_DEVICES += tl-mr3220-v2
-
-define Device/tl-mr3420-v1
-  $(Device/tplink-4m)
-  DEVICE_TITLE := TP-LINK TL-MR3420 v1
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
-  BOARDNAME := TL-MR3420
-  DEVICE_PROFILE := TLMR3420
-  TPLINK_HWID := 0x34200001
-endef
-TARGET_DEVICES += tl-mr3420-v1
-
-define Device/tl-mr3420-v2
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-MR3420 v2
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
-  BOARDNAME := TL-MR3420-v2
-  DEVICE_PROFILE := TLMR3420
-  TPLINK_HWID := 0x34200002
-endef
-TARGET_DEVICES += tl-mr3420-v2
-
 define Device/tl-mr6400-v1
   $(Device/tplink-8mlzma)
   DEVICE_TITLE := TP-LINK TL-MR6400 v1
@@ -423,215 +213,6 @@ define Device/tl-mr6400-v1
 endef
 TARGET_DEVICES += tl-mr6400-v1
 
-define Device/tl-wa701nd-v1
-  $(Device/tplink-4m)
-  DEVICE_TITLE := TP-LINK TL-WA701N/ND v1
-  BOARDNAME := TL-WA901ND
-  DEVICE_PROFILE := TLWA701
-  TPLINK_HWID := 0x07010001
-endef
-TARGET_DEVICES += tl-wa701nd-v1
-
-define Device/tl-wa701nd-v2
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WA701N/ND v2
-  BOARDNAME := TL-WA701ND-v2
-  DEVICE_PROFILE := TLWA701
-  TPLINK_HWID := 0x07010002
-  CONSOLE := ttyATH0,115200
-endef
-TARGET_DEVICES += tl-wa701nd-v2
-
-define Device/tl-wa7210n-v2
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WA7210N v2
-  DEVICE_PACKAGES := rssileds kmod-ledtrig-netdev
-  BOARDNAME := TL-WA7210N-v2
-  DEVICE_PROFILE := TLWA7210
-  TPLINK_HWID := 0x72100002
-  CONSOLE := ttyATH0,115200
-endef
-TARGET_DEVICES += tl-wa7210n-v2
-
-define Device/tl-wa730re-v1
-  $(Device/tplink-4m)
-  DEVICE_TITLE := TP-LINK TL-WA730RE v1
-  BOARDNAME := TL-WA901ND
-  DEVICE_PROFILE := TLWA730RE
-  TPLINK_HWID := 0x07300001
-endef
-TARGET_DEVICES += tl-wa730re-v1
-
-define Device/tl-wa750re-v1
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WA750RE v1
-  DEVICE_PACKAGES := rssileds
-  BOARDNAME := TL-WA750RE
-  DEVICE_PROFILE := TLWA750
-  TPLINK_HWID := 0x07500001
-endef
-TARGET_DEVICES += tl-wa750re-v1
-
-define Device/tl-wa7510n-v1
-  $(Device/tplink-4m)
-  DEVICE_TITLE := TP-LINK TL-WA7510N v1
-  BOARDNAME := TL-WA7510N
-  DEVICE_PROFILE := TLWA7510
-  TPLINK_HWID := 0x75100001
-endef
-TARGET_DEVICES += tl-wa7510n-v1
-
-define Device/tl-wa801nd-v1
-  $(Device/tplink-4m)
-  DEVICE_TITLE := TP-LINK TL-WA801N/ND v1
-  BOARDNAME := TL-WA901ND
-  DEVICE_PROFILE := TLWA801
-  TPLINK_HWID := 0x08010001
-endef
-TARGET_DEVICES += tl-wa801nd-v1
-
-define Device/tl-wa801nd-v2
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WA801N/ND v2
-  BOARDNAME := TL-WA801ND-v2
-  DEVICE_PROFILE := TLWA801
-  TPLINK_HWID := 0x08010002
-endef
-TARGET_DEVICES += tl-wa801nd-v2
-
-define Device/tl-wa801nd-v3
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WA801N/ND v3
-  BOARDNAME := TL-WA801ND-v3
-  DEVICE_PROFILE := TLWA801
-  TPLINK_HWID := 0x08010003
-endef
-TARGET_DEVICES += tl-wa801nd-v3
-
-define Device/tl-wa830re-v1
-  $(Device/tplink-4m)
-  DEVICE_TITLE := TP-LINK TL-WA830RE v1
-  BOARDNAME := TL-WA901ND
-  DEVICE_PROFILE := TLWA830
-  TPLINK_HWID := 0x08300010
-endef
-TARGET_DEVICES += tl-wa830re-v1
-
-define Device/tl-wa830re-v2
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WA830RE v2
-  BOARDNAME := TL-WA830RE-v2
-  DEVICE_PROFILE := TLWA830
-  TPLINK_HWID := 0x08300002
-endef
-TARGET_DEVICES += tl-wa830re-v2
-
-define Device/tl-wa850re-v1
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WA850RE v1
-  DEVICE_PACKAGES := rssileds
-  BOARDNAME := TL-WA850RE
-  DEVICE_PROFILE := TLWA850
-  TPLINK_HWID := 0x08500001
-endef
-TARGET_DEVICES += tl-wa850re-v1
-
-define Device/tl-wa85xre
-  $(Device/tplink)
-  TPLINK_HWREV := 0
-  KERNEL := kernel-bin | patch-cmdline | lzma | tplink-v1-header
-  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 at 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_ID := TLWA850REV2
-  TPLINK_HWID := 0x08500002
-endef
-TARGET_DEVICES += tl-wa850re-v2
-
-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
-TARGET_DEVICES += tl-wa855re-v1
-
-
-define Device/tl-wa860re-v1
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WA860RE v1
-  BOARDNAME := TL-WA860RE
-  DEVICE_PROFILE := TLWA860
-  TPLINK_HWID := 0x08600001
-endef
-TARGET_DEVICES += tl-wa860re-v1
-
-define Device/tl-wa901nd-v1
-  $(Device/tplink-4m)
-  DEVICE_TITLE := TP-LINK TL-WA901N/ND v1
-  BOARDNAME := TL-WA901ND
-  DEVICE_PROFILE := TLWA901
-  TPLINK_HWID := 0x09010001
-endef
-TARGET_DEVICES += tl-wa901nd-v1
-
-define Device/tl-wa901nd-v2
-  $(Device/tplink-4m)
-  DEVICE_TITLE := TP-LINK TL-WA901N/ND v2
-  BOARDNAME := TL-WA901ND-v2
-  DEVICE_PROFILE := TLWA901
-  TPLINK_HWID := 0x09010002
-endef
-TARGET_DEVICES += tl-wa901nd-v2
-
-define Device/tl-wa901nd-v3
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WA901N/ND v3
-  BOARDNAME := TL-WA901ND-v3
-  DEVICE_PROFILE := TLWA901
-  TPLINK_HWID := 0x09010003
-endef
-TARGET_DEVICES += tl-wa901nd-v3
-
-define Device/tl-wa901nd-v4
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WA901N/ND v4
-  BOARDNAME := TL-WA901ND-v4
-  DEVICE_PROFILE := TLWA901
-  TPLINK_HWID := 0x09010004
-  IMAGE/factory.bin := append-rootfs | mktplinkfw factory -C EU
-endef
-TARGET_DEVICES += tl-wa901nd-v4
-
-define Device/tl-wa901nd-v5
-  $(Device/tl-wa901nd-v4)
-  DEVICE_TITLE := TP-LINK TL-WA901N/ND v5
-  BOARDNAME := TL-WA901ND-v5
-  TPLINK_HWID := 0x09010005
-endef
-TARGET_DEVICES += tl-wa901nd-v5
-
-define Device/tl-wdr3320-v2
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WDR3320 v2
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
-  BOARDNAME := TL-WDR3320-v2
-  DEVICE_PROFILE := TLWDR3320V2
-  TPLINK_HWID := 0x33200002
-  TPLINK_HEADER_VERSION := 2
-endef
-TARGET_DEVICES += tl-wdr3320-v2
-
 define Device/tl-wdr3500-v1
   $(Device/tplink-8mlzma)
   DEVICE_TITLE := TP-LINK TL-WDR3500 v1
@@ -713,15 +294,6 @@ define Device/tl-wpa8630-v1
 endef
 TARGET_DEVICES += tl-wpa8630-v1
 
-define Device/tl-wr1041n-v2
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WR1041N v2
-  BOARDNAME := TL-WR1041N-v2
-  DEVICE_PROFILE := TLWR1041
-  TPLINK_HWID := 0x10410002
-endef
-TARGET_DEVICES += tl-wr1041n-v2
-
 define Device/tl-wr1043n-v5
   $(Device/archer-cxx)
   DEVICE_TITLE := TP-LINK TL-WR1043N v5
@@ -790,17 +362,6 @@ define Device/tl-wr2543-v1
 endef
 TARGET_DEVICES += tl-wr2543-v1
 
-define Device/tl-wr703n-v1
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WR703N v1
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2
-  BOARDNAME := TL-WR703N
-  DEVICE_PROFILE := TLWR703
-  TPLINK_HWID := 0x07030101
-  CONSOLE := ttyATH0,115200
-endef
-TARGET_DEVICES += tl-wr703n-v1
-
 define Device/tl-wr710n-v1
   $(Device/tplink-8mlzma)
   DEVICE_TITLE := TP-LINK TL-WR710N v1
@@ -813,17 +374,6 @@ define Device/tl-wr710n-v1
 endef
 TARGET_DEVICES += tl-wr710n-v1
 
-define Device/tl-wr710n-v2
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WR710N v2
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2
-  BOARDNAME := TL-WR710N
-  DEVICE_PROFILE := TLWR710
-  TPLINK_HWID := 0x07100002
-  CONSOLE := ttyATH0,115200
-endef
-TARGET_DEVICES += tl-wr710n-v2
-
 define Device/tl-wr710n-v2.1
   $(Device/tl-wr710n-v1)
   DEVICE_TITLE := TP-LINK TL-WR710N v2.1
@@ -832,138 +382,6 @@ define Device/tl-wr710n-v2.1
 endef
 TARGET_DEVICES += tl-wr710n-v2.1
 
-define Device/tl-wr720n-v3
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WR720N v3
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2
-  BOARDNAME := TL-WR720N-v3
-  DEVICE_PROFILE := TLWR720
-  TPLINK_HWID := 0x07200103
-  CONSOLE := ttyATH0,115200
-endef
-TARGET_DEVICES += tl-wr720n-v3
-
-define Device/tl-wr720n-v4
-  $(Device/tl-wr720n-v3)
-  DEVICE_TITLE := TP-LINK TL-WR720N v4
-  TPLINK_HWID := 0x07200104
-endef
-TARGET_DEVICES += tl-wr720n-v4
-
-define Device/tl-wr740n-v1
-  $(Device/tplink-4m)
-  DEVICE_TITLE := TP-LINK TL-WR740N/ND v1
-  BOARDNAME := TL-WR741ND
-  DEVICE_PROFILE := TLWR740
-  TPLINK_HWID := 0x07400001
-endef
-TARGET_DEVICES += tl-wr740n-v1
-
-define Device/tl-wr740n-v3
-  $(Device/tl-wr740n-v1)
-  DEVICE_TITLE := TP-LINK TL-WR740N/ND v3
-  TPLINK_HWID := 0x07400003
-endef
-TARGET_DEVICES += tl-wr740n-v3
-
-define Device/tl-wr740n-v4
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WR740N/ND v4
-  BOARDNAME := TL-WR741ND-v4
-  DEVICE_PROFILE := TLWR740
-  TPLINK_HWID := 0x07400004
-  CONSOLE := ttyATH0,115200
-endef
-TARGET_DEVICES += tl-wr740n-v4
-
-define Device/tl-wr740n-v5
-  $(Device/tl-wr740n-v4)
-  DEVICE_TITLE := TP-LINK TL-WR740N/ND v5
-  TPLINK_HWID := 0x07400005
-endef
-TARGET_DEVICES += tl-wr740n-v5
-
-define Device/tl-wr740n-v6
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WR740N/ND v6
-  BOARDNAME := TL-WR740N-v6
-  DEVICE_PROFILE := TLWR740
-  TPLINK_HWID := 0x07400006
-endef
-TARGET_DEVICES += tl-wr740n-v6
-
-define Device/tl-wr741nd-v1
-  $(Device/tplink-4m)
-  DEVICE_TITLE := TP-LINK TL-WR741N/ND v1
-  BOARDNAME := TL-WR741ND
-  DEVICE_PROFILE := TLWR741
-  TPLINK_HWID := 0x07410001
-endef
-TARGET_DEVICES += tl-wr741nd-v1
-
-define Device/tl-wr741nd-v2
-  $(Device/tl-wr741nd-v1)
-  DEVICE_TITLE := TP-LINK TL-WR741N/ND v2
-endef
-TARGET_DEVICES += tl-wr741nd-v2
-
-define Device/tl-wr741nd-v4
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WR741N/ND v4
-  BOARDNAME := TL-WR741ND-v4
-  DEVICE_PROFILE := TLWR741
-  TPLINK_HWID := 0x07410004
-  CONSOLE := ttyATH0,115200
-endef
-TARGET_DEVICES += tl-wr741nd-v4
-
-define Device/tl-wr741nd-v5
-  $(Device/tl-wr741nd-v4)
-  DEVICE_TITLE := TP-LINK TL-WR741N/ND v5
-  TPLINK_HWID := 0x07400005
-endef
-TARGET_DEVICES += tl-wr741nd-v5
-
-define Device/tl-wr743nd-v1
-  $(Device/tplink-4m)
-  DEVICE_TITLE := TP-LINK TL-WR743N/ND v1
-  BOARDNAME := TL-WR741ND
-  DEVICE_PROFILE := TLWR743
-  TPLINK_HWID := 0x07430001
-endef
-TARGET_DEVICES += tl-wr743nd-v1
-
-define Device/tl-wr743nd-v2
-  $(Device/tl-wr741nd-v4)
-  DEVICE_TITLE := TP-LINK TL-WR743N/ND v2
-  DEVICE_PROFILE := TLWR743
-  TPLINK_HWID := 0x07430002
-endef
-TARGET_DEVICES += tl-wr743nd-v2
-
-define Device/tl-wr802n-v1
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WR802N v1
-  BOARDNAME := TL-WR802N-v1
-  DEVICE_PROFILE := TLWR802
-  TPLINK_HWID := 0x08020001
-  TPLINK_HWREV := 1
-endef
-TARGET_DEVICES += tl-wr802n-v1
-
-define Device/tl-wr802n-v2
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WR802N v2
-  BOARDNAME := TL-WR802N-v2
-  DEVICE_PROFILE := TLWR802
-  TPLINK_HWID := 0x08020002
-  TPLINK_HWREV := 2
-  IMAGES += factory-us.bin factory-eu.bin
-  IMAGE/factory-us.bin := append-rootfs | mktplinkfw factory -C US
-  IMAGE/factory-eu.bin := append-rootfs | mktplinkfw factory -C EU
-endef
-TARGET_DEVICES += tl-wr802n-v2
-
 define Device/tl-wr810n-v1
   $(Device/tplink-8mlzma)
   DEVICE_TITLE := TP-LINK TL-WR810N v1
@@ -983,107 +401,6 @@ define Device/tl-wr810n-v2
 endef
 TARGET_DEVICES += tl-wr810n-v2
 
-define Device/tl-wr840n-v2
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WR840N v2
-  BOARDNAME := TL-WR840N-v2
-  DEVICE_PROFILE := TLWR840
-  TPLINK_HWID := 0x08400002
-  IMAGES += factory-eu.bin
-  IMAGE/factory-eu.bin := append-rootfs | mktplinkfw factory -C EU
-endef
-TARGET_DEVICES += tl-wr840n-v2
-
-define Device/tl-wr840n-v3
-  $(Device/tl-wr840n-v2)
-  DEVICE_TITLE := TP-LINK TL-WR840N v3
-  BOARDNAME := TL-WR840N-v3
-  TPLINK_HWID := 0x08400003
-endef
-TARGET_DEVICES += tl-wr840n-v3
-
-define Device/tl-wr841-v1.5
-  $(Device/tplink-4m)
-  DEVICE_TITLE := TP-LINK TL-WR841N/ND v1.5
-  BOARDNAME := TL-WR841N-v1.5
-  DEVICE_PROFILE := TLWR841
-  TPLINK_HWID := 0x08410002
-  TPLINK_HWREV := 2
-endef
-TARGET_DEVICES += tl-wr841-v1.5
-
-define Device/tl-wr841-v3
-  $(Device/tplink-4m)
-  DEVICE_TITLE := TP-LINK TL-WR841N/ND v3
-  BOARDNAME := TL-WR941ND
-  DEVICE_PROFILE := TLWR841
-  TPLINK_HWID := 0x08410003
-  TPLINK_HWREV := 3
-endef
-TARGET_DEVICES += tl-wr841-v3
-
-define Device/tl-wr841-v5
-  $(Device/tplink-4m)
-  DEVICE_TITLE := TP-LINK TL-WR841N/ND v5
-  BOARDNAME := TL-WR741ND
-  DEVICE_PROFILE := TLWR841
-  TPLINK_HWID := 0x08410005
-endef
-TARGET_DEVICES += tl-wr841-v5
-
-define Device/tl-wr841-v7
-  $(Device/tplink-4m)
-  DEVICE_TITLE := TP-LINK TL-WR841N/ND v7
-  BOARDNAME := TL-WR841N-v7
-  DEVICE_PROFILE := TLWR841
-  TPLINK_HWID := 0x08410007
-endef
-TARGET_DEVICES += tl-wr841-v7
-
-define Device/tl-wr841-v8
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WR841N/ND v8
-  BOARDNAME := TL-WR841N-v8
-  DEVICE_PROFILE := TLWR841
-  TPLINK_HWID := 0x08410008
-endef
-TARGET_DEVICES += tl-wr841-v8
-
-define Device/tl-wr841-v9
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WR841N/ND v9
-  BOARDNAME := TL-WR841N-v9
-  DEVICE_PROFILE := TLWR841
-  TPLINK_HWID := 0x08410009
-endef
-TARGET_DEVICES += tl-wr841-v9
-
-define Device/tl-wr841-v10
-  $(Device/tl-wr841-v9)
-  DEVICE_TITLE := TP-LINK TL-WR841N/ND v10
-  TPLINK_HWID := 0x08410010
-endef
-TARGET_DEVICES += tl-wr841-v10
-
-define Device/tl-wr841-v11
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WR841N/ND v11
-  BOARDNAME := TL-WR841N-v11
-  DEVICE_PROFILE := TLWR841
-  TPLINK_HWID := 0x08410011
-  IMAGES += factory-us.bin factory-eu.bin
-  IMAGE/factory-us.bin := append-rootfs | mktplinkfw factory -C US
-  IMAGE/factory-eu.bin := append-rootfs | mktplinkfw factory -C EU
-endef
-TARGET_DEVICES += tl-wr841-v11
-
-define Device/tl-wr841-v12
-  $(Device/tl-wr841-v11)
-  DEVICE_TITLE := TP-LINK TL-WR841N/ND v12
-  TPLINK_HWID := 0x08410012
-endef
-TARGET_DEVICES += tl-wr841-v12
-
 define Device/tl-wr842n-v1
   $(Device/tplink-8m)
   DEVICE_TITLE := TP-LINK TL-WR842N/ND v1
@@ -1114,24 +431,6 @@ define Device/tl-wr842n-v3
 endef
 TARGET_DEVICES += tl-wr842n-v3
 
-define Device/tl-wr843nd-v1
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WR843N/ND v1
-  BOARDNAME := TL-WR841N-v8
-  DEVICE_PROFILE := TLWR843
-  TPLINK_HWID := 0x08430001
-endef
-TARGET_DEVICES += tl-wr843nd-v1
-
-define Device/tl-wr847n-v8
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WR847N/ND v8
-  BOARDNAME := TL-WR841N-v8
-  DEVICE_PROFILE := TLWR841
-  TPLINK_HWID := 0x08470008
-endef
-TARGET_DEVICES += 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 \
@@ -1153,72 +452,6 @@ define Device/tl-wr902ac-v1
 endef
 TARGET_DEVICES += tl-wr902ac-v1
 
-define Device/tl-wr940n-v4
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WR940N v4
-  BOARDNAME := TL-WR940N-v4
-  DEVICE_PROFILE := TLWR941
-  TPLINK_HWID := 0x09400004
-  IMAGES += factory-us.bin factory-eu.bin factory-br.bin
-  IMAGE/factory-us.bin := append-rootfs | mktplinkfw factory -C US
-  IMAGE/factory-eu.bin := append-rootfs | mktplinkfw factory -C EU
-  IMAGE/factory-br.bin := append-rootfs | mktplinkfw factory -C BR
-endef
-TARGET_DEVICES += tl-wr940n-v4
-
-define Device/tl-wr941nd-v2
-  $(Device/tplink-4m)
-  DEVICE_TITLE := TP-LINK TL-WR941N/ND v2
-  BOARDNAME := TL-WR941ND
-  DEVICE_PROFILE := TLWR941
-  TPLINK_HWID := 0x09410002
-  TPLINK_HWREV := 2
-endef
-TARGET_DEVICES += tl-wr941nd-v2
-
-define Device/tl-wr941nd-v3
-  $(Device/tl-wr941nd-v2)
-  DEVICE_TITLE := TP-LINK TL-WR941N/ND v3
-endef
-TARGET_DEVICES += tl-wr941nd-v3
-
-define Device/tl-wr941nd-v4
-  $(Device/tplink-4m)
-  DEVICE_TITLE := TP-LINK TL-WR941N/ND v4
-  BOARDNAME := TL-WR741ND
-  DEVICE_PROFILE := TLWR941
-  TPLINK_HWID := 0x09410004
-endef
-TARGET_DEVICES += tl-wr941nd-v4
-
-define Device/tl-wr941nd-v5
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WR941N/ND v5
-  BOARDNAME := TL-WR941ND-v5
-  DEVICE_PROFILE := TLWR941
-  TPLINK_HWID := 0x09410005
-endef
-TARGET_DEVICES += tl-wr941nd-v5
-
-define Device/tl-wr941nd-v6
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WR941N/ND v6
-  BOARDNAME := TL-WR941ND-v6
-  DEVICE_PROFILE := TLWR941
-  TPLINK_HWID := 0x09410006
-endef
-TARGET_DEVICES += tl-wr941nd-v6
-
-# Chinese version (unlike European) is similar to the TL-WDR3500
-define Device/tl-wr941nd-v6-cn
-  $(Device/tplink-4mlzma)
-  DEVICE_TITLE := TP-LINK TL-WR941N/ND v6 (CN)
-  BOARDNAME := TL-WDR3500
-  DEVICE_PROFILE := TLWR941
-  TPLINK_HWID := 0x09410006
-endef
-TARGET_DEVICES += tl-wr941nd-v6-cn
-
 define Device/tl-wr942n-v1
   DEVICE_TITLE := TP-LINK TL-WR942N v1
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
diff --git a/target/linux/ar71xx/image/generic.mk b/target/linux/ar71xx/image/generic.mk
index 6829f11..89ab1f0 100644
--- a/target/linux/ar71xx/image/generic.mk
+++ b/target/linux/ar71xx/image/generic.mk
@@ -231,7 +231,7 @@ TARGET_DEVICES += dragino2
 
 define Device/ew-dorin
   DEVICE_TITLE := Embedded Wireless Dorin Platform
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb-chipidea 
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-chipidea
   BOARDNAME = EW-DORIN
   CONSOLE := ttyATH0,115200
   IMAGE_SIZE = 16000k
@@ -241,7 +241,7 @@ TARGET_DEVICES += ew-dorin
 
 define Device/ew-dorin-router
   DEVICE_TITLE := Embedded Wireless Dorin Router Platform
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb-chipidea 
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-chipidea
   BOARDNAME = EW-DORIN-ROUTER
   CONSOLE := ttyATH0,115200
   IMAGE_SIZE = 16000k
@@ -597,16 +597,6 @@ define Device/r602n
 endef
 TARGET_DEVICES += r602n
 
-define Device/rnx-n360rt
-  $(Device/tplink-4m)
-  DEVICE_TITLE := Rosewill RNX-N360RT
-  BOARDNAME := TL-WR941ND
-  DEVICE_PROFILE := RNXN360RT
-  TPLINK_HWID := 0x09410002
-  TPLINK_HWREV := 0x00420001
-endef
-TARGET_DEVICES += rnx-n360rt
-
 define Device/mc-mac1200r
   $(Device/tplink-8mlzma)
   DEVICE_TITLE := Mercury MAC1200R
diff --git a/target/linux/ar71xx/image/legacy.mk b/target/linux/ar71xx/image/legacy.mk
index 01d7e50..3c48471 100644
--- a/target/linux/ar71xx/image/legacy.mk
+++ b/target/linux/ar71xx/image/legacy.mk
@@ -901,25 +901,6 @@ $(eval $(call SingleProfile,AthLzma,64k,WLR8100,wlr8100,WLR8100,ttyS0,115200,$$(
 
 $(eval $(call SingleProfile,Belkin,64k,F9K1115V2,f9k1115v2,F9K1115V2,ttyS0,115200,$$(f9k1115v2_mtdlayout),BR-6679BAC))
 
-$(eval $(call SingleProfile,CameoAP91,64kraw,DIR600A1,dir-600-a1,DIR-600-A1,ttyS0,115200,"AP91-AR7240-RT-090223-00"))
-$(eval $(call SingleProfile,CameoAP91,64kraw,DIR601A1,dir-601-a1,DIR-600-A1,ttyS0,115200,"AP91-AR7240-RT-090223-02"))
-$(eval $(call SingleProfile,CameoAP91,64kraw,FR54RTR,fr-54rtr,DIR-600-A1,ttyS0,115200,"AP91-AR7240-RT-090223-01"))
-
-$(eval $(call SingleProfile,CameoAP99,64kraw,EBR2310C1,ebr-2310-c1,EBR-2310-C1,ttyS0,115200,"AP91-AR7240-RT-090223-03"))
-$(eval $(call SingleProfile,CameoAP99,64kraw,DIR615E1,dir-615-e1,DIR-615-E1,ttyS0,115200,"AP93-AR7240-RT-081028-00"))
-$(eval $(call SingleProfile,CameoAP99,64kraw,DIR615E4,dir-615-e4,DIR-615-E4,ttyS0,115200,"AP99-AR7240-RT-091105-05"))
-
-$(eval $(call SingleProfile,CameoAP123_4M,64kraw,DIR615I1,dir-615-i1,DIR-615-I1,ttyS0,115200,"00DB120AR9341-RT-1012I1-00"))
-$(eval $(call SingleProfile,CameoAP123_4M,64kraw,DIR615I3,dir-615-i3,DIR-615-I1,ttyS0,115200,"00DB120AR9341-RT-101214-00"))
-
-$(eval $(call SingleProfile,CameoAP81,64kraw-nojffs,A02RBW300N,a02-rb-w300n,TEW-632BRP,ttyS0,115200,"AP81-AR9130-RT-070614-03"))
-$(eval $(call SingleProfile,CameoAP81,64kraw-nojffs,DIR615C1,dir-615-c1,DIR-615-C1,ttyS0,115200,"AP81-AR9130-RT-070614-02"))
-$(eval $(call SingleProfile,CameoAP81,64kraw-nojffs,TEW632BRP,tew-632brp,TEW-632BRP,ttyS0,115200,"AP81-AR9130-RT-070614-00"))
-$(eval $(call SingleProfile,CameoAP81,64kraw-nojffs,TEW652BRP_FW,tew-652brp,TEW-632BRP,ttyS0,115200,"AP81-AR9130-RT-080609-05"))
-$(eval $(call SingleProfile,CameoAP81,64kraw-nojffs,TEW652BRP_RECOVERY,tew-652brp-recovery,TEW-632BRP,ttyS0,115200,"AP81-AR9130-RT-070614-02"))
-
-$(eval $(call SingleProfile,CameoAP121,64kraw-nojffs,TEW712BR,tew-712br,TEW-712BR,ttyATH0,115200,"HORNET-RT-TEW712BR-3",1.99,""))
-$(eval $(call SingleProfile,CameoAP121,64kraw-nojffs,DIR601B1,dir-601-b1,TEW-712BR,ttyATH0,115200,"HORNET-RT-DIR601B1-3",2.99.99,"" "NA"))
 $(eval $(call SingleProfile,CameoAP121_8M,64kraw-nojffs,DIR505A1,dir-505-a1,DIR-505-A1,ttyATH0,115200,"HORNET-PACKET-DIR505A1-3",1.99.99,""))
 
 $(eval $(call SingleProfile,CameoAP135,64kraw,DGL5500A1,dgl-5500-a1,DGL-5500-A1,ttyS0,115200,$$(dgl_5500_mtdlayout),"00AP135AR9558-RT-130508-00"))
@@ -948,22 +929,12 @@ $(eval $(call SingleProfile,EnGenius,64k,ESR900,esr900,ESR900,ttyS0,115200,$$(es
 $(eval $(call SingleProfile,EnGenius,64k,ESR1750,esr1750,ESR1750,ttyS0,115200,$$(esr1750_mtdlayout),KRuImage,,0x61))
 $(eval $(call SingleProfile,EnGenius,64k,EPG5000,epg5000,EPG5000,ttyS0,115200,$$(epg5000_mtdlayout),KRuImage,,0x71))
 
-$(eval $(call SingleProfile,MyLoader,64k,WP543_4M,wp543,,ttyS0,115200,0x400000,4M))
 $(eval $(call SingleProfile,MyLoader,64k,WP543_8M,wp543,,ttyS0,115200,0x800000,8M))
 $(eval $(call SingleProfile,MyLoader,64k,WP543_16M,wp543,,ttyS0,115200,0x1000000,16M))
-$(eval $(call SingleProfile,MyLoader,64k,WPE72_4M,wpe72,,ttyS0,115200,0x400000,4M))
 $(eval $(call SingleProfile,MyLoader,64k,WPE72_8M,wpe72,,ttyS0,115200,0x800000,8M))
 $(eval $(call SingleProfile,MyLoader,64k,WPE72_16M,wpe72,,ttyS0,115200,0x1000000,16M))
 
-$(eval $(call SingleProfile,Netgear,64kraw,WNR2000V3,wnr2000v3,WNR2000V3,ttyS0,115200,$$(wnr2000v3_mtdlayout),0x32303033,WNR2000V3,"" NA,-H 29763551+04+32))
-$(eval $(call SingleProfile,NetgearLzma,64kraw,WNR2000V4,wnr2000v4,WNR2000V4,ttyS0,115200,$$(wnr2000v4_mtdlayout),0x32303034,WNR2000V4,"" NA,))
-$(eval $(call SingleProfile,Netgear,64kraw,WNR2000,wnr2000,WNR2000,ttyS0,115200,$$(wnr2000_mtdlayout),0x32303031,WNR2000,"" NA,))
 $(eval $(call SingleProfile,Netgear,64kraw,WNR2200,wnr2200,WNR2200,ttyS0,115200,$$(wnr2200_mtdlayout),0x32323030,wnr2200,"" NA,))
-$(eval $(call SingleProfile,Netgear,64kraw,REALWNR612V2,wnr612v2,WNR612V2,ttyS0,115200,$$(wnr2000v3_mtdlayout),0x32303631,WNR612V2,"",))
-$(eval $(call SingleProfile,Netgear,64kraw,N150R,n150r,WNR612V2,ttyS0,115200,$$(wnr2000v3_mtdlayout),0x32303631,N150R,"",))
-$(eval $(call SingleProfile,Netgear,64kraw,REALWNR1000V2,wnr1000v2,WNR1000V2,ttyS0,115200,$$(wnr2000v3_mtdlayout),0x31303031,WNR1000V2,"",))
-$(eval $(call SingleProfile,Netgear,64kraw,WNR1000V2_VC,wnr1000v2-vc,WNR1000V2,ttyS0,115200,$$(wnr2000v3_mtdlayout),0x31303030,WNR1000V2-VC,"",))
-$(eval $(call SingleProfile,Netgear,64kraw,WPN824N,wpn824n,WPN824N,ttyS0,115200,$$(wnr2000v3_mtdlayout),0x31313030,WPN824N,"" NA,))
 
 $(eval $(call SingleProfile,OpenMesh,squashfs-only,A60,a60,,,,A60))
 $(eval $(call SingleProfile,OpenMesh,squashfs-only,OM2P,om2p,,,,OM2P))
@@ -986,11 +957,6 @@ $(eval $(call SingleProfile,Planex,64kraw,MZKW300NH,mzk-w300nh,MZK-W300NH,ttyS0,
 
 $(eval $(call SingleProfile,Senao,squashfs-only,EAP300V2,eap300v2,EAP300V2,ttyS0,115200,$$(eap300v2_mtdlayout)))
 
-$(eval $(call SingleProfile,WHRHPG300N,64kraw,WHRG301N,whr-g301n,WHR-G301N,ttyS0,115200,$$(whrhpg300n_mtdlayout),WHR-G301N))
-$(eval $(call SingleProfile,WHRHPG300N,64kraw,WHRHPG300N,whr-hp-g300n,WHR-HP-G300N,ttyS0,115200,$$(whrhpg300n_mtdlayout),WHR-HP-G300N))
-$(eval $(call SingleProfile,WHRHPG300N,64kraw,WHRHPGN,whr-hp-gn,WHR-HP-GN,ttyS0,115200,$$(whrhpg300n_mtdlayout),WHR-HP-GN))
-$(eval $(call SingleProfile,WHRHPG300N,64kraw,WLAEAG300N,wlae-ag300n,WLAE-AG300N,ttyS0,115200,$$(whrhpg300n_mtdlayout),WLAE-AG300N))
-
 $(eval $(call SingleProfile,WRT400N,64k,WRT400N,wrt400n,WRT400N,ttyS0,115200))
 
 $(eval $(call SingleProfile,WZRHP128K,128kraw,WZRHPG300NH,wzr-hp-g300nh,WZR-HP-G300NH,ttyS0,115200,WZR-HP-G300NH))
@@ -1003,9 +969,52 @@ $(eval $(call SingleProfile,WZRHP64K,64kraw,WZR450HP2,wzr-450hp2,WZR-450HP2,ttyS
 $(eval $(call SingleProfile,Zcomax,64k,ZCN1523H28,zcn-1523h-2-8,ZCN-1523H-2,ttyS0,115200,$$(zcn1523h_mtdlayout)))
 $(eval $(call SingleProfile,Zcomax,64k,ZCN1523H516,zcn-1523h-5-16,ZCN-1523H-5,ttyS0,115200,$$(zcn1523h_mtdlayout)))
 
+endif # ifeq ($(SUBTARGET),generic)
+
+
+ifeq ($(SUBTARGET),tiny)
+
+$(eval $(call SingleProfile,CameoAP91,64kraw,DIR600A1,dir-600-a1,DIR-600-A1,ttyS0,115200,"AP91-AR7240-RT-090223-00"))
+$(eval $(call SingleProfile,CameoAP91,64kraw,DIR601A1,dir-601-a1,DIR-600-A1,ttyS0,115200,"AP91-AR7240-RT-090223-02"))
+$(eval $(call SingleProfile,CameoAP91,64kraw,FR54RTR,fr-54rtr,DIR-600-A1,ttyS0,115200,"AP91-AR7240-RT-090223-01"))
+
+$(eval $(call SingleProfile,CameoAP99,64kraw,EBR2310C1,ebr-2310-c1,EBR-2310-C1,ttyS0,115200,"AP91-AR7240-RT-090223-03"))
+$(eval $(call SingleProfile,CameoAP99,64kraw,DIR615E1,dir-615-e1,DIR-615-E1,ttyS0,115200,"AP93-AR7240-RT-081028-00"))
+$(eval $(call SingleProfile,CameoAP99,64kraw,DIR615E4,dir-615-e4,DIR-615-E4,ttyS0,115200,"AP99-AR7240-RT-091105-05"))
+
+$(eval $(call SingleProfile,CameoAP123_4M,64kraw,DIR615I1,dir-615-i1,DIR-615-I1,ttyS0,115200,"00DB120AR9341-RT-1012I1-00"))
+$(eval $(call SingleProfile,CameoAP123_4M,64kraw,DIR615I3,dir-615-i3,DIR-615-I1,ttyS0,115200,"00DB120AR9341-RT-101214-00"))
+
+$(eval $(call SingleProfile,CameoAP81,64kraw-nojffs,A02RBW300N,a02-rb-w300n,TEW-632BRP,ttyS0,115200,"AP81-AR9130-RT-070614-03"))
+$(eval $(call SingleProfile,CameoAP81,64kraw-nojffs,DIR615C1,dir-615-c1,DIR-615-C1,ttyS0,115200,"AP81-AR9130-RT-070614-02"))
+$(eval $(call SingleProfile,CameoAP81,64kraw-nojffs,TEW632BRP,tew-632brp,TEW-632BRP,ttyS0,115200,"AP81-AR9130-RT-070614-00"))
+$(eval $(call SingleProfile,CameoAP81,64kraw-nojffs,TEW652BRP_FW,tew-652brp,TEW-632BRP,ttyS0,115200,"AP81-AR9130-RT-080609-05"))
+$(eval $(call SingleProfile,CameoAP81,64kraw-nojffs,TEW652BRP_RECOVERY,tew-652brp-recovery,TEW-632BRP,ttyS0,115200,"AP81-AR9130-RT-070614-02"))
+
+$(eval $(call SingleProfile,CameoAP121,64kraw-nojffs,TEW712BR,tew-712br,TEW-712BR,ttyATH0,115200,"HORNET-RT-TEW712BR-3",1.99,""))
+$(eval $(call SingleProfile,CameoAP121,64kraw-nojffs,DIR601B1,dir-601-b1,TEW-712BR,ttyATH0,115200,"HORNET-RT-DIR601B1-3",2.99.99,"" "NA"))
+
+$(eval $(call SingleProfile,MyLoader,64k,WP543_4M,wp543,,ttyS0,115200,0x400000,4M))
+$(eval $(call SingleProfile,MyLoader,64k,WPE72_4M,wpe72,,ttyS0,115200,0x400000,4M))
+
+$(eval $(call SingleProfile,Netgear,64kraw,WNR2000V3,wnr2000v3,WNR2000V3,ttyS0,115200,$$(wnr2000v3_mtdlayout),0x32303033,WNR2000V3,"" NA,-H 29763551+04+32))
+$(eval $(call SingleProfile,NetgearLzma,64kraw,WNR2000V4,wnr2000v4,WNR2000V4,ttyS0,115200,$$(wnr2000v4_mtdlayout),0x32303034,WNR2000V4,"" NA,))
+$(eval $(call SingleProfile,Netgear,64kraw,WNR2000,wnr2000,WNR2000,ttyS0,115200,$$(wnr2000_mtdlayout),0x32303031,WNR2000,"" NA,))
+$(eval $(call SingleProfile,Netgear,64kraw,REALWNR612V2,wnr612v2,WNR612V2,ttyS0,115200,$$(wnr2000v3_mtdlayout),0x32303631,WNR612V2,"",))
+$(eval $(call SingleProfile,Netgear,64kraw,N150R,n150r,WNR612V2,ttyS0,115200,$$(wnr2000v3_mtdlayout),0x32303631,N150R,"",))
+$(eval $(call SingleProfile,Netgear,64kraw,REALWNR1000V2,wnr1000v2,WNR1000V2,ttyS0,115200,$$(wnr2000v3_mtdlayout),0x31303031,WNR1000V2,"",))
+$(eval $(call SingleProfile,Netgear,64kraw,WNR1000V2_VC,wnr1000v2-vc,WNR1000V2,ttyS0,115200,$$(wnr2000v3_mtdlayout),0x31303030,WNR1000V2-VC,"",))
+$(eval $(call SingleProfile,Netgear,64kraw,WPN824N,wpn824n,WPN824N,ttyS0,115200,$$(wnr2000v3_mtdlayout),0x31313030,WPN824N,"" NA,))
+
+$(eval $(call SingleProfile,WHRHPG300N,64kraw,WHRG301N,whr-g301n,WHR-G301N,ttyS0,115200,$$(whrhpg300n_mtdlayout),WHR-G301N))
+$(eval $(call SingleProfile,WHRHPG300N,64kraw,WHRHPG300N,whr-hp-g300n,WHR-HP-G300N,ttyS0,115200,$$(whrhpg300n_mtdlayout),WHR-HP-G300N))
+$(eval $(call SingleProfile,WHRHPG300N,64kraw,WHRHPGN,whr-hp-gn,WHR-HP-GN,ttyS0,115200,$$(whrhpg300n_mtdlayout),WHR-HP-GN))
+$(eval $(call SingleProfile,WHRHPG300N,64kraw,WLAEAG300N,wlae-ag300n,WLAE-AG300N,ttyS0,115200,$$(whrhpg300n_mtdlayout),WLAE-AG300N))
+
 $(eval $(call SingleProfile,ZyXEL,64k,NBG_460N_550N_550NH,nbg460n_550n_550nh,NBG460N,ttyS0,115200,NBG-460N))
 
-endif # ifeq ($(SUBTARGET),generic)
+endif # ifeq ($(SUBTARGET),tiny)
+
 
 ifeq ($(SUBTARGET),nand)
 
diff --git a/target/linux/ar71xx/image/tiny-legacy-devices.mk b/target/linux/ar71xx/image/tiny-legacy-devices.mk
new file mode 100644
index 0000000..3445c4c
--- /dev/null
+++ b/target/linux/ar71xx/image/tiny-legacy-devices.mk
@@ -0,0 +1,154 @@
+define LegacyDevice/DIR600A1
+  DEVICE_TITLE := D-Link DIR-600 rev. A1
+endef
+LEGACY_DEVICES += DIR600A1
+
+define LegacyDevice/DIR601A1
+  DEVICE_TITLE := D-Link DIR-601 rev. A1
+endef
+LEGACY_DEVICES += DIR601A1
+
+define LegacyDevice/FR54RTR
+  DEVICE_TITLE := Frys FR-54RTR
+endef
+LEGACY_DEVICES += FR54RTR
+
+define LegacyDevice/EBR2310C1
+  DEVICE_TITLE := D-Link EBR-2310 rev. C1
+endef
+LEGACY_DEVICES += EBR2310C1
+
+define LegacyDevice/DIR615E1
+  DEVICE_TITLE := D-Link DIR-615 rev. E1
+endef
+LEGACY_DEVICES += DIR615E1
+
+define LegacyDevice/DIR615E4
+  DEVICE_TITLE := D-Link DIR-615 rev. E4
+endef
+LEGACY_DEVICES += DIR615E4
+
+define LegacyDevice/DIR615I1
+  DEVICE_TITLE := D-Link DIR-615 rev. I1
+endef
+LEGACY_DEVICES += DIR615I1
+
+define LegacyDevice/DIR615I3
+  DEVICE_TITLE := D-Link DIR-615 rev. I3
+endef
+LEGACY_DEVICES += DIR615I3
+
+define LegacyDevice/A02RBW300N
+  DEVICE_TITLE := Atlantis-Land A02-RB-W300N
+endef
+LEGACY_DEVICES += A02RBW300N
+
+define LegacyDevice/DIR615C1
+  DEVICE_TITLE := D-Link DIR-615 rev. C1
+endef
+LEGACY_DEVICES += DIR615C1
+
+define LegacyDevice/TEW632BRP
+  DEVICE_TITLE := TRENDNet TEW-632BRP
+endef
+LEGACY_DEVICES += TEW632BRP
+
+define LegacyDevice/TEW652BRP_FW
+  DEVICE_TITLE := TRENDNet TEW-652BRP
+endef
+LEGACY_DEVICES += TEW652BRP_FW
+
+define LegacyDevice/TEW652BRP_RECOVERY
+  DEVICE_TITLE := TRENDNet TEW-652BRP (recovery)
+endef
+LEGACY_DEVICES += TEW652BRP_RECOVERY
+
+define LegacyDevice/TEW712BR
+  DEVICE_TITLE := TRENDNet TEW-712BR
+endef
+LEGACY_DEVICES += TEW712BR
+
+define LegacyDevice/DIR601B1
+  DEVICE_TITLE := D-Link DIR-601 rev. B1
+endef
+LEGACY_DEVICES += DIR601B1
+
+define LegacyDevice/WP543_4M
+  DEVICE_TITLE := Compex WP543/WPJ543 (4MB flash)
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2
+endef
+LEGACY_DEVICES += WP543_4M
+
+define LegacyDevice/WPE72_4M
+  DEVICE_TITLE := Compex WPE72/WPE72NX (4MB flash)
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2
+endef
+LEGACY_DEVICES += WPE72_4M
+
+define LegacyDevice/WNR2000
+  DEVICE_TITLE := NETGEAR WNR2000V1
+endef
+LEGACY_DEVICES += WNR2000
+
+define LegacyDevice/WNR2000V3
+  DEVICE_TITLE := NETGEAR WNR2000V3
+endef
+LEGACY_DEVICES += WNR2000V3
+
+define LegacyDevice/WNR2000V4
+  DEVICE_TITLE := NETGEAR WNR2000V4
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
+endef
+LEGACY_DEVICES += WNR2000V4
+
+define LegacyDevice/REALWNR612V2
+  DEVICE_TITLE := NETGEAR WNR612V2
+endef
+LEGACY_DEVICES += REALWNR612V2
+
+define LegacyDevice/N150R
+  DEVICE_TITLE := On Networks N150
+endef
+LEGACY_DEVICES += N150R
+
+define LegacyDevice/REALWNR1000V2
+  DEVICE_TITLE := NETGEAR WNR1000V2
+endef
+LEGACY_DEVICES += REALWNR1000V2
+
+define LegacyDevice/WNR1000V2_VC
+  DEVICE_TITLE := NETGEAR WNR1000V2-VC
+endef
+LEGACY_DEVICES += WNR1000V2_VC
+
+define LegacyDevice/WPN824N
+  DEVICE_TITLE := NETGEAR WPN824N
+endef
+LEGACY_DEVICES += WPN824N
+
+define LegacyDevice/WHRG301N
+  DEVICE_TITLE := Buffalo WHR-G301N
+endef
+LEGACY_DEVICES += WHRG301N
+
+define LegacyDevice/WHRHPG300N
+  DEVICE_TITLE := Buffalo WHR-HP-G300N
+endef
+LEGACY_DEVICES += WHRHPG300N
+
+define LegacyDevice/WHRHPGN
+  DEVICE_TITLE := Buffalo WHR-HP-GN
+endef
+LEGACY_DEVICES += WHRHPGN
+
+define LegacyDevice/WLAEAG300N
+  DEVICE_TITLE := Buffalo WLAE-AG300N
+  DEVICE_PACKAGES := kmod-ledtrig-netdev
+endef
+LEGACY_DEVICES += WLAEAG300N
+
+define LegacyDevice/NBG_460N_550N_550NH
+  DEVICE_TITLE := ZyXEL NBG 460N/550N/550NH
+  DEVICE_PACKAGES := kmod-rtc-pcf8563
+endef
+LEGACY_DEVICES += NBG_460N_550N_550NH
diff --git a/target/linux/ar71xx/image/tiny-tp-link.mk b/target/linux/ar71xx/image/tiny-tp-link.mk
new file mode 100644
index 0000000..092d8aa
--- /dev/null
+++ b/target/linux/ar71xx/image/tiny-tp-link.mk
@@ -0,0 +1,684 @@
+include ./common-tp-link.mk
+
+
+define Device/tl-mr10u-v1
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-MR10U v1
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2
+  BOARDNAME := TL-MR10U
+  DEVICE_PROFILE := TLMR10U
+  TPLINK_HWID := 0x00100101
+  CONSOLE := ttyATH0,115200
+endef
+TARGET_DEVICES += tl-mr10u-v1
+
+define Device/tl-mr11u-v1
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-MR11U v1
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
+  BOARDNAME := TL-MR11U
+  DEVICE_PROFILE := TLMR11U
+  TPLINK_HWID := 0x00110101
+  CONSOLE := ttyATH0,115200
+endef
+TARGET_DEVICES += tl-mr11u-v1
+
+define Device/tl-mr11u-v2
+  $(Device/tl-mr11u-v1)
+  DEVICE_TITLE := TP-LINK TL-MR11U v2
+  TPLINK_HWID := 0x00110102
+endef
+TARGET_DEVICES += tl-mr11u-v2
+
+define Device/tl-mr12u-v1
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-MR12U v1
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
+  BOARDNAME := TL-MR13U
+  DEVICE_PROFILE := TLMR12U
+  TPLINK_HWID := 0x00120101
+  CONSOLE := ttyATH0,115200
+endef
+TARGET_DEVICES += tl-mr12u-v1
+
+define Device/tl-mr13u-v1
+  $(Device/tl-mr12u-v1)
+  DEVICE_TITLE := TP-LINK TL-MR13U v1
+  DEVICE_PROFILE := TLMR13U
+  TPLINK_HWID := 0x00130101
+endef
+TARGET_DEVICES += tl-mr13u-v1
+
+define Device/tl-mr3020-v1
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-MR3020 v1
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
+  BOARDNAME := TL-MR3020
+  DEVICE_PROFILE := TLMR3020
+  TPLINK_HWID := 0x30200001
+  CONSOLE := ttyATH0,115200
+endef
+TARGET_DEVICES += tl-mr3020-v1
+
+define Device/tl-mr3040-v1
+  $(Device/tl-mr3020-v1)
+  DEVICE_TITLE := TP-LINK TL-MR3040 v1
+  BOARDNAME := TL-MR3040
+  DEVICE_PROFILE := TLMR3040
+  TPLINK_HWID := 0x30400001
+endef
+TARGET_DEVICES += tl-mr3040-v1
+
+define Device/tl-mr3040-v2
+  $(Device/tl-mr3040-v1)
+  DEVICE_TITLE := TP-LINK TL-MR3040 v2
+  BOARDNAME := TL-MR3040-v2
+  TPLINK_HWID := 0x30400002
+endef
+TARGET_DEVICES += tl-mr3040-v2
+
+define Device/tl-mr3220-v1
+  $(Device/tplink-4m)
+  DEVICE_TITLE := TP-LINK TL-MR3220 v1
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
+  BOARDNAME := TL-MR3220
+  DEVICE_PROFILE := TLMR3220
+  TPLINK_HWID := 0x32200001
+endef
+TARGET_DEVICES += tl-mr3220-v1
+
+define Device/tl-mr3220-v2
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-MR3220 v2
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
+  BOARDNAME := TL-MR3220-v2
+  DEVICE_PROFILE := TLMR3220
+  TPLINK_HWID := 0x32200002
+  CONSOLE := ttyATH0,115200
+endef
+TARGET_DEVICES += tl-mr3220-v2
+
+define Device/tl-mr3420-v1
+  $(Device/tplink-4m)
+  DEVICE_TITLE := TP-LINK TL-MR3420 v1
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
+  BOARDNAME := TL-MR3420
+  DEVICE_PROFILE := TLMR3420
+  TPLINK_HWID := 0x34200001
+endef
+TARGET_DEVICES += tl-mr3420-v1
+
+define Device/tl-mr3420-v2
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-MR3420 v2
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
+  BOARDNAME := TL-MR3420-v2
+  DEVICE_PROFILE := TLMR3420
+  TPLINK_HWID := 0x34200002
+endef
+TARGET_DEVICES += tl-mr3420-v2
+
+define Device/tl-wa701nd-v1
+  $(Device/tplink-4m)
+  DEVICE_TITLE := TP-LINK TL-WA701N/ND v1
+  BOARDNAME := TL-WA901ND
+  DEVICE_PROFILE := TLWA701
+  TPLINK_HWID := 0x07010001
+endef
+TARGET_DEVICES += tl-wa701nd-v1
+
+define Device/tl-wa701nd-v2
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WA701N/ND v2
+  BOARDNAME := TL-WA701ND-v2
+  DEVICE_PROFILE := TLWA701
+  TPLINK_HWID := 0x07010002
+  CONSOLE := ttyATH0,115200
+endef
+TARGET_DEVICES += tl-wa701nd-v2
+
+define Device/tl-wa7210n-v2
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WA7210N v2
+  DEVICE_PACKAGES := rssileds kmod-ledtrig-netdev
+  BOARDNAME := TL-WA7210N-v2
+  DEVICE_PROFILE := TLWA7210
+  TPLINK_HWID := 0x72100002
+  CONSOLE := ttyATH0,115200
+endef
+TARGET_DEVICES += tl-wa7210n-v2
+
+define Device/tl-wa730re-v1
+  $(Device/tplink-4m)
+  DEVICE_TITLE := TP-LINK TL-WA730RE v1
+  BOARDNAME := TL-WA901ND
+  DEVICE_PROFILE := TLWA730RE
+  TPLINK_HWID := 0x07300001
+endef
+TARGET_DEVICES += tl-wa730re-v1
+
+define Device/tl-wa750re-v1
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WA750RE v1
+  DEVICE_PACKAGES := rssileds
+  BOARDNAME := TL-WA750RE
+  DEVICE_PROFILE := TLWA750
+  TPLINK_HWID := 0x07500001
+endef
+TARGET_DEVICES += tl-wa750re-v1
+
+define Device/tl-wa7510n-v1
+  $(Device/tplink-4m)
+  DEVICE_TITLE := TP-LINK TL-WA7510N v1
+  BOARDNAME := TL-WA7510N
+  DEVICE_PROFILE := TLWA7510
+  TPLINK_HWID := 0x75100001
+endef
+TARGET_DEVICES += tl-wa7510n-v1
+
+define Device/tl-wa801nd-v1
+  $(Device/tplink-4m)
+  DEVICE_TITLE := TP-LINK TL-WA801N/ND v1
+  BOARDNAME := TL-WA901ND
+  DEVICE_PROFILE := TLWA801
+  TPLINK_HWID := 0x08010001
+endef
+TARGET_DEVICES += tl-wa801nd-v1
+
+define Device/tl-wa801nd-v2
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WA801N/ND v2
+  BOARDNAME := TL-WA801ND-v2
+  DEVICE_PROFILE := TLWA801
+  TPLINK_HWID := 0x08010002
+endef
+TARGET_DEVICES += tl-wa801nd-v2
+
+define Device/tl-wa801nd-v3
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WA801N/ND v3
+  BOARDNAME := TL-WA801ND-v3
+  DEVICE_PROFILE := TLWA801
+  TPLINK_HWID := 0x08010003
+endef
+TARGET_DEVICES += tl-wa801nd-v3
+
+define Device/tl-wa830re-v1
+  $(Device/tplink-4m)
+  DEVICE_TITLE := TP-LINK TL-WA830RE v1
+  BOARDNAME := TL-WA901ND
+  DEVICE_PROFILE := TLWA830
+  TPLINK_HWID := 0x08300010
+endef
+TARGET_DEVICES += tl-wa830re-v1
+
+define Device/tl-wa830re-v2
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WA830RE v2
+  BOARDNAME := TL-WA830RE-v2
+  DEVICE_PROFILE := TLWA830
+  TPLINK_HWID := 0x08300002
+endef
+TARGET_DEVICES += tl-wa830re-v2
+
+define Device/tl-wa850re-v1
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WA850RE v1
+  DEVICE_PACKAGES := rssileds
+  BOARDNAME := TL-WA850RE
+  DEVICE_PROFILE := TLWA850
+  TPLINK_HWID := 0x08500001
+endef
+TARGET_DEVICES += tl-wa850re-v1
+
+define Device/tl-wa85xre
+  $(Device/tplink)
+  TPLINK_HWREV := 0
+  KERNEL := kernel-bin | patch-cmdline | lzma | tplink-v1-header
+  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 at 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_ID := TLWA850REV2
+  TPLINK_HWID := 0x08500002
+endef
+TARGET_DEVICES += tl-wa850re-v2
+
+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
+TARGET_DEVICES += tl-wa855re-v1
+
+
+define Device/tl-wa860re-v1
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WA860RE v1
+  BOARDNAME := TL-WA860RE
+  DEVICE_PROFILE := TLWA860
+  TPLINK_HWID := 0x08600001
+endef
+TARGET_DEVICES += tl-wa860re-v1
+
+define Device/tl-wa901nd-v1
+  $(Device/tplink-4m)
+  DEVICE_TITLE := TP-LINK TL-WA901N/ND v1
+  BOARDNAME := TL-WA901ND
+  DEVICE_PROFILE := TLWA901
+  TPLINK_HWID := 0x09010001
+endef
+TARGET_DEVICES += tl-wa901nd-v1
+
+define Device/tl-wa901nd-v2
+  $(Device/tplink-4m)
+  DEVICE_TITLE := TP-LINK TL-WA901N/ND v2
+  BOARDNAME := TL-WA901ND-v2
+  DEVICE_PROFILE := TLWA901
+  TPLINK_HWID := 0x09010002
+endef
+TARGET_DEVICES += tl-wa901nd-v2
+
+define Device/tl-wa901nd-v3
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WA901N/ND v3
+  BOARDNAME := TL-WA901ND-v3
+  DEVICE_PROFILE := TLWA901
+  TPLINK_HWID := 0x09010003
+endef
+TARGET_DEVICES += tl-wa901nd-v3
+
+define Device/tl-wa901nd-v4
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WA901N/ND v4
+  BOARDNAME := TL-WA901ND-v4
+  DEVICE_PROFILE := TLWA901
+  TPLINK_HWID := 0x09010004
+  IMAGE/factory.bin := append-rootfs | mktplinkfw factory -C EU
+endef
+TARGET_DEVICES += tl-wa901nd-v4
+
+define Device/tl-wa901nd-v5
+  $(Device/tl-wa901nd-v4)
+  DEVICE_TITLE := TP-LINK TL-WA901N/ND v5
+  BOARDNAME := TL-WA901ND-v5
+  TPLINK_HWID := 0x09010005
+endef
+TARGET_DEVICES += tl-wa901nd-v5
+
+define Device/tl-wdr3320-v2
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WDR3320 v2
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
+  BOARDNAME := TL-WDR3320-v2
+  DEVICE_PROFILE := TLWDR3320V2
+  TPLINK_HWID := 0x33200002
+  TPLINK_HEADER_VERSION := 2
+endef
+TARGET_DEVICES += tl-wdr3320-v2
+
+define Device/tl-wr1041n-v2
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WR1041N v2
+  BOARDNAME := TL-WR1041N-v2
+  DEVICE_PROFILE := TLWR1041
+  TPLINK_HWID := 0x10410002
+endef
+TARGET_DEVICES += tl-wr1041n-v2
+
+define Device/tl-wr703n-v1
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WR703N v1
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2
+  BOARDNAME := TL-WR703N
+  DEVICE_PROFILE := TLWR703
+  TPLINK_HWID := 0x07030101
+  CONSOLE := ttyATH0,115200
+endef
+TARGET_DEVICES += tl-wr703n-v1
+
+define Device/tl-wr710n-v2
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WR710N v2
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2
+  BOARDNAME := TL-WR710N
+  DEVICE_PROFILE := TLWR710
+  TPLINK_HWID := 0x07100002
+  CONSOLE := ttyATH0,115200
+endef
+TARGET_DEVICES += tl-wr710n-v2
+
+define Device/tl-wr720n-v3
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WR720N v3
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2
+  BOARDNAME := TL-WR720N-v3
+  DEVICE_PROFILE := TLWR720
+  TPLINK_HWID := 0x07200103
+  CONSOLE := ttyATH0,115200
+endef
+TARGET_DEVICES += tl-wr720n-v3
+
+define Device/tl-wr720n-v4
+  $(Device/tl-wr720n-v3)
+  DEVICE_TITLE := TP-LINK TL-WR720N v4
+  TPLINK_HWID := 0x07200104
+endef
+TARGET_DEVICES += tl-wr720n-v4
+
+define Device/tl-wr740n-v1
+  $(Device/tplink-4m)
+  DEVICE_TITLE := TP-LINK TL-WR740N/ND v1
+  BOARDNAME := TL-WR741ND
+  DEVICE_PROFILE := TLWR740
+  TPLINK_HWID := 0x07400001
+endef
+TARGET_DEVICES += tl-wr740n-v1
+
+define Device/tl-wr740n-v3
+  $(Device/tl-wr740n-v1)
+  DEVICE_TITLE := TP-LINK TL-WR740N/ND v3
+  TPLINK_HWID := 0x07400003
+endef
+TARGET_DEVICES += tl-wr740n-v3
+
+define Device/tl-wr740n-v4
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WR740N/ND v4
+  BOARDNAME := TL-WR741ND-v4
+  DEVICE_PROFILE := TLWR740
+  TPLINK_HWID := 0x07400004
+  CONSOLE := ttyATH0,115200
+endef
+TARGET_DEVICES += tl-wr740n-v4
+
+define Device/tl-wr740n-v5
+  $(Device/tl-wr740n-v4)
+  DEVICE_TITLE := TP-LINK TL-WR740N/ND v5
+  TPLINK_HWID := 0x07400005
+endef
+TARGET_DEVICES += tl-wr740n-v5
+
+define Device/tl-wr740n-v6
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WR740N/ND v6
+  BOARDNAME := TL-WR740N-v6
+  DEVICE_PROFILE := TLWR740
+  TPLINK_HWID := 0x07400006
+endef
+TARGET_DEVICES += tl-wr740n-v6
+
+define Device/tl-wr741nd-v1
+  $(Device/tplink-4m)
+  DEVICE_TITLE := TP-LINK TL-WR741N/ND v1
+  BOARDNAME := TL-WR741ND
+  DEVICE_PROFILE := TLWR741
+  TPLINK_HWID := 0x07410001
+endef
+TARGET_DEVICES += tl-wr741nd-v1
+
+define Device/tl-wr741nd-v2
+  $(Device/tl-wr741nd-v1)
+  DEVICE_TITLE := TP-LINK TL-WR741N/ND v2
+endef
+TARGET_DEVICES += tl-wr741nd-v2
+
+define Device/tl-wr741nd-v4
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WR741N/ND v4
+  BOARDNAME := TL-WR741ND-v4
+  DEVICE_PROFILE := TLWR741
+  TPLINK_HWID := 0x07410004
+  CONSOLE := ttyATH0,115200
+endef
+TARGET_DEVICES += tl-wr741nd-v4
+
+define Device/tl-wr741nd-v5
+  $(Device/tl-wr741nd-v4)
+  DEVICE_TITLE := TP-LINK TL-WR741N/ND v5
+  TPLINK_HWID := 0x07400005
+endef
+TARGET_DEVICES += tl-wr741nd-v5
+
+define Device/tl-wr743nd-v1
+  $(Device/tplink-4m)
+  DEVICE_TITLE := TP-LINK TL-WR743N/ND v1
+  BOARDNAME := TL-WR741ND
+  DEVICE_PROFILE := TLWR743
+  TPLINK_HWID := 0x07430001
+endef
+TARGET_DEVICES += tl-wr743nd-v1
+
+define Device/tl-wr743nd-v2
+  $(Device/tl-wr741nd-v4)
+  DEVICE_TITLE := TP-LINK TL-WR743N/ND v2
+  DEVICE_PROFILE := TLWR743
+  TPLINK_HWID := 0x07430002
+endef
+TARGET_DEVICES += tl-wr743nd-v2
+
+define Device/tl-wr802n-v1
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WR802N v1
+  BOARDNAME := TL-WR802N-v1
+  DEVICE_PROFILE := TLWR802
+  TPLINK_HWID := 0x08020001
+  TPLINK_HWREV := 1
+endef
+TARGET_DEVICES += tl-wr802n-v1
+
+define Device/tl-wr802n-v2
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WR802N v2
+  BOARDNAME := TL-WR802N-v2
+  DEVICE_PROFILE := TLWR802
+  TPLINK_HWID := 0x08020002
+  TPLINK_HWREV := 2
+  IMAGES += factory-us.bin factory-eu.bin
+  IMAGE/factory-us.bin := append-rootfs | mktplinkfw factory -C US
+  IMAGE/factory-eu.bin := append-rootfs | mktplinkfw factory -C EU
+endef
+TARGET_DEVICES += tl-wr802n-v2
+
+define Device/tl-wr840n-v2
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WR840N v2
+  BOARDNAME := TL-WR840N-v2
+  DEVICE_PROFILE := TLWR840
+  TPLINK_HWID := 0x08400002
+  IMAGES += factory-eu.bin
+  IMAGE/factory-eu.bin := append-rootfs | mktplinkfw factory -C EU
+endef
+TARGET_DEVICES += tl-wr840n-v2
+
+define Device/tl-wr840n-v3
+  $(Device/tl-wr840n-v2)
+  DEVICE_TITLE := TP-LINK TL-WR840N v3
+  BOARDNAME := TL-WR840N-v3
+  TPLINK_HWID := 0x08400003
+endef
+TARGET_DEVICES += tl-wr840n-v3
+
+define Device/tl-wr841-v1.5
+  $(Device/tplink-4m)
+  DEVICE_TITLE := TP-LINK TL-WR841N/ND v1.5
+  BOARDNAME := TL-WR841N-v1.5
+  DEVICE_PROFILE := TLWR841
+  TPLINK_HWID := 0x08410002
+  TPLINK_HWREV := 2
+endef
+TARGET_DEVICES += tl-wr841-v1.5
+
+define Device/tl-wr841-v3
+  $(Device/tplink-4m)
+  DEVICE_TITLE := TP-LINK TL-WR841N/ND v3
+  BOARDNAME := TL-WR941ND
+  DEVICE_PROFILE := TLWR841
+  TPLINK_HWID := 0x08410003
+  TPLINK_HWREV := 3
+endef
+TARGET_DEVICES += tl-wr841-v3
+
+define Device/tl-wr841-v5
+  $(Device/tplink-4m)
+  DEVICE_TITLE := TP-LINK TL-WR841N/ND v5
+  BOARDNAME := TL-WR741ND
+  DEVICE_PROFILE := TLWR841
+  TPLINK_HWID := 0x08410005
+endef
+TARGET_DEVICES += tl-wr841-v5
+
+define Device/tl-wr841-v7
+  $(Device/tplink-4m)
+  DEVICE_TITLE := TP-LINK TL-WR841N/ND v7
+  BOARDNAME := TL-WR841N-v7
+  DEVICE_PROFILE := TLWR841
+  TPLINK_HWID := 0x08410007
+endef
+TARGET_DEVICES += tl-wr841-v7
+
+define Device/tl-wr841-v8
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WR841N/ND v8
+  BOARDNAME := TL-WR841N-v8
+  DEVICE_PROFILE := TLWR841
+  TPLINK_HWID := 0x08410008
+endef
+TARGET_DEVICES += tl-wr841-v8
+
+define Device/tl-wr841-v9
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WR841N/ND v9
+  BOARDNAME := TL-WR841N-v9
+  DEVICE_PROFILE := TLWR841
+  TPLINK_HWID := 0x08410009
+endef
+TARGET_DEVICES += tl-wr841-v9
+
+define Device/tl-wr841-v10
+  $(Device/tl-wr841-v9)
+  DEVICE_TITLE := TP-LINK TL-WR841N/ND v10
+  TPLINK_HWID := 0x08410010
+endef
+TARGET_DEVICES += tl-wr841-v10
+
+define Device/tl-wr841-v11
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WR841N/ND v11
+  BOARDNAME := TL-WR841N-v11
+  DEVICE_PROFILE := TLWR841
+  TPLINK_HWID := 0x08410011
+  IMAGES += factory-us.bin factory-eu.bin
+  IMAGE/factory-us.bin := append-rootfs | mktplinkfw factory -C US
+  IMAGE/factory-eu.bin := append-rootfs | mktplinkfw factory -C EU
+endef
+TARGET_DEVICES += tl-wr841-v11
+
+define Device/tl-wr841-v12
+  $(Device/tl-wr841-v11)
+  DEVICE_TITLE := TP-LINK TL-WR841N/ND v12
+  TPLINK_HWID := 0x08410012
+endef
+TARGET_DEVICES += tl-wr841-v12
+
+define Device/tl-wr843nd-v1
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WR843N/ND v1
+  BOARDNAME := TL-WR841N-v8
+  DEVICE_PROFILE := TLWR843
+  TPLINK_HWID := 0x08430001
+endef
+TARGET_DEVICES += tl-wr843nd-v1
+
+define Device/tl-wr847n-v8
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WR847N/ND v8
+  BOARDNAME := TL-WR841N-v8
+  DEVICE_PROFILE := TLWR841
+  TPLINK_HWID := 0x08470008
+endef
+TARGET_DEVICES += tl-wr847n-v8
+
+define Device/tl-wr940n-v4
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WR940N v4
+  BOARDNAME := TL-WR940N-v4
+  DEVICE_PROFILE := TLWR941
+  TPLINK_HWID := 0x09400004
+  IMAGES += factory-us.bin factory-eu.bin factory-br.bin
+  IMAGE/factory-us.bin := append-rootfs | mktplinkfw factory -C US
+  IMAGE/factory-eu.bin := append-rootfs | mktplinkfw factory -C EU
+  IMAGE/factory-br.bin := append-rootfs | mktplinkfw factory -C BR
+endef
+TARGET_DEVICES += tl-wr940n-v4
+
+define Device/tl-wr941nd-v2
+  $(Device/tplink-4m)
+  DEVICE_TITLE := TP-LINK TL-WR941N/ND v2
+  BOARDNAME := TL-WR941ND
+  DEVICE_PROFILE := TLWR941
+  TPLINK_HWID := 0x09410002
+  TPLINK_HWREV := 2
+endef
+TARGET_DEVICES += tl-wr941nd-v2
+
+define Device/tl-wr941nd-v3
+  $(Device/tl-wr941nd-v2)
+  DEVICE_TITLE := TP-LINK TL-WR941N/ND v3
+endef
+TARGET_DEVICES += tl-wr941nd-v3
+
+define Device/rnx-n360rt
+  $(Device/tl-wr941nd-v2)
+  DEVICE_TITLE := Rosewill RNX-N360RT
+  DEVICE_PROFILE := RNXN360RT
+  TPLINK_HWREV := 0x00420001
+endef
+TARGET_DEVICES += rnx-n360rt
+
+define Device/tl-wr941nd-v4
+  $(Device/tplink-4m)
+  DEVICE_TITLE := TP-LINK TL-WR941N/ND v4
+  BOARDNAME := TL-WR741ND
+  DEVICE_PROFILE := TLWR941
+  TPLINK_HWID := 0x09410004
+endef
+TARGET_DEVICES += tl-wr941nd-v4
+
+define Device/tl-wr941nd-v5
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WR941N/ND v5
+  BOARDNAME := TL-WR941ND-v5
+  DEVICE_PROFILE := TLWR941
+  TPLINK_HWID := 0x09410005
+endef
+TARGET_DEVICES += tl-wr941nd-v5
+
+define Device/tl-wr941nd-v6
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WR941N/ND v6
+  BOARDNAME := TL-WR941ND-v6
+  DEVICE_PROFILE := TLWR941
+  TPLINK_HWID := 0x09410006
+endef
+TARGET_DEVICES += tl-wr941nd-v6
+
+# Chinese version (unlike European) is similar to the TL-WDR3500
+define Device/tl-wr941nd-v6-cn
+  $(Device/tplink-4mlzma)
+  DEVICE_TITLE := TP-LINK TL-WR941N/ND v6 (CN)
+  BOARDNAME := TL-WDR3500
+  DEVICE_PROFILE := TLWR941
+  TPLINK_HWID := 0x09410006
+endef
+TARGET_DEVICES += tl-wr941nd-v6-cn
diff --git a/target/linux/ar71xx/tiny/config-default b/target/linux/ar71xx/tiny/config-default
new file mode 100644
index 0000000..2e9031a
--- /dev/null
+++ b/target/linux/ar71xx/tiny/config-default
@@ -0,0 +1,72 @@
+CONFIG_ATH79_DEV_AP9X_PCI=y
+CONFIG_ATH79_DEV_DSA=y
+CONFIG_ATH79_DEV_ETH=y
+CONFIG_ATH79_DEV_GPIO_BUTTONS=y
+CONFIG_ATH79_DEV_LEDS_GPIO=y
+CONFIG_ATH79_DEV_M25P80=y
+# CONFIG_ATH79_DEV_NFC is not set
+CONFIG_ATH79_DEV_SPI=y
+CONFIG_ATH79_DEV_USB=y
+CONFIG_ATH79_DEV_WMAC=y
+CONFIG_ATH79_MACH_DIR_600_A1=y
+CONFIG_ATH79_MACH_DIR_615_C1=y
+CONFIG_ATH79_MACH_DIR_615_I1=y
+CONFIG_ATH79_MACH_NBG460N=y
+CONFIG_ATH79_MACH_TEW_632BRP=y
+CONFIG_ATH79_MACH_TEW_712BR=y
+CONFIG_ATH79_MACH_TL_MR11U=y
+CONFIG_ATH79_MACH_TL_MR13U=y
+CONFIG_ATH79_MACH_TL_MR3020=y
+CONFIG_ATH79_MACH_TL_MR3X20=y
+CONFIG_ATH79_MACH_TL_WA701ND_V2=y
+CONFIG_ATH79_MACH_TL_WA7210N_V2=y
+CONFIG_ATH79_MACH_TL_WA801ND_V3=y
+CONFIG_ATH79_MACH_TL_WA830RE_V2=y
+CONFIG_ATH79_MACH_TL_WA850RE_V2=y
+CONFIG_ATH79_MACH_TL_WA855RE_V1=y
+CONFIG_ATH79_MACH_TL_WA901ND=y
+CONFIG_ATH79_MACH_TL_WA901ND_V2=y
+CONFIG_ATH79_MACH_TL_WA901ND_V4=y
+CONFIG_ATH79_MACH_TL_WAX50RE=y
+CONFIG_ATH79_MACH_TL_WDR3320_V2=y
+CONFIG_ATH79_MACH_TL_WDR3500=y
+CONFIG_ATH79_MACH_TL_WR1041N_V2=y
+CONFIG_ATH79_MACH_TL_WR703N=y
+CONFIG_ATH79_MACH_TL_WR720N_V3=y
+CONFIG_ATH79_MACH_TL_WR741ND=y
+CONFIG_ATH79_MACH_TL_WR741ND_V4=y
+CONFIG_ATH79_MACH_TL_WR802N_V1=y
+CONFIG_ATH79_MACH_TL_WR802N_V2=y
+CONFIG_ATH79_MACH_TL_WR840N_V2=y
+CONFIG_ATH79_MACH_TL_WR841N_V1=y
+CONFIG_ATH79_MACH_TL_WR841N_V8=y
+CONFIG_ATH79_MACH_TL_WR841N_V9=y
+CONFIG_ATH79_MACH_TL_WR940N_V4=y
+CONFIG_ATH79_MACH_TL_WR941ND=y
+CONFIG_ATH79_MACH_TL_WR941ND_V6=y
+CONFIG_ATH79_MACH_WHR_HP_G300N=y
+CONFIG_ATH79_MACH_WLAE_AG300N=y
+CONFIG_ATH79_MACH_WNR2000=y
+CONFIG_ATH79_MACH_WNR2000_V3=y
+CONFIG_ATH79_MACH_WNR2000_V4=y
+CONFIG_ATH79_MACH_WP543=y
+CONFIG_ATH79_MACH_WPE72=y
+CONFIG_ATH79_NVRAM=y
+CONFIG_ATH79_PCI_ATH9K_FIXUP=y
+CONFIG_BLK_MQ_PCI=y
+CONFIG_HW_HAS_PCI=y
+CONFIG_MYLOADER=y
+CONFIG_PCI=y
+CONFIG_PCI_AR724X=y
+CONFIG_PCI_DISABLE_COMMON_QUIRKS=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_SERIAL_AR933X=y
+CONFIG_SERIAL_AR933X_CONSOLE=y
+CONFIG_SERIAL_AR933X_NR_UARTS=2
+CONFIG_SOC_AR71XX=y
+CONFIG_SOC_AR724X=y
+CONFIG_SOC_AR913X=y
+CONFIG_SOC_AR933X=y
+CONFIG_SOC_AR934X=y
+CONFIG_SOC_QCA953X=y
+CONFIG_SOC_QCA956X=y
diff --git a/target/linux/ar71xx/tiny/profiles/00-default.mk b/target/linux/ar71xx/tiny/profiles/00-default.mk
new file mode 100644
index 0000000..d6d7608
--- /dev/null
+++ b/target/linux/ar71xx/tiny/profiles/00-default.mk
@@ -0,0 +1,11 @@
+define Profile/Default
+	NAME:=Default Profile (all drivers)
+	PACKAGES:= \
+		kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport
+	PRIORITY := 1
+endef
+
+define Profile/Default/Description
+	Default package set compatible with most boards.
+endef
+$(eval $(call Profile,Default))
diff --git a/target/linux/ar71xx/tiny/target.mk b/target/linux/ar71xx/tiny/target.mk
new file mode 100644
index 0000000..1742eb5
--- /dev/null
+++ b/target/linux/ar71xx/tiny/target.mk
@@ -0,0 +1,8 @@
+BOARDNAME:=Devices with small flash
+FEATURES += squashfs small_flash
+
+define Target/Description
+	Build firmware images for Atheros AR71xx/AR913x/AR934x based boards with small NOR flash.
+endef
+
+



More information about the lede-commits mailing list