diff --git a/patches/lede/0078-ar71xx-increase-kernel-partition-size-for-UniFi-AP-Pro-and-Outdoor.patch b/patches/lede/0078-ar71xx-increase-kernel-partition-size-for-UniFi-AP-Pro-and-Outdoor.patch
new file mode 100644
index 0000000000000000000000000000000000000000..57d72f8ab85ed41441674eaef66b30c0c4fca44b
--- /dev/null
+++ b/patches/lede/0078-ar71xx-increase-kernel-partition-size-for-UniFi-AP-Pro-and-Outdoor.patch
@@ -0,0 +1,24 @@
+From: Matthias Schiffer <mschiffer@universe-factory.net>
+Date: Tue, 10 Apr 2018 15:19:52 +0200
+Subject: ar71xx: increase kernel partition size for UniFi AP Pro and Outdoor+
+
+Tested on UAP Outdoor+.
+
+Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
+
+diff --git a/target/linux/ar71xx/image/ubnt.mk b/target/linux/ar71xx/image/ubnt.mk
+index 65ed708459e7e6026713437430fc248c692cd070..ef50aa99541b8220eac71b2f1b1a33419fdab987 100644
+--- a/target/linux/ar71xx/image/ubnt.mk
++++ b/target/linux/ar71xx/image/ubnt.mk
+@@ -253,9 +253,9 @@ TARGET_DEVICES += ubnt-rs ubnt-rspro ubnt-ls-sr71
+ 
+ define Device/ubnt-uap-pro
+   DEVICE_TITLE := Ubiquiti UAP Pro
+-  KERNEL_SIZE := 1536k
++  KERNEL_SIZE := 1792k
+   IMAGE_SIZE := 15744k
+-  MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,1536k(kernel),14208k(rootfs),256k(cfg)ro,64k(EEPROM)ro,15744k@0x50000(firmware)
++  MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,1792k(kernel),13952k(rootfs),256k(cfg)ro,64k(EEPROM)ro,15744k@0x50000(firmware)
+   UBNT_TYPE := BZ
+   UBNT_CHIP := ar934x
+   BOARDNAME := UAP-PRO
diff --git a/patches/lede/0079-firmware-utils-tplink-safeloader-move-CPE-WBS-210-510-version-metainfo-to-the-end.patch b/patches/lede/0079-firmware-utils-tplink-safeloader-move-CPE-WBS-210-510-version-metainfo-to-the-end.patch
new file mode 100644
index 0000000000000000000000000000000000000000..dbe58d7b9ce080b0318dde727db921bff4882aae
--- /dev/null
+++ b/patches/lede/0079-firmware-utils-tplink-safeloader-move-CPE-WBS-210-510-version-metainfo-to-the-end.patch
@@ -0,0 +1,109 @@
+From: Matthias Schiffer <mschiffer@universe-factory.net>
+Date: Tue, 10 Apr 2018 17:26:34 +0200
+Subject: firmware-utils: tplink-safeloader: move CPE/WBS 210/510 version metainfo to the end
+
+Having the metainfo between kernel and rootfs prevents us from resizing
+the kernel partition as necessary.
+
+Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
+
+diff --git a/tools/firmware-utils/src/tplink-safeloader.c b/tools/firmware-utils/src/tplink-safeloader.c
+index 11ff2e56e19ec3780f988baf7257810530165b23..2a2329d1f188ea8520b6a4aeef25937e05d48a06 100644
+--- a/tools/firmware-utils/src/tplink-safeloader.c
++++ b/tools/firmware-utils/src/tplink-safeloader.c
+@@ -139,10 +139,10 @@ static struct device_info boards[] = {
+ 			{"default-mac", 0x30000, 0x00020},
+ 			{"product-info", 0x31100, 0x00100},
+ 			{"signature", 0x32000, 0x00400},
+-			{"os-image", 0x40000, 0x170000},
+-			{"soft-version", 0x1b0000, 0x00100},
+-			{"support-list", 0x1b1000, 0x00400},
+-			{"file-system", 0x1c0000, 0x600000},
++			{"os-image", 0x40000, 0x180000},
++			{"file-system", 0x1c0000, 0x5f0000},
++			{"soft-version", 0x7b0000, 0x00100},
++			{"support-list", 0x7b1000, 0x00400},
+ 			{"user-config", 0x7c0000, 0x10000},
+ 			{"default-config", 0x7d0000, 0x10000},
+ 			{"log", 0x7e0000, 0x10000},
+@@ -151,7 +151,7 @@ static struct device_info boards[] = {
+ 		},
+ 
+ 		.first_sysupgrade_partition = "os-image",
+-		.last_sysupgrade_partition = "file-system",
++		.last_sysupgrade_partition = "support-list",
+ 	},
+ 
+ 	/** Firmware layout for the CPE510/520 */
+@@ -177,10 +177,10 @@ static struct device_info boards[] = {
+ 			{"default-mac", 0x30000, 0x00020},
+ 			{"product-info", 0x31100, 0x00100},
+ 			{"signature", 0x32000, 0x00400},
+-			{"os-image", 0x40000, 0x170000},
+-			{"soft-version", 0x1b0000, 0x00100},
+-			{"support-list", 0x1b1000, 0x00400},
+-			{"file-system", 0x1c0000, 0x600000},
++			{"os-image", 0x40000, 0x180000},
++			{"file-system", 0x1c0000, 0x5f0000},
++			{"soft-version", 0x7b0000, 0x00100},
++			{"support-list", 0x7b1000, 0x00400},
+ 			{"user-config", 0x7c0000, 0x10000},
+ 			{"default-config", 0x7d0000, 0x10000},
+ 			{"log", 0x7e0000, 0x10000},
+@@ -189,7 +189,7 @@ static struct device_info boards[] = {
+ 		},
+ 
+ 		.first_sysupgrade_partition = "os-image",
+-		.last_sysupgrade_partition = "file-system",
++		.last_sysupgrade_partition = "support-list",
+ 	},
+ 
+ 	{
+@@ -209,10 +209,10 @@ static struct device_info boards[] = {
+ 			{"default-mac", 0x30000, 0x00020},
+ 			{"product-info", 0x31100, 0x00100},
+ 			{"signature", 0x32000, 0x00400},
+-			{"os-image", 0x40000, 0x170000},
+-			{"soft-version", 0x1b0000, 0x00100},
+-			{"support-list", 0x1b1000, 0x00400},
+-			{"file-system", 0x1c0000, 0x600000},
++			{"os-image", 0x40000, 0x180000},
++			{"file-system", 0x1c0000, 0x5f0000},
++			{"soft-version", 0x7b0000, 0x00100},
++			{"support-list", 0x7b1000, 0x00400},
+ 			{"user-config", 0x7c0000, 0x10000},
+ 			{"default-config", 0x7d0000, 0x10000},
+ 			{"log", 0x7e0000, 0x10000},
+@@ -221,7 +221,7 @@ static struct device_info boards[] = {
+ 		},
+ 
+ 		.first_sysupgrade_partition = "os-image",
+-		.last_sysupgrade_partition = "file-system",
++		.last_sysupgrade_partition = "support-list",
+ 	},
+ 
+ 	{
+@@ -241,10 +241,10 @@ static struct device_info boards[] = {
+ 			{"default-mac", 0x30000, 0x00020},
+ 			{"product-info", 0x31100, 0x00100},
+ 			{"signature", 0x32000, 0x00400},
+-			{"os-image", 0x40000, 0x170000},
+-			{"soft-version", 0x1b0000, 0x00100},
+-			{"support-list", 0x1b1000, 0x00400},
+-			{"file-system", 0x1c0000, 0x600000},
++			{"os-image", 0x40000, 0x180000},
++			{"file-system", 0x1c0000, 0x5f0000},
++			{"soft-version", 0x7b0000, 0x00100},
++			{"support-list", 0x7b1000, 0x00400},
+ 			{"user-config", 0x7c0000, 0x10000},
+ 			{"default-config", 0x7d0000, 0x10000},
+ 			{"log", 0x7e0000, 0x10000},
+@@ -253,7 +253,7 @@ static struct device_info boards[] = {
+ 		},
+ 
+ 		.first_sysupgrade_partition = "os-image",
+-		.last_sysupgrade_partition = "file-system",
++		.last_sysupgrade_partition = "support-list",
+ 	},
+ 
+ 	/** Firmware layout for the C2600 */
diff --git a/patches/lede/0080-ar71xx-increase-kernel-partition-size-for-CPE-WBS-210-510.patch b/patches/lede/0080-ar71xx-increase-kernel-partition-size-for-CPE-WBS-210-510.patch
new file mode 100644
index 0000000000000000000000000000000000000000..839e6753729b8b58e871cbbbac9c02e62cebc58f
--- /dev/null
+++ b/patches/lede/0080-ar71xx-increase-kernel-partition-size-for-CPE-WBS-210-510.patch
@@ -0,0 +1,67 @@
+From: Matthias Schiffer <mschiffer@universe-factory.net>
+Date: Tue, 10 Apr 2018 18:14:41 +0200
+Subject: ar71xx: increase kernel partition size for CPE/WBS 210/510
+
+Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
+
+diff --git a/target/linux/ar71xx/image/tp-link.mk b/target/linux/ar71xx/image/tp-link.mk
+index be7e846c88f9ebbb8a4e4840e690d7864386bf64..1a6e58fca882fc9d122c184ee8167537751acf25 100644
+--- a/target/linux/ar71xx/image/tp-link.mk
++++ b/target/linux/ar71xx/image/tp-link.mk
+@@ -167,7 +167,7 @@ TARGET_DEVICES += archer-c60-v1
+ define Device/cpe510-520
+   DEVICE_TITLE := TP-LINK CPE510/520
+   DEVICE_PACKAGES := rssileds
+-  MTDPARTS := spi0.0:128k(u-boot)ro,64k(pation-table)ro,64k(product-info)ro,1536k(kernel),6144k(rootfs),192k(config)ro,64k(ART)ro,7680k@0x40000(firmware)
++  MTDPARTS := spi0.0:128k(u-boot)ro,64k(partition-table)ro,64k(product-info)ro,1792k(kernel),5888k(rootfs),192k(config)ro,64k(ART)ro,7680k@0x40000(firmware)
+   IMAGE_SIZE := 7680k
+   BOARDNAME := CPE510
+   TPLINK_BOARD_NAME := CPE510
+diff --git a/tools/firmware-utils/src/tplink-safeloader.c b/tools/firmware-utils/src/tplink-safeloader.c
+index 2a2329d1f188ea8520b6a4aeef25937e05d48a06..ba86c71d870c8f38abb92c657c3656086a7782be 100644
+--- a/tools/firmware-utils/src/tplink-safeloader.c
++++ b/tools/firmware-utils/src/tplink-safeloader.c
+@@ -139,8 +139,8 @@ static struct device_info boards[] = {
+ 			{"default-mac", 0x30000, 0x00020},
+ 			{"product-info", 0x31100, 0x00100},
+ 			{"signature", 0x32000, 0x00400},
+-			{"os-image", 0x40000, 0x180000},
+-			{"file-system", 0x1c0000, 0x5f0000},
++			{"os-image", 0x40000, 0x1c0000},
++			{"file-system", 0x200000, 0x5b0000},
+ 			{"soft-version", 0x7b0000, 0x00100},
+ 			{"support-list", 0x7b1000, 0x00400},
+ 			{"user-config", 0x7c0000, 0x10000},
+@@ -177,8 +177,8 @@ static struct device_info boards[] = {
+ 			{"default-mac", 0x30000, 0x00020},
+ 			{"product-info", 0x31100, 0x00100},
+ 			{"signature", 0x32000, 0x00400},
+-			{"os-image", 0x40000, 0x180000},
+-			{"file-system", 0x1c0000, 0x5f0000},
++			{"os-image", 0x40000, 0x1c0000},
++			{"file-system", 0x200000, 0x5b0000},
+ 			{"soft-version", 0x7b0000, 0x00100},
+ 			{"support-list", 0x7b1000, 0x00400},
+ 			{"user-config", 0x7c0000, 0x10000},
+@@ -209,8 +209,8 @@ static struct device_info boards[] = {
+ 			{"default-mac", 0x30000, 0x00020},
+ 			{"product-info", 0x31100, 0x00100},
+ 			{"signature", 0x32000, 0x00400},
+-			{"os-image", 0x40000, 0x180000},
+-			{"file-system", 0x1c0000, 0x5f0000},
++			{"os-image", 0x40000, 0x1c0000},
++			{"file-system", 0x200000, 0x5b0000},
+ 			{"soft-version", 0x7b0000, 0x00100},
+ 			{"support-list", 0x7b1000, 0x00400},
+ 			{"user-config", 0x7c0000, 0x10000},
+@@ -241,8 +241,8 @@ static struct device_info boards[] = {
+ 			{"default-mac", 0x30000, 0x00020},
+ 			{"product-info", 0x31100, 0x00100},
+ 			{"signature", 0x32000, 0x00400},
+-			{"os-image", 0x40000, 0x180000},
+-			{"file-system", 0x1c0000, 0x5f0000},
++			{"os-image", 0x40000, 0x1c0000},
++			{"file-system", 0x200000, 0x5b0000},
+ 			{"soft-version", 0x7b0000, 0x00100},
+ 			{"support-list", 0x7b1000, 0x00400},
+ 			{"user-config", 0x7c0000, 0x10000},
diff --git a/patches/lede/0081-ar71xx-increase-kernel-partition-size-for-TP-Link-RE450-v1.patch b/patches/lede/0081-ar71xx-increase-kernel-partition-size-for-TP-Link-RE450-v1.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e03db780a8ab6ed962acae2083bd699d307111fb
--- /dev/null
+++ b/patches/lede/0081-ar71xx-increase-kernel-partition-size-for-TP-Link-RE450-v1.patch
@@ -0,0 +1,41 @@
+From: Piotr Dymacz <pepe2k@gmail.com>
+Date: Mon, 6 Nov 2017 23:17:24 +0100
+Subject: ar71xx: increase kernel partition size for TP-Link RE450 v1
+
+This increases kernel partition size and fixes rootfs (file-system)
+partition size on TP-Link RE450 v1. Also, while we are at it, switch
+from statically defined kernel and rootfs partitions in kernel cmdline
+to "tplink-fw" mtd splitter.
+
+Fixes: FS#1072.
+
+Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
+
+diff --git a/target/linux/ar71xx/image/tp-link.mk b/target/linux/ar71xx/image/tp-link.mk
+index 1a6e58fca882fc9d122c184ee8167537751acf25..60dfe0e3edafcadad4ddc08be7645b49f269907c 100644
+--- a/target/linux/ar71xx/image/tp-link.mk
++++ b/target/linux/ar71xx/image/tp-link.mk
+@@ -207,7 +207,7 @@ TARGET_DEVICES += cpe210-220 cpe510-520 wbs210 wbs510
+ define Device/re450
+   DEVICE_TITLE := TP-LINK RE450
+   DEVICE_PACKAGES := kmod-ath10k ath10k-firmware-qca988x
+-  MTDPARTS := spi0.0:128k(u-boot)ro,1344k(kernel),4672k(rootfs),64k(pation-table)ro,64k(product-info)ro,1856k(config)ro,64k(art)ro,6016k@0x20000(firmware)
++  MTDPARTS := spi0.0:128k(u-boot)ro,6016k(firmware),64k(partition-table)ro,64k(product-info)ro,1856k(config)ro,64k(art)ro
+   IMAGE_SIZE := 7936k
+   BOARDNAME := RE450
+   TPLINK_BOARD_NAME := RE450
+diff --git a/tools/firmware-utils/src/tplink-safeloader.c b/tools/firmware-utils/src/tplink-safeloader.c
+index ba86c71d870c8f38abb92c657c3656086a7782be..23b69f3bd0eb66aca650eb2ffd7d5cd2a7cb5194 100644
+--- a/tools/firmware-utils/src/tplink-safeloader.c
++++ b/tools/firmware-utils/src/tplink-safeloader.c
+@@ -689,8 +689,8 @@ static struct device_info boards[] = {
+ 		*/
+ 		.partitions = {
+ 			{"fs-uboot", 0x00000, 0x20000},
+-			{"os-image", 0x20000, 0x150000},
+-			{"file-system", 0x170000, 0x4a0000},
++			{"os-image", 0x20000, 0x180000},
++			{"file-system", 0x1a0000, 0x460000},
+ 			{"partition-table", 0x600000, 0x02000},
+ 			{"default-mac", 0x610000, 0x00020},
+ 			{"pin", 0x610100, 0x00020},