OpenWrt Forum Archive

Topic: Support for TP-Link Archer C2600

The content of this topic has been archived between 29 Mar 2018 and 6 May 2018. Unfortunately there are posts – most likely complete pages – missing.

I am in the same situation now.  Any luck figuring this out?  I can ping the router from my pc at 192.168.0.1 for about 10 seconds when I think it's in the tftp mode, but it never requests the image.  I even try to 'put' the image, but no luck. 


matheos wrote:

Please help with TFTP Recovery.
I have tried to verify that C2600 has working TFTP recovery method before flashing bendavid/arokh roms.
Without success.
TFPTD on IP Address 192.168.0.66, file ArcherC2600_1.0_tp_recovery.bin
Powering on with Reset button pressed.
Router not downloading firmware.

What have I did wrong?

Archer C2600 with Archer_C2600_V1_150924 ROM,
Windows 10 with tftpd64 on IP 192.168.0.66 connected to port LAN1

Hi Heinz!  Yes, I have c2600 v1.1  Is there a different tftp procedure that's preventing me picking up the image?  How do I debrick this baby and get it back in business?

thanks!

Heinz wrote:

@vildkatt Currently OpenWrt trunk image does not support C2600 V1.1 ( missing patch to support Flash Chip)
On last LEDE build V1.0 and V1.1 works great.

Nortilus wrote:
Nortilus wrote:

Im using Heinz current build, has anyone got openvpn working?

Or is there any other version that anyone has for c2600 working with openvpn? Sorry I'm very new to openwrt if this is a silly question!

My build is LEDE based. What is Your problem to install openvpn?
BTW My build its old. Use latest LEDE trunk.

@vildkatt Download and install tftpd32 or tftpd64
download latest lede firmware with "factory" in name
rename downloaded firmware to: ArcherC2600_1.0_tp_recovery.bin
Copy firmware to desktop
configure IP to wired network card to 192.168.0.66 and mask 255.255.255.0
connect computer to LAN port on router
run tftpd32/64 and click browse and select desktop
press and hold reset button and power on router
wait ~15 sec and relase button
wait ~5 minutes, after this router reboot and start loading firmware, first boot take ~240 sec

Heinz wrote:

@vildkatt Download and install tftpd32 or tftpd64
download latest lede firmware with "factory" in name
rename downloaded firmware to: ArcherC2600_1.0_tp_recovery.bin
Copy firmware to desktop
configure IP to wired network card to 192.168.0.66 and mask 255.255.255.0
connect computer to LAN port on router
run tftpd32/64 and click browse and select desktop
press and hold reset button and power on router
wait ~15 sec and relase button
wait ~5 minutes, after this router reboot and start loading firmware, first boot take ~240 sec

Also, it transfers that file FAST. If you're waiting to see the screen of the file transfer pop up, you probably wont see it. I made that mistake and probably interrupted several flashing attempts ( I checked the flash contents afterwards, so hopefully I didn't corrupt anything).

If you switch to the "Logs" tab in tftpd, then it will show the transfer request there and you won't miss it.

It seemed to start the TFTP transfer about 10 seconds after powerup (while I was still holding the reset button).

I noticed on my recovery, the router didn't reboot itself even after like 10 minutes. I just powered it down and back up and it was working fine.

(Last edited by TeutonJon78 on 28 Aug 2016, 00:29)

Thanks guys!  That did the job.  I was using pumpkin before and now I added the default route in ipv4 settings.  Like someone said, the tftp went really fast and even before I removed the pin from the reset button.  It was about 10 seconds after the power on that the tftp transfer happens.  I had to look in the logs to be sure that it actually happened.  Took a while to boot as Heinz said, but now i've got LEDE running. 

thanks again!



TeutonJon78 wrote:
Heinz wrote:

@vildkatt Download and install tftpd32 or tftpd64
download latest lede firmware with "factory" in name
rename downloaded firmware to: ArcherC2600_1.0_tp_recovery.bin
Copy firmware to desktop
configure IP to wired network card to 192.168.0.66 and mask 255.255.255.0
connect computer to LAN port on router
run tftpd32/64 and click browse and select desktop
press and hold reset button and power on router
wait ~15 sec and relase button
wait ~5 minutes, after this router reboot and start loading firmware, first boot take ~240 sec

