Index: openwrt/target/linux/ar71xx/base-files/etc/board.d/01_leds =================================================================== --- openwrt.orig/target/linux/ar71xx/base-files/etc/board.d/01_leds +++ openwrt/target/linux/ar71xx/base-files/etc/board.d/01_leds @@ -257,6 +257,7 @@ cpe210-v3|\ cpe220-v3|\ cpe510|\ cpe510-v2|\ +cpe510-v3|\ wbs210|\ wbs510) ucidef_set_rssimon "wlan0" "200000" "1" @@ -268,7 +269,8 @@ wbs510) case "$board" in cpe210-v2|\ cpe210-v3|\ - cpe510-v2) + cpe510-v2|\ + cpe510-v3) ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan0" "eth0" ;; *) Index: openwrt/target/linux/ar71xx/base-files/etc/board.d/02_network =================================================================== --- openwrt.orig/target/linux/ar71xx/base-files/etc/board.d/02_network +++ openwrt/target/linux/ar71xx/base-files/etc/board.d/02_network @@ -78,6 +78,7 @@ ar71xx_setup_interfaces() cpe210-v2|\ cpe210-v3|\ cpe510-v2|\ + cpe510-v3|\ dr342|\ eap120|\ eap300v2|\ Index: openwrt/target/linux/ar71xx/base-files/lib/ar71xx.sh =================================================================== --- openwrt.orig/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ openwrt/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -773,6 +773,10 @@ ar71xx_board_detect() { name="cpe510-v2" tplink_pharos_board_detect "$(tplink_pharos_v2_get_model_string)" ;; + *"CPE510 v3") + name="cpe510-v3" + tplink_pharos_board_detect "$(tplink_pharos_v2_get_model_string)" + ;; *"CPE610") name="cpe610" tplink_pharos_board_detect "$(tplink_pharos_v2_get_model_string)" Index: openwrt/target/linux/ar71xx/base-files/lib/upgrade/platform.sh =================================================================== --- openwrt.orig/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ openwrt/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -600,7 +600,8 @@ platform_check_image() { return 1 ;; cpe610|\ - cpe510-v2) + cpe510-v2|\ + cpe510-v3) tplink_pharos_check_image "$1" "7f454c46" "$(tplink_pharos_v2_get_model_string)" '\0\xff\r' && return 0 return 1 ;; Index: openwrt/target/linux/ar71xx/files/arch/mips/ath79/mach-cpe510.c =================================================================== --- openwrt.orig/target/linux/ar71xx/files/arch/mips/ath79/mach-cpe510.c +++ openwrt/target/linux/ar71xx/files/arch/mips/ath79/mach-cpe510.c @@ -337,6 +337,9 @@ MIPS_MACHINE(ATH79_MACH_CPE210_V3, "CPE2 MIPS_MACHINE(ATH79_MACH_CPE220_V3, "CPE220V3", "TP-LINK CPE220 v3", cpe220_v3_setup); +MIPS_MACHINE(ATH79_MACH_CPE510_V3, "CPE510V3", "TP-LINK CPE510 v3", + cpe510_v2_setup); + MIPS_MACHINE(ATH79_MACH_CPE510, "CPE510", "TP-LINK CPE510/520", cpe510_setup); Index: openwrt/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h =================================================================== --- openwrt.orig/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h +++ openwrt/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h @@ -81,6 +81,7 @@ enum ath79_mach_type { ATH79_MACH_CPE505N, /* P&W CPE505N */ ATH79_MACH_CPE510, /* TP-LINK CPE510 */ ATH79_MACH_CPE510_V2, /* TP-LINK CPE510 v2 */ + ATH79_MACH_CPE510_V3, /* TP-LINK CPE510 v3 */ ATH79_MACH_CPE610, /* TP-LINK CPE610 */ ATH79_MACH_CPE830, /* YunCore CPE830 */ ATH79_MACH_CPE870, /* YunCore CPE870 */ Index: openwrt/target/linux/ar71xx/image/generic-tp-link.mk =================================================================== --- openwrt.orig/target/linux/ar71xx/image/generic-tp-link.mk +++ openwrt/target/linux/ar71xx/image/generic-tp-link.mk @@ -185,6 +185,13 @@ define Device/cpe510-v2 endef TARGET_DEVICES += cpe510-v2 +define Device/cpe510-v3 + $(Device/cpe510-520-v1) + DEVICE_TITLE := TP-LINK CPE510 v3 + BOARDNAME := CPE510V3 +endef +TARGET_DEVICES += cpe510-v3 + define Device/cpe210-220-v1 $(Device/cpe510-520-v1) DEVICE_TITLE := TP-LINK CPE210/220 v1 Index: openwrt/tools/firmware-utils/src/tplink-safeloader.c =================================================================== --- openwrt.orig/tools/firmware-utils/src/tplink-safeloader.c +++ openwrt/tools/firmware-utils/src/tplink-safeloader.c @@ -368,7 +368,17 @@ static struct device_info boards[] = { "CPE510(TP-LINK|US|N300-5|55530000):2.0\r\n" "CPE510(TP-LINK|UN|N300-5):2.0\r\n" "CPE510(TP-LINK|EU|N300-5):2.0\r\n" - "CPE510(TP-LINK|US|N300-5):2.0\r\n", + "CPE510(TP-LINK|US|N300-5):2.0\r\n" + "CPE510(TP-LINK|EU|N300-5|00000000):3.0\r\n" + "CPE510(TP-LINK|EU|N300-5|45550000):3.0\r\n" + "CPE510(TP-LINK|EU|N300-5|55530000):3.0\r\n" + "CPE510(TP-LINK|UN|N300-5|00000000):3.0\r\n" + "CPE510(TP-LINK|UN|N300-5|45550000):3.0\r\n" + "CPE510(TP-LINK|UN|N300-5|55530000):3.0\r\n" + "CPE510(TP-LINK|US|N300-5|55530000):3.0\r\n" + "CPE510(TP-LINK|UN|N300-5):3.0\r\n" + "CPE510(TP-LINK|EU|N300-5):3.0\r\n" + "CPE510(TP-LINK|US|N300-5):3.0\r\n", .support_trail = '\xff', .soft_ver = NULL,