diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
index 39a25aedde2a14e9729544b9603231f169862b50..6b88036dbbf3ddd6a86d547d4e83ec8dfa943af0 100644
--- a/target/linux/ar71xx/base-files/etc/diag.sh
+++ b/target/linux/ar71xx/base-files/etc/diag.sh
@@ -24,7 +24,6 @@ get_status_led() {
 		status_led="$board:green:system"
 		;;
 	ap132|\
-	ap81|\
 	db120|\
 	dr344|\
 	tew-632brp|\
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index d465c3f59222889750955b3a3321d52f73f82456..ffab8ebbc4e03d72fe1d7ce3b09b78b6fa5e66ba 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -465,9 +465,6 @@ ar71xx_board_detect() {
 	*"AP152 reference board")
 		name="ap152"
 		;;
-	*AP81)
-		name="ap81"
-		;;
 	*AP90Q)
 		name="ap90q"
 		;;
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
index dc68d4484208e3823d28c832c63e23ac6e23e441..0100d27211f1d6a48ce3e0c9ff801953d4ec0129 100755
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
@@ -176,7 +176,6 @@ platform_check_image() {
 	airgateway|\
 	airrouter|\
 	ap132|\
-	ap81|\
 	ap90q|\
 	bullet-m|\
 	c-55|\
diff --git a/target/linux/ar71xx/config-4.4 b/target/linux/ar71xx/config-4.4
index 40090f749f3275ab008aeb4942c07782fa472835..e83e6687473e0d229f212c38f1e30cc187a56595 100644
--- a/target/linux/ar71xx/config-4.4
+++ b/target/linux/ar71xx/config-4.4
@@ -47,7 +47,7 @@ CONFIG_ATH79_MACH_AP136=y
 CONFIG_ATH79_MACH_AP143=y
 CONFIG_ATH79_MACH_AP147=y
 CONFIG_ATH79_MACH_AP152=y
-CONFIG_ATH79_MACH_AP81=y
+# CONFIG_ATH79_MACH_AP81 is not set
 CONFIG_ATH79_MACH_AP90Q=y
 CONFIG_ATH79_MACH_AP96=y
 CONFIG_ATH79_MACH_ARCHER_C7=y
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/Makefile b/target/linux/ar71xx/files/arch/mips/ath79/Makefile
index 4affa5d6b1ffbd0c6ca664ecb6dda594bc6e27b4..03ca1019064ecda718159991c4db291ab8421ee2 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/Makefile
+++ b/target/linux/ar71xx/files/arch/mips/ath79/Makefile
@@ -53,7 +53,6 @@ obj-$(CONFIG_ATH79_MACH_AP136)			+= mach-ap136.o
 obj-$(CONFIG_ATH79_MACH_AP143)			+= mach-ap143.o
 obj-$(CONFIG_ATH79_MACH_AP147)			+= mach-ap147.o
 obj-$(CONFIG_ATH79_MACH_AP152)			+= mach-ap152.o
-obj-$(CONFIG_ATH79_MACH_AP81)			+= mach-ap81.o
 obj-$(CONFIG_ATH79_MACH_AP90Q)			+= mach-ap90q.o
 obj-$(CONFIG_ATH79_MACH_AP96)			+= mach-ap96.o
 obj-$(CONFIG_ATH79_MACH_ARCHER_C7)		+= mach-archer-c7.o
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h
index 8004fdb2f15e9da2947bf152b9092ea80c5215c6..cd26598770f9318d23cd47a5e1376362b045c4c9 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h
+++ b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h
@@ -36,7 +36,6 @@ enum ath79_mach_type {
 	ATH79_MACH_AP143,			/* Atheros AP143 reference board */
 	ATH79_MACH_AP147_010,			/* Atheros AP147-010 reference board */
 	ATH79_MACH_AP152,			/* Atheros AP152 reference board */
-	ATH79_MACH_AP81,			/* Atheros AP81 reference board */
 	ATH79_MACH_AP90Q,			/* YunCore AP90Q */
 	ATH79_MACH_AP96,			/* Atheros AP96 */
 	ATH79_MACH_ARCHER_C5,			/* TP-LINK Archer C5 board */
diff --git a/target/linux/ar71xx/image/legacy-devices.mk b/target/linux/ar71xx/image/legacy-devices.mk
index 48f347b4f33886355d2b4293790ade85fffe877f..7bf4f937521d46486a4e61ebdd7f72346880e036 100644
--- a/target/linux/ar71xx/image/legacy-devices.mk
+++ b/target/linux/ar71xx/image/legacy-devices.mk
@@ -14,12 +14,6 @@ define LegacyDevice/TUBE2H8M
 endef
 LEGACY_DEVICES += TUBE2H8M
 
-define LegacyDevice/AP81
-  DEVICE_TITLE := Atheros AP81 reference board
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2
-endef
-LEGACY_DEVICES += AP81
-
 define LegacyDevice/AP96
   DEVICE_TITLE := Atheros AP96 reference board
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
diff --git a/target/linux/ar71xx/image/legacy.mk b/target/linux/ar71xx/image/legacy.mk
index 939a51f394bf8ad788cb431f16f36e620f837800..53e53f04bd5490b0298bca81f0e1a7f5426f8a30 100644
--- a/target/linux/ar71xx/image/legacy.mk
+++ b/target/linux/ar71xx/image/legacy.mk
@@ -227,7 +227,6 @@ alfa_mtdlayout_8M=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,6144k(rootfs)
 alfa_mtdlayout_16M=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,15936k(firmware),64k(nvram),64k(art)ro
 all0258n_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env),6272k(firmware),1536k(failsafe),64k(art)ro
 all0315n_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,256k(u-boot-env),13568k(firmware),2048k(failsafe),256k(art)ro
-ap81_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,5120k(rootfs),2688k(kernel),64k(art)ro,7808k@0x50000(firmware)
 ap96_mtdlayout=mtdparts=spi0.0:192k(u-boot)ro,64k(u-boot-env)ro,6144k(rootfs),1728k(kernel),64k(art)ro,7872k@0x40000(firmware)
 ap121_mtdlayout_8M=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,6144k(rootfs),1600k(kernel),64k(nvram),64k(art)ro,7744k@0x50000(firmware)
 ap121_mtdlayout_16M=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,10944k(rootfs),4992k(kernel),64k(nvram),64k(art)ro,15936k@0x50000(firmware)
@@ -879,7 +878,6 @@ $(eval $(call SingleProfile,ALFA,64k,ALFANX,alfa-nx,ALFA-NX,ttyS0,115200,$$(alfa
 $(eval $(call SingleProfile,ALFA,64k,HORNETUB,hornet-ub,HORNET-UB,ttyATH0,115200,$$(alfa_mtdlayout_8M),1638400,6291456,kernel_image,rootfs_image))
 $(eval $(call SingleProfile,ALFA,64k,TUBE2H8M,tube2h-8M,TUBE2H,ttyATH0,115200,$$(alfa_mtdlayout_8M),1638400,6291456,kernel.image,rootfs.image))
 
-$(eval $(call SingleProfile,AthGzip,64k,AP81,ap81,AP81,ttyS0,115200,$$(ap81_mtdlayout),RKuImage))
 $(eval $(call SingleProfile,AthGzip,64k,AP96,ap96,AP96,ttyS0,115200,$$(ap96_mtdlayout),RKuImage))
 $(eval $(call SingleProfile,AthGzip,64k,WNDAP360,wndap360,WNDAP360,ttyS0,9600,$$(wndap360_mtdlayout),KRuImage))
 
diff --git a/target/linux/ar71xx/mikrotik/config-default b/target/linux/ar71xx/mikrotik/config-default
index 2791cfaa96cee8750d4db4d69484bd74865283dd..3d5d20daed581c32527a0e7c61cf86416cb5782d 100644
--- a/target/linux/ar71xx/mikrotik/config-default
+++ b/target/linux/ar71xx/mikrotik/config-default
@@ -9,7 +9,6 @@
 # CONFIG_ATH79_MACH_AP132 is not set
 # CONFIG_ATH79_MACH_AP136 is not set
 # CONFIG_ATH79_MACH_AP147 is not set
-# CONFIG_ATH79_MACH_AP81 is not set
 # CONFIG_ATH79_MACH_AP96 is not set
 # CONFIG_ATH79_MACH_ARCHER_C7 is not set
 # CONFIG_ATH79_MACH_AW_NR580 is not set
diff --git a/target/linux/ar71xx/nand/config-default b/target/linux/ar71xx/nand/config-default
index 4ee5edfb1727db0d53a2221e7cd978fac0d62668..1c3a650c391eec47d4ea2261d61326727b9997cd 100644
--- a/target/linux/ar71xx/nand/config-default
+++ b/target/linux/ar71xx/nand/config-default
@@ -8,7 +8,6 @@
 # CONFIG_ATH79_MACH_AP132 is not set
 # CONFIG_ATH79_MACH_AP136 is not set
 # CONFIG_ATH79_MACH_AP147 is not set
-# CONFIG_ATH79_MACH_AP81 is not set
 # CONFIG_ATH79_MACH_AP96 is not set
 # CONFIG_ATH79_MACH_ARCHER_C7 is not set
 # CONFIG_ATH79_MACH_AW_NR580 is not set
diff --git a/target/linux/ar71xx/patches-4.4/501-MIPS-ath79-add-mac-argument-to-ath79_register_wmac.patch b/target/linux/ar71xx/patches-4.4/501-MIPS-ath79-add-mac-argument-to-ath79_register_wmac.patch
index fdf353c2e66a869e17ee3d61cd222f47762bc701..1f330cf729de8ccd4c216fe6230ca50b8844fdda 100644
--- a/target/linux/ar71xx/patches-4.4/501-MIPS-ath79-add-mac-argument-to-ath79_register_wmac.patch
+++ b/target/linux/ar71xx/patches-4.4/501-MIPS-ath79-add-mac-argument-to-ath79_register_wmac.patch
@@ -46,17 +46,6 @@
 +void ath79_register_wmac(u8 *cal_data, u8 *mac_addr);
  
  #endif /* _ATH79_DEV_WMAC_H */
---- a/arch/mips/ath79/mach-ap81.c
-+++ b/arch/mips/ath79/mach-ap81.c
-@@ -92,7 +92,7 @@ static void __init ap81_setup(void)
- 					ap81_gpio_keys);
- 	ath79_register_spi(&ap81_spi_data, ap81_spi_info,
- 			   ARRAY_SIZE(ap81_spi_info));
--	ath79_register_wmac(cal_data);
-+	ath79_register_wmac(cal_data, NULL);
- 	ath79_register_usb();
- }
- 
 --- a/arch/mips/ath79/mach-db120.c
 +++ b/arch/mips/ath79/mach-db120.c
 @@ -128,7 +128,7 @@ static void __init db120_setup(void)
diff --git a/target/linux/ar71xx/patches-4.4/604-MIPS-ath79-ap81-fixes.patch b/target/linux/ar71xx/patches-4.4/604-MIPS-ath79-ap81-fixes.patch
deleted file mode 100644
index 3112eab6bb338cc41c2424e810ed2096063662ec..0000000000000000000000000000000000000000
--- a/target/linux/ar71xx/patches-4.4/604-MIPS-ath79-ap81-fixes.patch
+++ /dev/null
@@ -1,84 +0,0 @@
---- a/arch/mips/ath79/mach-ap81.c
-+++ b/arch/mips/ath79/mach-ap81.c
-@@ -9,12 +9,16 @@
-  *  by the Free Software Foundation.
-  */
- 
--#include "machtypes.h"
--#include "dev-wmac.h"
-+#include <linux/mtd/mtd.h>
-+#include <linux/mtd/partitions.h>
-+
-+#include "dev-eth.h"
- #include "dev-gpio-buttons.h"
- #include "dev-leds-gpio.h"
--#include "dev-spi.h"
-+#include "dev-m25p80.h"
- #include "dev-usb.h"
-+#include "dev-wmac.h"
-+#include "machtypes.h"
- 
- #define AP81_GPIO_LED_STATUS	1
- #define AP81_GPIO_LED_AOSS	3
-@@ -67,20 +71,6 @@ static struct gpio_keys_button ap81_gpio
- 	}
- };
- 
--static struct spi_board_info ap81_spi_info[] = {
--	{
--		.bus_num	= 0,
--		.chip_select	= 0,
--		.max_speed_hz	= 25000000,
--		.modalias	= "m25p64",
--	}
--};
--
--static struct ath79_spi_platform_data ap81_spi_data = {
--	.bus_num	= 0,
--	.num_chipselect = 1,
--};
--
- static void __init ap81_setup(void)
- {
- 	u8 *cal_data = (u8 *) KSEG1ADDR(AP81_CAL_DATA_ADDR);
-@@ -90,10 +80,24 @@ static void __init ap81_setup(void)
- 	ath79_register_gpio_keys_polled(-1, AP81_KEYS_POLL_INTERVAL,
- 					ARRAY_SIZE(ap81_gpio_keys),
- 					ap81_gpio_keys);
--	ath79_register_spi(&ap81_spi_data, ap81_spi_info,
--			   ARRAY_SIZE(ap81_spi_info));
-+	ath79_register_m25p80(NULL);
- 	ath79_register_wmac(cal_data, NULL);
- 	ath79_register_usb();
-+
-+	ath79_register_mdio(0, 0x0);
-+
-+	ath79_init_mac(ath79_eth0_data.mac_addr, cal_data, 0);
-+	ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
-+	ath79_eth0_data.speed = SPEED_100;
-+	ath79_eth0_data.duplex = DUPLEX_FULL;
-+	ath79_eth0_data.has_ar8216 = 1;
-+
-+	ath79_init_mac(ath79_eth1_data.mac_addr, cal_data, 1);
-+	ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
-+	ath79_eth1_data.phy_mask = 0x10;
-+
-+	ath79_register_eth(0);
-+	ath79_register_eth(1);
- }
- 
- MIPS_MACHINE(ATH79_MACH_AP81, "AP81", "Atheros AP81 reference board",
---- a/arch/mips/ath79/Kconfig
-+++ b/arch/mips/ath79/Kconfig
-@@ -30,9 +30,10 @@ config ATH79_MACH_AP136
- config ATH79_MACH_AP81
- 	bool "Atheros AP81 reference board"
- 	select SOC_AR913X
-+	select ATH79_DEV_ETH
- 	select ATH79_DEV_GPIO_BUTTONS
- 	select ATH79_DEV_LEDS_GPIO
--	select ATH79_DEV_SPI
-+	select ATH79_DEV_M25P80
- 	select ATH79_DEV_USB
- 	select ATH79_DEV_WMAC
- 	help
diff --git a/target/linux/ar71xx/patches-4.4/605-MIPS-ath79-db120-fixes.patch b/target/linux/ar71xx/patches-4.4/605-MIPS-ath79-db120-fixes.patch
index 080165a80278a47c2236d818efb2019a0d131ee4..1029d43669ae1f8dc88be7b104fa12907962b923 100644
--- a/target/linux/ar71xx/patches-4.4/605-MIPS-ath79-db120-fixes.patch
+++ b/target/linux/ar71xx/patches-4.4/605-MIPS-ath79-db120-fixes.patch
@@ -188,7 +188,7 @@
  MIPS_MACHINE(ATH79_MACH_DB120, "DB120", "Atheros DB120 reference board",
 --- a/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
-@@ -43,9 +43,12 @@ config ATH79_MACH_AP81
+@@ -42,9 +42,12 @@ config ATH79_MACH_AP81
  config ATH79_MACH_DB120
  	bool "Atheros DB120 reference board"
  	select SOC_AR934X
diff --git a/target/linux/ar71xx/patches-4.4/606-MIPS-ath79-pb44-fixes.patch b/target/linux/ar71xx/patches-4.4/606-MIPS-ath79-pb44-fixes.patch
index 3377e91a2f50853a5f4fbdc4cf11e32e2d0c2a90..f2943d083675e4a025a1e3762bd3e9970f9c1db5 100644
--- a/target/linux/ar71xx/patches-4.4/606-MIPS-ath79-pb44-fixes.patch
+++ b/target/linux/ar71xx/patches-4.4/606-MIPS-ath79-pb44-fixes.patch
@@ -136,7 +136,7 @@
  MIPS_MACHINE(ATH79_MACH_PB44, "PB44", "Atheros PB44 reference board",
 --- a/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
-@@ -58,6 +58,7 @@ config ATH79_MACH_DB120
+@@ -57,6 +57,7 @@ config ATH79_MACH_DB120
  config ATH79_MACH_PB44
  	bool "Atheros PB44 reference board"
  	select SOC_AR71XX
diff --git a/target/linux/ar71xx/patches-4.4/607-MIPS-ath79-ubnt-xm-fixes.patch b/target/linux/ar71xx/patches-4.4/607-MIPS-ath79-ubnt-xm-fixes.patch
index 4699c82746a9fb77b4fc59f0516028f6d44dd5b0..d667215a152d91a08be763753bf105968b7b829d 100644
--- a/target/linux/ar71xx/patches-4.4/607-MIPS-ath79-ubnt-xm-fixes.patch
+++ b/target/linux/ar71xx/patches-4.4/607-MIPS-ath79-ubnt-xm-fixes.patch
@@ -1,6 +1,6 @@
 --- a/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
-@@ -70,9 +70,10 @@ config ATH79_MACH_PB44
+@@ -69,9 +69,10 @@ config ATH79_MACH_PB44
  config ATH79_MACH_UBNT_XM
  	bool "Ubiquiti Networks XM (rev 1.0) board"
  	select SOC_AR724X
diff --git a/target/linux/ar71xx/patches-4.4/608-MIPS-ath79-ubnt-xm-add-more-boards.patch b/target/linux/ar71xx/patches-4.4/608-MIPS-ath79-ubnt-xm-add-more-boards.patch
index b33db4dd0d1c6ba8751de2f52128325ba44993c6..536c28d1ca955dbe50eee6236b9b1acd1ddd92ad 100644
--- a/target/linux/ar71xx/patches-4.4/608-MIPS-ath79-ubnt-xm-add-more-boards.patch
+++ b/target/linux/ar71xx/patches-4.4/608-MIPS-ath79-ubnt-xm-add-more-boards.patch
@@ -1,6 +1,6 @@
 --- a/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
-@@ -68,12 +68,16 @@ config ATH79_MACH_PB44
+@@ -67,12 +67,16 @@ config ATH79_MACH_PB44
  	  Atheros PB44 reference board.
  
  config ATH79_MACH_UBNT_XM
diff --git a/target/linux/ar71xx/patches-4.4/620-MIPS-ath79-add-support-for-QCA953x-SoC.patch b/target/linux/ar71xx/patches-4.4/620-MIPS-ath79-add-support-for-QCA953x-SoC.patch
index 08a684becda6fada81927e6bbf3fbb5c6c8fe559..27d47dc9fbd884afdc00c1c9a7ecac084807d8a4 100644
--- a/target/linux/ar71xx/patches-4.4/620-MIPS-ath79-add-support-for-QCA953x-SoC.patch
+++ b/target/linux/ar71xx/patches-4.4/620-MIPS-ath79-add-support-for-QCA953x-SoC.patch
@@ -22,7 +22,7 @@ meaning of the bits CPUCLK_FROM_CPUPLL and DDRCLK_FROM_DDRPLL is reversed.
 
 --- a/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
-@@ -117,6 +117,10 @@ config SOC_AR934X
+@@ -116,6 +116,10 @@ config SOC_AR934X
  	select PCI_AR724X if PCI
  	def_bool n
  
@@ -33,7 +33,7 @@ meaning of the bits CPUCLK_FROM_CPUPLL and DDRCLK_FROM_DDRPLL is reversed.
  config SOC_QCA955X
  	select HW_HAS_PCI
  	select PCI_AR724X if PCI
-@@ -156,7 +160,7 @@ config ATH79_DEV_USB
+@@ -155,7 +159,7 @@ config ATH79_DEV_USB
  	def_bool n
  
  config ATH79_DEV_WMAC
diff --git a/target/linux/ar71xx/patches-4.4/621-MIPS-ath79-add-support-for-QCA956x-SoC.patch b/target/linux/ar71xx/patches-4.4/621-MIPS-ath79-add-support-for-QCA956x-SoC.patch
index 116c2b675f8ce0241cf3954b58fe70c37eea2c8f..83ca49ec6f8b1d6099bb22ede420aeef8f5801ac 100644
--- a/target/linux/ar71xx/patches-4.4/621-MIPS-ath79-add-support-for-QCA956x-SoC.patch
+++ b/target/linux/ar71xx/patches-4.4/621-MIPS-ath79-add-support-for-QCA956x-SoC.patch
@@ -1,6 +1,6 @@
 --- a/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
-@@ -126,6 +126,12 @@ config SOC_QCA955X
+@@ -125,6 +125,12 @@ config SOC_QCA955X
  	select PCI_AR724X if PCI
  	def_bool n
  
@@ -13,7 +13,7 @@
  config ATH79_DEV_M25P80
  	select ATH79_DEV_SPI
  	def_bool n
-@@ -160,7 +166,7 @@ config ATH79_DEV_USB
+@@ -159,7 +165,7 @@ config ATH79_DEV_USB
  	def_bool n
  
  config ATH79_DEV_WMAC
diff --git a/target/linux/ar71xx/patches-4.4/700-MIPS-ath79-add-openwrt-Kconfig.patch b/target/linux/ar71xx/patches-4.4/700-MIPS-ath79-add-openwrt-Kconfig.patch
index c2bd2ea2b7fb814fba9b5c12ca3ed0ed5de7ec46..23162053ca4b42d4a4b4e80fea1934dc6866ce8f 100644
--- a/target/linux/ar71xx/patches-4.4/700-MIPS-ath79-add-openwrt-Kconfig.patch
+++ b/target/linux/ar71xx/patches-4.4/700-MIPS-ath79-add-openwrt-Kconfig.patch
@@ -1,6 +1,6 @@
 --- a/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
-@@ -95,6 +95,8 @@ choice
+@@ -94,6 +94,8 @@ choice
  		select SOC_AR913X
  endchoice