--- a/target/linux/ar71xx/base-files/etc/board.d/01_leds +++ b/target/linux/ar71xx/base-files/etc/board.d/01_leds @@ -254,6 +254,7 @@ cf-e530n) cpe210|\ cpe210-v2|\ cpe210-v3|\ +cpe220-v2|\ cpe220-v3|\ cpe510|\ cpe510-v2|\ --- a/target/linux/ar71xx/base-files/etc/board.d/02_network +++ b/target/linux/ar71xx/base-files/etc/board.d/02_network @@ -290,6 +290,7 @@ ar71xx_setup_interfaces() "0@eth0" "2:lan" "1:wan" "6@eth1" ;; cpe210|\ + cpe220-v2|\ cpe220-v3|\ cpe510|\ wbs210|\ --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -759,6 +759,10 @@ ar71xx_board_detect() { name="cpe210-v3" tplink_pharos_board_detect "$(tplink_pharos_v2_get_model_string)" ;; + *"CPE220 v2") + name="cpe220-v2" + tplink_pharos_board_detect "$(tplink_pharos_v2_get_model_string)" + ;; *"CPE220 v3") name="cpe220-v3" tplink_pharos_board_detect "$(tplink_pharos_v2_get_model_string)" --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -599,6 +599,7 @@ platform_check_image() { tplink_pharos_check_image "$1" "01000000" "$(tplink_pharos_v2_get_model_string)" '\0\xff\r' && return 0 return 1 ;; + cpe220-v2|\ cpe610|\ cpe510-v2|\ cpe510-v3) --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-cpe510.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-cpe510.c @@ -334,6 +334,9 @@ MIPS_MACHINE(ATH79_MACH_CPE210_V2, "CPE2 MIPS_MACHINE(ATH79_MACH_CPE210_V3, "CPE210V3", "TP-LINK CPE210 v3", cpe210_v2_setup); +MIPS_MACHINE(ATH79_MACH_CPE220_V2, "CPE220V2", "TP-LINK CPE220 v2", + cpe210_setup); + MIPS_MACHINE(ATH79_MACH_CPE220_V3, "CPE220V3", "TP-LINK CPE220 v3", cpe220_v3_setup); --- a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h +++ b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h @@ -77,6 +77,7 @@ enum ath79_mach_type { ATH79_MACH_CPE210, /* TP-LINK CPE210 v1 */ ATH79_MACH_CPE210_V2, /* TP-LINK CPE210 v2 */ ATH79_MACH_CPE210_V3, /* TP-LINK CPE210 v3 */ + ATH79_MACH_CPE220_V2, /* TP-LINK CPE220 v2 */ ATH79_MACH_CPE220_V3, /* TP-LINK CPE220 v3 */ ATH79_MACH_CPE505N, /* P&W CPE505N */ ATH79_MACH_CPE510, /* TP-LINK CPE510 */ --- a/target/linux/ar71xx/image/generic-tp-link.mk +++ b/target/linux/ar71xx/image/generic-tp-link.mk @@ -239,6 +239,14 @@ define Device/cpe610-v1 endef TARGET_DEVICES += cpe610-v1 +define Device/cpe220-v2 + $(Device/cpe510-520-v1) + DEVICE_TITLE := TP-LINK CPE220 v2 + BOARDNAME := CPE220V2 + TPLINK_BOARD_ID := CPE210 +endef +TARGET_DEVICES += cpe220-v2 + define Device/cpe220-v3 $(Device/cpe210-v2) DEVICE_TITLE := TP-LINK CPE220 v3 --- a/tools/firmware-utils/src/tplink-safeloader.c +++ b/tools/firmware-utils/src/tplink-safeloader.c @@ -131,7 +131,17 @@ static struct device_info boards[] = { "CPE210(TP-LINK|EU|N300-2):1.1\r\n" "CPE220(TP-LINK|UN|N300-2):1.1\r\n" "CPE220(TP-LINK|US|N300-2):1.1\r\n" - "CPE220(TP-LINK|EU|N300-2):1.1\r\n", + "CPE220(TP-LINK|EU|N300-2):1.1\r\n" + "CPE220(TP-LINK|EU|N300-2|00000000):2.0\r\n" + "CPE220(TP-LINK|EU|N300-2|45550000):2.0\r\n" + "CPE220(TP-LINK|EU|N300-2|55530000):2.0\r\n" + "CPE220(TP-LINK|UN|N300-2|00000000):2.0\r\n" + "CPE220(TP-LINK|UN|N300-2|45550000):2.0\r\n" + "CPE220(TP-LINK|UN|N300-2|55530000):2.0\r\n" + "CPE220(TP-LINK|US|N300-2|55530000):2.0\r\n" + "CPE220(TP-LINK|UN|N300-2):2.0\r\n" + "CPE220(TP-LINK|EU|N300-2):2.0\r\n" + "CPE220(TP-LINK|US|N300-2):2.0\r\n", .support_trail = '\xff', .soft_ver = NULL,