Also, it transfers that file FAST. If you're waiting to see the screen of the file transfer pop up, you probably wont see it. I made that mistake and probably interrupted several flashing attempts ( I checked the flash contents afterwards, so hopefully I didn't corrupt anything).

If you switch to the "Logs" tab in tftpd, then it will show the transfer request there and you won't miss it.

It seemed to start the TFTP transfer about 10 seconds after powerup (while I was still holding the reset button).

I noticed on my recovery, the router didn't reboot itself even after like 10 minutes. I just powered it down and back up and it was working fine.

Hi.
I tested some commands on uboot. Whel run command ledtest i can power on all leds (include WiFi leds)
When I press WiFi button then can wifi led power on/off, wps button turn on/off wps led, reset button turn on/off power led, led button turn on/off all leds.

I find in GPL tarball Archer_C2600_v1_GPL\openwrt\qca\src\u-boot\drivers\pci\pci-ipq.c

[...]int ipq_pcie_led_init(void)
{
    int i = 0;
    void* iobase = 0;
    pci_dev_t devno = -1;
    pcie_params_t    *cfg;

    for (i = 0; i < PCI_MAX_DEVICES; i++) {
        cfg = &gboard_param->pcie_cfg[i];
        if (cfg->linkup) {
            pci_hose_scan(&pci_hose[i]);
        }
    }

    for (i = 0; i < PCI_MAX_DEVICES; i ++) {
        devno = pci_find_device(PCI_VENDOR_ID_ATHEROS, ATH_PCIE_BEELINER, i);
        if (devno != -1) {
            iobase = pci_map_bar(devno, PCI_BASE_ADDRESS_0, PCI_REGION_MEM);
            writel(readl(iobase + 0x85000) | (1<<ATH_BEELINER_LED), iobase + 0x85000);
            writel(readl(iobase + 0x85018) | (1<<ATH_BEELINER_LED), iobase + 0x85018);
        }
    }

    return 0;
}

int ipq_pcie_led_out_one(int on, int id)
{
    void* iobase = 0;
    pci_dev_t devno = -1;

    devno = pci_find_device(PCI_VENDOR_ID_ATHEROS, ATH_PCIE_BEELINER, id);
    if (devno != -1) {
        iobase = pci_map_bar(devno, PCI_BASE_ADDRESS_0, PCI_REGION_MEM);
        if (on) {
            writel(readl(iobase + 0x85000) & (~(1<<ATH_BEELINER_LED)), iobase + 0x85000);
        } else {
            writel(readl(iobase + 0x85000) | (1<<ATH_BEELINER_LED), iobase + 0x85000);
        }
    }

    return 0;
}

int ipq_pcie_led_out(int on)
{
    int i = 0;
    void* iobase = 0;
    pci_dev_t devno = -1;

    for (i = 0; i < PCI_MAX_DEVICES; i ++) {
        devno = pci_find_device(PCI_VENDOR_ID_ATHEROS, ATH_PCIE_BEELINER, i);
        if (devno != -1) {
            iobase = pci_map_bar(devno, PCI_BASE_ADDRESS_0, PCI_REGION_MEM);
            if (on) {
                writel(readl(iobase + 0x85000) & (~(1<<ATH_BEELINER_LED)), iobase + 0x85000);
            } else {
                writel(readl(iobase + 0x85000) | (1<<ATH_BEELINER_LED), iobase + 0x85000);
            }
        }
    }

    return 0;
}[...]

This look like wifi leds is on address 0x85000 on each wireless PCI card.
Maybe is possible to add this address to ath10k driver?

Heinz wrote:

I tested some commands on uboot. Whel run command ledtest i can power on all leds (include WiFi leds)
When I press WiFi button then can wifi led power on/off, wps button turn on/off wps led, reset button turn on/off power led, led button turn on/off all leds.

I find in GPL tarball Archer_C2600_v1_GPL\openwrt\qca\src\u-boot\drivers\pci\pci-ipq.c

This GPL tarball is very big file. Nice work!
But it would be nice if the LED has been working.

Can someone pls confirm, HW rev 1.1, is the reboot issue fixed?

james04 wrote:

Can someone pls confirm, HW rev 1.1, is the reboot issue fixed?

No, problem still exists.

