diff --git a/patches/openwrt/0028-tplink-safeloader-expand-support-list-for-TP-Link-CPE210-v3.patch b/patches/openwrt/0028-tplink-safeloader-expand-support-list-for-TP-Link-CPE210-v3.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2c2b374952698787f96255de13c131ccff07bcf9
--- /dev/null
+++ b/patches/openwrt/0028-tplink-safeloader-expand-support-list-for-TP-Link-CPE210-v3.patch
@@ -0,0 +1,37 @@
+From: Adrian Schmutzler <freifunk@adrianschmutzler.de>
+Date: Wed, 8 Jul 2020 11:08:17 +0200
+Subject: tplink-safeloader: expand support list for TP-Link CPE210 v3
+
+This adds new strings to the support list for the TP-Link CPE210 v3
+that are supposed to work with the existing setup.
+
+Without it, the factory image won't be accepted by the vendor UI on
+these newer revisions.
+
+Tested on a CPE210 v3.20 (EU).
+
+Ref: https://forum.openwrt.org/t/build-for-cpe210-v3-20/68000
+
+Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
+
+diff --git a/tools/firmware-utils/src/tplink-safeloader.c b/tools/firmware-utils/src/tplink-safeloader.c
+index de15faf6796c993efc6c2a36b22bb1e978e3be90..4f762d82e3d6073591958fa30af993da66dd10ec 100644
+--- a/tools/firmware-utils/src/tplink-safeloader.c
++++ b/tools/firmware-utils/src/tplink-safeloader.c
+@@ -205,8 +205,15 @@ static struct device_info boards[] = {
+ 			"SupportList:\r\n"
+ 			"CPE210(TP-LINK|EU|N300-2|45550000):3.0\r\n"
+ 			"CPE210(TP-LINK|UN|N300-2|00000000):3.0\r\n"
++			"CPE210(TP-LINK|US|N300-2|55530000):3.0\r\n"
+ 			"CPE210(TP-LINK|UN|N300-2):3.0\r\n"
+-			"CPE210(TP-LINK|EU|N300-2):3.0\r\n",
++			"CPE210(TP-LINK|EU|N300-2):3.0\r\n"
++			"CPE210(TP-LINK|EU|N300-2|45550000):3.1\r\n"
++			"CPE210(TP-LINK|UN|N300-2|00000000):3.1\r\n"
++			"CPE210(TP-LINK|US|N300-2|55530000):3.1\r\n"
++			"CPE210(TP-LINK|EU|N300-2|45550000):3.20\r\n"
++			"CPE210(TP-LINK|UN|N300-2|00000000):3.20\r\n"
++			"CPE210(TP-LINK|US|N300-2|55530000):3.20\r\n",
+ 		.support_trail = '\xff',
+ 		.soft_ver = NULL,
+