diff --git a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c
index 281175bae74ebb11981afea2d8672874abe34b6a..57d8b9f420d769712493cd6579875cc7d8f52ec3 100644
--- a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c
+++ b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c
@@ -258,6 +258,7 @@ static struct mtd_part_parser uimage_generic_parser = {
 	.type = MTD_PARSER_TYPE_FIRMWARE,
 };
 
+#define FW_MAGIC_GS110TPPV1	0x4e474520
 #define FW_MAGIC_WNR2000V1	0x32303031
 #define FW_MAGIC_WNR2000V3	0x32303033
 #define FW_MAGIC_WNR2000V4	0x32303034
@@ -275,6 +276,10 @@ static ssize_t uimage_verify_wndr3700(u_char *buf, size_t len, int *extralen)
 	uint8_t expected_type = IH_TYPE_FILESYSTEM;
 
 	switch (be32_to_cpu(header->ih_magic)) {
+	case FW_MAGIC_GS110TPPV1:
+	case FW_MAGIC_WNR2000V4:
+		expected_type = IH_TYPE_KERNEL;
+		break;
 	case FW_MAGIC_WNR612V2:
 	case FW_MAGIC_WNR1000V2:
 	case FW_MAGIC_WNR1000V2_VC:
@@ -285,9 +290,6 @@ static ssize_t uimage_verify_wndr3700(u_char *buf, size_t len, int *extralen)
 	case FW_MAGIC_WNDR3700V2:
 	case FW_MAGIC_WPN824N:
 		break;
-	case FW_MAGIC_WNR2000V4:
-		expected_type = IH_TYPE_KERNEL;
-		break;
 	default:
 		return -EINVAL;
 	}