Is there anywhere I can visit to read an official change log for each LEDE Trunk build?

A6ix wrote:

Is there anywhere I can visit to read an official change log for each LEDE Trunk build?

Considering they're pretty much building a new version daily, you could check the commit logs in GIT, they usually have enough details in there to give you an idea of what is changing.

Maybe not super end-user friendly (like a list of features and bug fixes) but it will give you a good idea.

https://github.com/lede-project/source/commits/master

Heinz wrote:

On my C2600v1.1:
root@lede:/# openssl speed sha256

Doing sha256 for 3s on 16 size blocks: 1152201 sha256's in 2.96s
Doing sha256 for 3s on 64 size blocks: 726217 sha256's in 2.96s
Doing sha256 for 3s on 256 size blocks: 341812 sha256's in 2.96s
Doing sha256 for 3s on 1024 size blocks: 109455 sha256's in 2.96s
Doing sha256 for 3s on 8192 size blocks: 14864 sha256's in 2.95s
OpenSSL 1.0.2h  3 May 2016
built on: reproducible build, date unspecified
options:bn(64,32) rc4(ptr,char) des(idx,cisc,2,long) aes(partial) blowfish(ptr)
compiler: ccache_cc -I. -I.. -I../include  -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -I/mnt/build-dir/lede-build/arm_cortex-a15_neon-vfpv4/build/sdk/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl-1.1.15_eabi/usr/include -I/mnt/build-dir/lede-build/arm_cortex-a15_neon-vfpv4/build/sdk/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl-1.1.15_eabi/include -I/mnt/build-dir/lede-build/arm_cortex-a15_neon-vfpv4/build/sdk/staging_dir/toolchain-arm_cortex-a15+neon-vfpv4_gcc-5.4.0_musl-1.1.15_eabi/usr/include -I/mnt/build-dir/lede-build/arm_cortex-a15_neon-vfpv4/build/sdk/staging_dir/toolchain-arm_cortex-a15+neon-vfpv4_gcc-5.4.0_musl-1.1.15_eabi/include/fortify -I/mnt/build-dir/lede-build/arm_cortex-a15_neon-vfpv4/build/sdk/staging_dir/toolchain-arm_cortex-a15+neon-vfpv4_gcc-5.4.0_musl-1.1.15_eabi/include -znow -zrelro -DOPENSSL_SMALL_FOOTPRINT -DOPENSSL_NO_ERR -DTERMIOS -Os -pipe -mcpu=cortex-a15 -mfpu=neon-vfpv4 -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard -iremap /mnt/build-dir/lede-build/arm_cortex-a15_neon-vfpv4/build/sdk/build_dir/target-arm_cortex-a15+neon-vfpv4_musl-1.1.15_eabi/openssl-1.0.2h:openssl-1.0.2h -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -fpic -I/mnt/build-dir/lede-build/arm_cortex-a15_neon-vfpv4/build/sdk/feeds/base/package/libs/openssl/include -ffunction-sections -fdata-sections -fomit-frame-pointer -Wall
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
sha256            6228.11k    15701.99k    29562.12k    37865.51k    41276.57k

Now is much better:

# openssl speed sha256
Doing sha256 for 3s on 16 size blocks: 2956625 sha256's in 2.99s
Doing sha256 for 3s on 64 size blocks: 1946051 sha256's in 3.00s
Doing sha256 for 3s on 256 size blocks: 942628 sha256's in 3.00s
Doing sha256 for 3s on 1024 size blocks: 309156 sha256's in 3.00s
Doing sha256 for 3s on 8192 size blocks: 42525 sha256's in 3.00s
OpenSSL 1.0.2h  3 May 2016
built on: reproducible build, date unspecified
options:bn(64,32) rc4(ptr,char) des(idx,cisc,2,long) aes(partial) blowfish(ptr)
compiler: arm-openwrt-linux-muslgnueabi-gcc -I. -I.. -I../include  -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -I/home/hyniu/2600/source/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl-1.1.15_eabi/usr/include -I/home/hyniu/2600/source/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl-1.1.15_eabi/include -I/home/hyniu/2600/source/staging_dir/toolchain-arm_cortex-a15+neon-vfpv4_gcc-5.4.0_musl-1.1.15_eabi/usr/include -I/home/hyniu/2600/source/staging_dir/toolchain-arm_cortex-a15+neon-vfpv4_gcc-5.4.0_musl-1.1.15_eabi/include/fortify -I/home/hyniu/2600/source/staging_dir/toolchain-arm_cortex-a15+neon-vfpv4_gcc-5.4.0_musl-1.1.15_eabi/include -znow -zrelro -DOPENSSL_SMALL_FOOTPRINT -DOPENSSL_NO_ERR -DTERMIOS -Os -pipe -mcpu=cortex-a15 -mfpu=neon-vfpv4 -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard -iremap /home/hyniu/2600/source/build_dir/target-arm_cortex-a15+neon-vfpv4_musl-1.1.15_eabi/openssl-1.0.2h:openssl-1.0.2h -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -fpic -I/home/hyniu/2600/source/package/libs/openssl/include -ffunction-sections -fdata-sections -fomit-frame-pointer -Wall -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DBSAES_ASM -DGHASH_ASM
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
sha256           15821.40k    41515.75k    80437.59k   105525.25k   116121.60k

