From e39dc8d823c86559eedbbdcee5f5c14b827fed0f Mon Sep 17 00:00:00 2001 From: Henryk Heisig Date: Tue, 27 Dec 2016 22:41:41 +0100 Subject: ar71xx: add support to TP-Link Archer C59v1 and C60v1 TP-Link Archer C59v1 is a dual-band AC1350 router, based on Qualcomm/Atheros QCA9561+QCA9886. Specification: - 775/650/258 MHz (CPU/DDR/AHB) - 128 MB of RAM (DDR2) - 16 MB of FLASH (SPI NOR) - 3T3R 2.4 GHz - 2T2R 5 GHz - 5x 10/100 Mbps Ethernet - USB 2.0 port - 8x LED (controled by 74HC595), 3x button - UART header on PCB TP-Link Archer C60v1 is a dual-band AC1350 router, based on Qualcomm/Atheros QCA9561+QCA9886. Specification: - 775/650/258 MHz (CPU/DDR/AHB) - 64 MB of RAM (DDR2) - 8 MB of FLASH (SPI NOR) - 3T3R 2.4 GHz - 2T2R 5 GHz - 5x 10/100 Mbps Ethernet - 7x LED, 2x button - UART header on PCB Currently not working: - Port LAN1 on C59, LAN4 on C60 - WiFi 5GHz (missing ath10k firmware for QCA9886 chip) - Update from oficial web interface ( tplink-saveloader not support "product-info") Flash instruction: 1. Set PC to fixed ip address 192.168.0.66 2. Download lede-ar71xx-generic-archer-cXX-v1-squashfs-factory.bin and rename it to tp_recovery.bin 3. Start a tftp server with the file tp_recovery.bin in its root directory 4. Turn off the router 5. Press and hold Reset button 6. Turn on router with the reset button pressed and wait ~15 seconds 7. Release the reset button and after a short time the firmware should be transferred from the tftp server 8. Wait ~30 second to complete recovery. Flash instruction under U-Boot, using UART: 1. tftp 0x81000000 lede-ar71xx-...-sysupgrade.bin 2. erase 0x9f020000 +$filesize 3. cp.b $fileaddr 0x9f020000 $filesize 4. reset Signed-off-by: Henryk Heisig [Jo-Philipp Wich: remove duplicate ATH79_MACH_ARCHER_C59/C60_V1 entries] Signed-off-by: Jo-Philipp Wich --- target/linux/ar71xx/base-files/etc/board.d/01_leds | 13 +++++++++++++ target/linux/ar71xx/base-files/etc/board.d/02_network | 5 +++++ target/linux/ar71xx/base-files/etc/diag.sh | 2 ++ .../base-files/etc/hotplug.d/firmware/11-ath10k-caldata | 2 ++ target/linux/ar71xx/base-files/lib/ar71xx.sh | 6 ++++++ target/linux/ar71xx/base-files/lib/upgrade/platform.sh | 2 ++ 6 files changed, 30 insertions(+) (limited to 'target/linux/ar71xx/base-files') diff --git a/target/linux/ar71xx/base-files/etc/board.d/01_leds b/target/linux/ar71xx/base-files/etc/board.d/01_leds index 7a7329f965..b1ecb0204f 100755 --- a/target/linux/ar71xx/base-files/etc/board.d/01_leds +++ b/target/linux/ar71xx/base-files/etc/board.d/01_leds @@ -41,6 +41,19 @@ antrouter-r1) ucidef_set_led_wlan "wlan" "WLAN" "$board:green:wlan" "phy0tpt" ucidef_set_led_default "btc" "BTC" "$board:green:btc" "0" ;; +archer-c59-v1|\ +archer-c60-v1) + ucidef_set_led_switch "lan" "LAN" "$board:green:lan" "switch0" "0x3C" + ucidef_set_led_switch "wan" "WAN" "$board:green:wan" "switch0" "0x02" + ucidef_set_led_wlan "wlan" "WLAN" "$board:green:wlan2g" "phy1tpt" + ucidef_set_led_wlan "wlan5g" "WLAN5G" "$board:green:wlan5g" "phy0tpt" + + case "$board" in + archer-c59-v1) + ucidef_set_led_usbdev "usb" "USB" "$board:green:usb" "1-1" + ;; + esac + ;; arduino-yun) ucidef_set_led_wlan "wlan" "WLAN" "arduino:blue:wlan" "phy0tpt" ucidef_set_led_usbdev "usb" "USB" "arduino:white:usb" "1-1.1" diff --git a/target/linux/ar71xx/base-files/etc/board.d/02_network b/target/linux/ar71xx/base-files/etc/board.d/02_network index 551871e0fe..976440e605 100755 --- a/target/linux/ar71xx/base-files/etc/board.d/02_network +++ b/target/linux/ar71xx/base-files/etc/board.d/02_network @@ -196,6 +196,11 @@ ar71xx_setup_interfaces() ucidef_add_switch "switch0" \ "0@eth1" "2:lan" "3:lan" "4:lan" "5:lan" "6@eth0" "1:wan" ;; + archer-c59-v1|\ + archer-c60-v1) + ucidef_add_switch "switch0" \ + "0@eth0" "2:lan:4" "3:lan:3" "4:lan:2" "5:lan:1" "1:wan" + ;; arduino-yun|\ dir-505-a1|\ tl-wa801nd-v3) diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh index 4bbb93a60f..edcf621b76 100644 --- a/target/linux/ar71xx/base-files/etc/diag.sh +++ b/target/linux/ar71xx/base-files/etc/diag.sh @@ -41,6 +41,8 @@ get_status_led() { ap135-020) status_led="ap135:green:status" ;; + archer-c59-v1|\ + archer-c60-v1|\ mr12|\ mr16|\ nbg6616|\ diff --git a/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index a4f426e142..8693d8a0aa 100644 --- a/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -90,6 +90,8 @@ case "$FIRMWARE" in ath10kcal_extract "art" 20480 2116 ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -2) ;; + archer-c59-v1|\ + archer-c60-v1|\ tl-wdr6500-v2) ath10kcal_extract "art" 20480 2116 ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) -2) diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index ad73ec1520..3ca2c0d633 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -454,6 +454,12 @@ ar71xx_board_detect() { *"Archer C5") name="archer-c5" ;; + *"Archer C59 v1") + name="archer-c59-v1" + ;; + *"Archer C60 v1") + name="archer-c60-v1" + ;; *"Archer C7") name="archer-c7" ;; diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index e0ba5d37ff..cf2aab2737 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -205,6 +205,8 @@ platform_check_image() { airrouter|\ ap132|\ ap90q|\ + archer-c59-v1|\ + archer-c60-v1|\ bullet-m|\ c-55|\ carambola2|\ -- cgit v1.2.3