dissent
Pls send a PR with the change.

Wow, that's a massive performance gain. I wonder what other similar things are missing.

(Last edited by TeutonJon78 on 30 Aug 2016, 17:22)

Cool.
Anyone know if that assembly takes advantage of hardware integer division instructions?  (and whether they are relevant for openssl?)

The krait cores in ipq806x support those instructions, but they're not a mandatory part of armv7 so often omitted in generic arm codepaths.

@TeutonJon78 another known performance gain not currently in LEDE are optimisations to the stmmac ethernet driver in recent linux kernels.

Will enter for free as soon as lede moves to 4.6 or 4.7 though, so no one bothered backporting them so far.

lede (main trunk) will only move to LTS kernels.. as the highest LTS is 4.4, the jump wont happen until the linux community release a new LTS version, might be a while.
There are trees with newer kernels though

I am running Heinz build (r1348) on my C2600 v1.1. How do I flash the latest LEDE snapshot build? Flashing the .bin gives an error:
    The uploaded image file does not contain a supported format...

Do I have to strip the 32 byte header from the .bin file?

Khurram wrote:

I am running Heinz build (r1348) on my C2600 v1.1. How do I flash the latest LEDE snapshot build? Flashing the .bin gives an error:
    The uploaded image file does not contain a supported format...

Do I have to strip the 32 byte header from the .bin file?

I would not fuck around with LEDE snapshot builds unless you have a console/recovery plan or otherwise know what you are doing. Stuff is really broke right now. gblic changes in progress have broken the image I just made.

I'm sorry I can't help you with your specific issue. Actually it sounds like you are trying to upgrade with the factory image when you should be using the upgrade image.

(Last edited by jmomo on 31 Aug 2016, 05:28)

Generally, recovery mode should be able to get you out of any bad flash, unless you somehow break uboot. Of course, you need all of those files on your computer before you accidentially kill your network. wink

Also, I wonder if this commit is messing up anything for us flashing: https://github.com/lede-project/source/ … b70988a57c

jmomo wrote:

I would not fuck around with LEDE snapshot builds unless you have a console/recovery plan or otherwise know what you are doing. Stuff is really broke right now. gblic changes in progress have broken the image I just made.

I'm sorry I can't help you with your specific issue. Actually it sounds like you are trying to upgrade with the factory image when you should be using the upgrade image.

I actually tried both factory and sysupgrade .bin files and the error message was the same. Strangely, I just left the router alone for a couple of hours and then tried the sysupgrade file again. This time it worked without any hiccups.

Oh and sorry it my post seemed rude. Just wanted to try to save you from a possible broken device. I blame the drugs I'm on. Don't drugs and drive/keyboard. Probably should not have F-bombed four words into the sentence.

(Last edited by jmomo on 31 Aug 2016, 12:06)

TeutonJon here had posted before about the ath10k CT version of firmware. To ask again, has anyone tried that, and if so, what were the results? I've seen Ben Greear posting his patches.

I finally got my TRENDnet version of this device booting and the firmware is refusing to load for the qca9980 radios. I'll figure I will try out both, once I figure out what I've messed up.

(Last edited by jmomo on 31 Aug 2016, 12:17)