Re: Support for TP-Link Archer C2600

(since the bootloader is not touched when flashing the image file so-generated, the router is of course recoverable using the recovery mode and providing a new image over tftp)

Re: Support for TP-Link Archer C2600

With regards to the tp-link firmware situation, I think it is rather qualcomm which is to blame for this.

They are the ones who have based their sdk on this old version.

Basically they have forked it, then added some non-trivial kernel patches to support the tcp-ip offload in the cpu.  They are in general not very fast at updating these patches to newer kernels it seems.

There are some interesting details about this here:
https://www.youtube.com/watch?v=gci-pB9Fshk

I do agree that at the very least it would be nice if the build scripts in the GPL tarball actually built a working and flashable firmware image.

53 (edited by TeutonJon78 2015-12-05 00:35:05)

Re: Support for TP-Link Archer C2600

I had a successful build. So, I wiped it, and am doing a full build again at V=s and logging the output. I'll put it up for download as well as the bins generated.

It does seem to target the beeliner, which is odd, since if you do the normal SDK build target, it included the NSS modules for offloading, which the beeliner build does not (at least according to the config).

I tried comparing it to the other similar class routers (ipq8604 with QCA9980) just to see what their firmware looks like

EA8500 -- completely custom build (not based on openwrt so no real help)
Amped Wireless Athena RTA2600 -- no GPL code anywhere on their site at all and technical support won't provide a link
Netgear R7500v2 -- GPL tarballs linked but 404 for all 3 firmware versions
NEC Aterm WGG2600 -- based on openWRT, but doesn't provide a whole build system, just the zipped src files.

And even worse, TP-Link is based on 12.09-rc1, which is even older.

All of their SDK code is open source though, so it could potentially be brought forward. https://www.codeaurora.org/projects/all … jects/qsdk

Archer C2600 (v1.0, LEDE 17.01.1) -- Dev Files / LEDE Trunk Known Issues

54 (edited by bendavid 2015-12-05 02:27:45)

Re: Support for TP-Link Archer C2600

Ok, further update.

Looks like I was just unlucky earlier and had pulled a non-working revision from git master.

Updating again (where the last important fix is likely this one https://dev.openwrt.org/changeset/47735/)

Then the kernel and rootfs from the AP148 legacy sysupgrade tarball can be used to create a flashable and bootable image.

Working: Network!
Not working: LED's (but this will be simple to fix)
wireless (though possibly only because I have not installed the needed packages for ath10k wink

Let me push my changes to tplink-safeloader, then I'll need some help with the image/Makefile as said (and then we can put together a proper profile with the wireless drivers etc)

Re: Support for TP-Link Archer C2600

dmesg output looks like

root@OpenWrt:(unreachable)/root# dmesg 
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.18.23 (bendavid@theMuleDesktop) (gcc version 5.2.0 (OpenWrt GCC 5.2.0 r47648) ) #7 SMP PREEMPT Sat Dec 5 01:46:20 CET 2015
[    0.000000] CPU: ARMv7 Processor [512f04d0] revision 0 (ARMv7), cr=10c5787d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[    0.000000] Machine model: Qualcomm IPQ8064/AP148
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] On node 0 totalpages: 122880
[    0.000000] free_area_init_node: node 0, pgdat c06c7d80, node_mem_map ddc39000
[    0.000000]   Normal zone: 960 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 122880 pages, LIFO batch:31
[    0.000000] PERCPU: Embedded 9 pages/cpu @ddc18000 s7360 r8192 d21312 u36864
[    0.000000] pcpu-alloc: s7360 r8192 d21312 u36864 alloc=9*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 121920
[    0.000000] Kernel command line: 
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 481736K/491520K available (3542K kernel code, 255K rwdata, 1096K rodata, 176K init, 289K bss, 9784K reserved, 0K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xffe00000   (2048 kB)
[    0.000000]     vmalloc : 0xde800000 - 0xff000000   ( 520 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xde000000   ( 480 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0208000 - 0xc068fb28   (4639 kB)
[    0.000000]       .init : 0xc0690000 - 0xc06bc000   ( 176 kB)
[    0.000000]       .data : 0xc06bc000 - 0xc06fbf50   ( 256 kB)
[    0.000000]        .bss : 0xc06fbf50 - 0xc0744394   ( 290 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000012] sched_clock: 32 bits at 6MHz, resolution 160ns, wraps every 687194767200ns
[    0.000028] Switching to timer-based delay loop, resolution 160ns
[    0.000159] Calibrating delay loop (skipped), value calculated using timer frequency.. 12.50 BogoMIPS (lpj=62500)
[    0.000180] pid_max: default: 32768 minimum: 301
[    0.000340] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000359] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000979] CPU: Testing write buffer coherency: ok
[    0.001270] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.001779] Setting up static identity map for 0x42212990 - 0x422129e8
[    0.084087] CPU1: Booted secondary processor
[    0.084214] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.084332] Brought up 2 CPUs
[    0.084354] SMP: Total of 2 processors activated (25.00 BogoMIPS).
[    0.084365] CPU: All CPU(s) started in SVC mode.
[    0.098846] VFP support v0.3: implementor 51 architecture 0 part 4d variant 2 rev 0
[    0.099405] pinctrl core: initialized pinctrl subsystem
[    0.099900] regulator-dummy: no parameters
[    0.107479] NET: Registered protocol family 16
[    0.107737] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.134538] cpuidle: using governor ladder
[    0.165552] cpuidle: using governor menu
[    0.178972] gpiochip_add: registered GPIOs 0 to 68 on device: 800000.pinmux
[    0.178996] GPIO chip 800000.pinmux: created GPIO range 0->68 ==> 800000.pinmux PIN 0->68
[    0.180707] qcom_rpm 108000.rpm: RPM firmware 3.0.16777342
[    0.180781] qcom_rpm 108000.rpm: failed to mark ack irq as wakeup
[    0.180850] qcom_rpm 108000.rpm: failed to mark wakeup irq as wakeup
[    0.208960] smb208-s1a: 1050 <--> 1150 mV 
[    0.209352] smb208-s1b: 1050 <--> 1150 mV 
[    0.209709] smb208-s2a: 800 <--> 1250 mV 
[    0.210076] smb208-s2b: 800 <--> 1250 mV 
[    0.210646] pps_core: LinuxPPS API ver. 1 registered
[    0.210659] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.210716] PTP clock support registered
[    0.212140] Switched to clocksource dg_timer
[    0.213864] NET: Registered protocol family 2
[    0.214674] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.214721] TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
[    0.214776] TCP: Hash tables configured (established 4096 bind 4096)
[    0.214834] TCP: reno registered
[    0.214858] UDP hash table entries: 256 (order: 1, 8192 bytes)
[    0.214884] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[    0.215115] NET: Registered protocol family 1
[    0.215188] PCI: CLS 0 bytes, default 64
[    0.216703] futex hash table entries: 512 (order: 3, 32768 bytes)
[    0.226137] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.226166] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.227216] msgmni has been set to 940
[    0.230357] io scheduler noop registered
[    0.230383] io scheduler deadline registered (default)
[    0.231814] qcom-pcie 1b500000.pci: GPIO lookup for consumer perst
[    0.231836] qcom-pcie 1b500000.pci: using device tree for GPIO lookup
[    0.231857] of_get_named_gpiod_flags: can't parse 'perst-gpios' property of node '/soc/pci@1b500000[0]'
[    0.231884] of_get_named_gpiod_flags: parsed 'perst-gpio' property of node '/soc/pci@1b500000[0]' - status (0)
[    0.231955] 1b500000.pci supply vdda not found, using dummy regulator
[    0.232062] 1b500000.pci supply vdda_phy not found, using dummy regulator
[    0.232155] 1b500000.pci supply vdda_refclk not found, using dummy regulator
[    0.261927] qcom-pcie 1b500000.pci: PCI host bridge to bus 0000:00
[    0.261958] pci_bus 0000:00: root bus resource [io  0xfe00000-0xfffff] (bus address [0x1fc00000-0xfefffff])
[    0.261977] pci_bus 0000:00: root bus resource [mem 0x08000000-0x0fdfffff]
[    0.262000] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.262060] pci 0000:00:00.0: [17cb:0101] type 01 class 0x060400
[    0.262501] pci 0000:00:00.0: supports D1
[    0.262518] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    0.262926] PCI: bus0: Fast back to back transfers disabled
[    0.263313] pci 0000:01:00.0: [168c:0040] type 00 class 0x028000
[    0.263525] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x001fffff 64bit]
[    0.264511] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[    0.265007] PCI: bus1: Fast back to back transfers disabled
[    0.265031] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[    0.265204] pci 0000:00:00.0: BAR 8: assigned [mem 0x08000000-0x081fffff]
[    0.265232] pci 0000:01:00.0: BAR 0: assigned [mem 0x08000000-0x081fffff 64bit]
[    0.265350] pci 0000:00:00.0: PCI bridge to [bus 01]
[    0.265374] pci 0000:00:00.0:   bridge window [mem 0x08000000-0x081fffff]
[    0.265943] aer 0000:00:00.0:pcie02: service driver aer loaded
[    0.266266] qcom-pcie 1b700000.pci: GPIO lookup for consumer perst
[    0.266282] qcom-pcie 1b700000.pci: using device tree for GPIO lookup
[    0.266301] of_get_named_gpiod_flags: can't parse 'perst-gpios' property of node '/soc/pci@1b700000[0]'
[    0.266323] of_get_named_gpiod_flags: parsed 'perst-gpio' property of node '/soc/pci@1b700000[0]' - status (0)
[    0.266398] 1b700000.pci supply vdda not found, using dummy regulator
[    0.266499] 1b700000.pci supply vdda_phy not found, using dummy regulator
[    0.266600] 1b700000.pci supply vdda_refclk not found, using dummy regulator
[    0.300207] qcom-pcie 1b700000.pci: PCI host bridge to bus 0001:00
[    0.300233] pci_bus 0001:00: root bus resource [io  0x31e10000-0xfffff] (bus address [0x63c00000-0x31eeffff])
[    0.300250] pci_bus 0001:00: root bus resource [mem 0x2e000000-0x31dfffff]
[    0.300269] pci_bus 0001:00: root bus resource [bus 00-ff]
[    0.300321] pci 0001:00:00.0: [17cb:0101] type 01 class 0x060400
[    0.300461] pci 0001:00:00.0: supports D1
[    0.300478] pci 0001:00:00.0: PME# supported from D0 D1 D3hot
[    0.300862] PCI: bus0: Fast back to back transfers disabled
[    0.301238] pci 0001:01:00.0: [168c:0040] type 00 class 0x028000
[    0.301446] pci 0001:01:00.0: reg 0x10: [mem 0x00000000-0x001fffff 64bit]
[    0.302499] pci 0001:01:00.0: PME# supported from D0 D3hot D3cold
[    0.302980] PCI: bus1: Fast back to back transfers disabled
[    0.303001] pci_bus 0001:01: busn_res: [bus 01-ff] end is updated to 01
[    0.303247] pci 0001:00:00.0: BAR 8: assigned [mem 0x2e000000-0x2e1fffff]
[    0.303272] pci 0001:01:00.0: BAR 0: assigned [mem 0x2e000000-0x2e1fffff 64bit]
[    0.303386] pci 0001:00:00.0: PCI bridge to [bus 01]
[    0.303410] pci 0001:00:00.0:   bridge window [mem 0x2e000000-0x2e1fffff]
[    0.303868] aer 0001:00:00.0:pcie02: service driver aer loaded
[    0.306698] gsbi 16300000.gsbi: GSBI port protocol: 6 crci: 0
[    0.307977] gsbi 1a200000.gsbi: GSBI port protocol: 3 crci: 0
[    0.309011] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    0.310148] msm_serial 16340000.serial: msm_serial: detected port #0
[    0.310261] msm_serial 16340000.serial: uartclk = 1843200
[    0.310334] 16340000.serial: ttyMSM0 at MMIO 0x16340000 (irq = 184, base_baud = 115200) is a MSM
[    0.310396] msm_serial: console setup on port #0
[    0.953463] console [ttyMSM0] enabled
[    0.958270] msm_serial: driver initialized
[    0.964135] nand: No NAND device found
[    0.966191] spi_qup 1a280000.spi: IN:block:16, fifo:64, OUT:block:16, fifo:64
[    0.969230] of_dma_request_slave_channel: dma-names property of node '/soc/gsbi@1a200000/spi@1a280000' missing or empty
[    0.976584] of_get_named_gpiod_flags: parsed 'cs-gpios' property of node '/soc/gsbi@1a200000/spi@1a280000[0]' - status (0)
[    0.977793] m25p80 spi32766.0: s25fl256s1 (32768 Kbytes)
[    0.987239] 13 qcom-smem partitions found on MTD device spi32766.0
[    0.992695] Creating 13 MTD partitions on "spi32766.0":
[    0.998569] 0x000000000000-0x000000020000 : "0:SBL1"
[    1.004944] 0x000000020000-0x000000040000 : "0:MIBIB"
[    1.009896] 0x000000040000-0x000000060000 : "0:SBL2"
[    1.014963] 0x000000060000-0x000000090000 : "0:SBL3"
[    1.019862] 0x000000090000-0x0000000a0000 : "0:DDRCONFIG"
[    1.024972] 0x0000000a0000-0x0000000b0000 : "0:SSD"
[    1.030115] 0x0000000b0000-0x0000000e0000 : "0:TZ"
[    1.034838] 0x0000000e0000-0x000000100000 : "0:RPM"
[    1.039647] 0x000000100000-0x000000170000 : "0:APPSBL"
[    1.044477] 0x000000170000-0x0000001b0000 : "0:APPSBLENV"
[    1.049633] 0x0000001b0000-0x0000001f0000 : "0:ART"
[    1.055201] 0x0000001f0000-0x0000003f0000 : "0:HLOS"
[    1.059819] 0x0000003f0000-0x000001ef0000 : "rootfs"
[    1.065081] mtd: device 12 (rootfs) set to be root filesystem
[    1.069286] 1 squashfs-split partitions found on MTD device rootfs
[    1.074692] 0x000000620000-0x000001ef0000 : "rootfs_data"
[    1.082585] libphy: Fixed MDIO Bus: probed
[    1.086459] of_get_named_gpiod_flags: parsed 'gpios' property of node '/soc/mdio[0]' - status (0)
[    1.086485] of_get_named_gpiod_flags: parsed 'gpios' property of node '/soc/mdio[1]' - status (0)
[    1.086503] of_get_named_gpiod_flags: can't parse 'gpios' property of node '/soc/mdio[2]'
[    1.086655] libphy: GPIO Bitbanged MDIO: probed
[    1.110969] switch0: Atheros AR8337 rev. 2 switch registered on gpio-0
[    1.332635] stmmac - user ID: 0x10, Synopsys ID: 0x37
[    1.332663]  Ring mode enabled
[    1.336661]  DMA HW capability register supported
[    1.339617]  Enhanced/Alternate descriptors
[    1.344387]  Enabled extended descriptors
[    1.348382]  RX Checksum Offload Engine supported (type 2)
[    1.352628]  TX Checksum insertion supported
[    1.357929]  Wake-Up On Lan supported
[    1.362500]  Enable RX Mitigation via HW Watchdog Timer
[    1.367524] stmmac - user ID: 0x10, Synopsys ID: 0x37
[    1.370951]  Ring mode enabled
[    1.376294]  DMA HW capability register supported
[    1.379113]  Enhanced/Alternate descriptors
[    1.383885]  Enabled extended descriptors
[    1.387878]  RX Checksum Offload Engine supported (type 2)
[    1.392046]  TX Checksum insertion supported
[    1.397520]  Wake-Up On Lan supported
[    1.401924]  Enable RX Mitigation via HW Watchdog Timer
[    1.406276] i2c /dev entries driver
[    1.411789] Speed bin: 0
[    1.414013] PVS bin: 1
[    1.417184] platform cpufreq-krait.0: Driver cpufreq-krait requests probe deferral
[    1.420954] L2 @ QSB rate. Forcing new rate.
[    1.426772] L2 @ 387500 KHz
[    1.430996] CPU0 @ 800000 KHz
[    1.433452] CPU1 @ QSB rate. Forcing new rate.
[    1.436585] CPU1 @ 384000 KHz
[    1.441264] TCP: cubic registered
[    1.444915] NET: Registered protocol family 10
[    1.448800] NET: Registered protocol family 17
[    1.451591] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
[    1.456072] 8021q: 802.1Q VLAN Support v1.8
[    1.468863] Registering SWP/SWPB emulation handler
[    1.481156] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[    1.488628] UBIFS error (pid 1): ubifs_mount: cannot open "ubi0:rootfs", error -19
[    1.496805] VFS: Mounted root (squashfs filesystem) readonly on device 31:12.
[    1.496976] Freeing unused kernel memory: 176K (c0690000 - c06bc000)
[    1.813120] random: nonblocking pool is initialized
[    2.913037] init: Console is alive
[    2.913160] init: - watchdog -
[    4.911437] usbcore: registered new interface driver usbfs
[    4.911513] usbcore: registered new interface driver hub
[    4.915982] usbcore: registered new device driver usb
[    4.924279] SCSI subsystem initialized
[    4.928584] libata version 3.00 loaded.
[    4.930694] ahci 29000000.sata: forcing PORTS_IMPL to 0x1
[    4.930749] ahci 29000000.sata: AHCI 0001.0300 32 slots 1 ports 6 Gbps 0x1 impl platform mode
[    4.935431] ahci 29000000.sata: flags: ncq sntf pm led clo only pmp pio slum part ccc apst 
[    4.944480] scsi host0: ahci_platform
[    4.952233] ata1: SATA max UDMA/133 mmio [mem 0x29000000-0x2900017f] port 0x100 irq 241
[    5.302839] ata1: SATA link down (SStatus 0 SControl 300)
[    5.304580] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    5.307631] ehci-platform: EHCI generic platform driver
[    5.316328] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    5.319178] ohci-platform: OHCI generic platform driver
[    5.831072] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    5.831117] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
[    5.835728] xhci-hcd xhci-hcd.0.auto: irq 142, io mem 0x11000000
[    5.843615] hub 1-0:1.0: USB hub found
[    5.849271] hub 1-0:1.0: 1 port detected
[    5.853107] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    5.856896] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
[    5.862776] hub 2-0:1.0: USB hub found
[    5.869752] hub 2-0:1.0: 1 port detected
[    5.873879] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[    5.877651] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 3
[    5.883160] xhci-hcd xhci-hcd.1.auto: irq 237, io mem 0x10000000
[    5.890943] hub 3-0:1.0: USB hub found
[    5.896817] hub 3-0:1.0: 1 port detected
[    5.900485] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[    5.904455] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 4
[    5.910171] hub 4-0:1.0: USB hub found
[    5.917308] hub 4-0:1.0: 1 port detected
[    5.929636] init: - preinit -
[    9.804652] mount_root: jffs2 not ready yet, using temporary tmpfs overlay
[    9.809673] procd: - early -
[    9.810448] procd: - watchdog -
[   10.497984] procd: - ubus -
[   11.543167] procd: - init -
[   11.801188] ip6_tables: (C) 2000-2006 Netfilter Core Team
[   11.805625] Loading modules backported from Linux version master-2015-12-03-0-g1677f62
[   11.805651] Backport generated by backports.git backports-20151120-0-g906a6b3
[   11.831862] cfg80211: World regulatory domain updated:
[   11.831889] cfg80211:  DFS Master region: unset
[   11.836130] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[   11.840606] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[   11.850248] cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[   11.857959] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
[   11.865916] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A)
[   11.873898] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)
[   11.883630] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
[   11.893063] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
[   11.901084] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)
[   11.929512] ath10k_pci 0000:01:00.0: enabling device (0140 -> 0142)
[   11.930262] ath10k_pci 0000:01:00.0: pci irq msi interrupts 1 irq_mode 0 reset_mode 0
[   12.064493] ath10k_pci 0000:01:00.0: Direct firmware load for ath10k/cal-pci-0000:01:00.0.bin failed with error -2
[   12.064522] ath10k_pci 0000:01:00.0: Falling back to user helper
[   12.079413] firmware ath10k!cal-pci-0000:01:00.0.bin: firmware_loading_store: map pages failed
[   12.080043] ath10k_pci 0000:01:00.0: Direct firmware load for ath10k/QCA99X0/hw2.0/firmware-5.bin failed with error -2
[   12.088380] ath10k_pci 0000:01:00.0: Falling back to user helper
[   12.104574] firmware ath10k!QCA99X0!hw2.0!firmware-5.bin: firmware_loading_store: map pages failed
[   12.105252] ath10k_pci 0000:01:00.0: could not fetch firmware file 'ath10k/QCA99X0/hw2.0/firmware-5.bin': -11
[   12.114473] ath10k_pci 0000:01:00.0: Direct firmware load for ath10k/QCA99X0/hw2.0/firmware-4.bin failed with error -2
[   12.123959] ath10k_pci 0000:01:00.0: Falling back to user helper
[   12.139968] firmware ath10k!QCA99X0!hw2.0!firmware-4.bin: firmware_loading_store: map pages failed
[   12.140755] ath10k_pci 0000:01:00.0: could not fetch firmware file 'ath10k/QCA99X0/hw2.0/firmware-4.bin': -11
[   12.149952] ath10k_pci 0000:01:00.0: Direct firmware load for ath10k/QCA99X0/hw2.0/firmware-3.bin failed with error -2
[   12.159488] ath10k_pci 0000:01:00.0: Falling back to user helper
[   12.175561] firmware ath10k!QCA99X0!hw2.0!firmware-3.bin: firmware_loading_store: map pages failed
[   12.176262] ath10k_pci 0000:01:00.0: could not fetch firmware file 'ath10k/QCA99X0/hw2.0/firmware-3.bin': -11
[   12.185490] ath10k_pci 0000:01:00.0: Direct firmware load for ath10k/QCA99X0/hw2.0/firmware-2.bin failed with error -2
[   12.194970] ath10k_pci 0000:01:00.0: Falling back to user helper
[   12.210975] firmware ath10k!QCA99X0!hw2.0!firmware-2.bin: firmware_loading_store: map pages failed
[   12.211767] ath10k_pci 0000:01:00.0: could not fetch firmware file 'ath10k/QCA99X0/hw2.0/firmware-2.bin': -11
[   12.220974] ath10k_pci 0000:01:00.0: Direct firmware load for ath10k/QCA99X0/hw2.0/firmware.bin failed with error -2
[   12.230492] ath10k_pci 0000:01:00.0: Falling back to user helper
[   12.246547] firmware ath10k!QCA99X0!hw2.0!firmware.bin: firmware_loading_store: map pages failed
[   12.247091] ath10k_pci 0000:01:00.0: could not fetch firmware (-11)
[   12.256282] ath10k_pci 0000:01:00.0: could not fetch firmware files (-11)
[   12.261749] ath10k_pci 0000:01:00.0: could not probe fw (-11)
[   12.269041] ath10k_pci 0001:01:00.0: enabling device (0140 -> 0142)
[   12.275225] ath10k_pci 0001:01:00.0: pci irq msi interrupts 1 irq_mode 0 reset_mode 0
[   12.404419] ath10k_pci 0001:01:00.0: Direct firmware load for ath10k/cal-pci-0001:01:00.0.bin failed with error -2
[   12.404450] ath10k_pci 0001:01:00.0: Falling back to user helper
[   12.419270] firmware ath10k!cal-pci-0001:01:00.0.bin: firmware_loading_store: map pages failed
[   12.419953] ath10k_pci 0001:01:00.0: Direct firmware load for ath10k/QCA99X0/hw2.0/firmware-5.bin failed with error -2
[   12.428332] ath10k_pci 0001:01:00.0: Falling back to user helper
[   12.444495] firmware ath10k!QCA99X0!hw2.0!firmware-5.bin: firmware_loading_store: map pages failed
[   12.445180] ath10k_pci 0001:01:00.0: could not fetch firmware file 'ath10k/QCA99X0/hw2.0/firmware-5.bin': -11
[   12.454393] ath10k_pci 0001:01:00.0: Direct firmware load for ath10k/QCA99X0/hw2.0/firmware-4.bin failed with error -2
[   12.463912] ath10k_pci 0001:01:00.0: Falling back to user helper
[   12.479883] firmware ath10k!QCA99X0!hw2.0!firmware-4.bin: firmware_loading_store: map pages failed
[   12.480684] ath10k_pci 0001:01:00.0: could not fetch firmware file 'ath10k/QCA99X0/hw2.0/firmware-4.bin': -11
[   12.489915] ath10k_pci 0001:01:00.0: Direct firmware load for ath10k/QCA99X0/hw2.0/firmware-3.bin failed with error -2
[   12.499411] ath10k_pci 0001:01:00.0: Falling back to user helper
[   12.515505] firmware ath10k!QCA99X0!hw2.0!firmware-3.bin: firmware_loading_store: map pages failed
[   12.516194] ath10k_pci 0001:01:00.0: could not fetch firmware file 'ath10k/QCA99X0/hw2.0/firmware-3.bin': -11
[   12.525417] ath10k_pci 0001:01:00.0: Direct firmware load for ath10k/QCA99X0/hw2.0/firmware-2.bin failed with error -2
[   12.534894] ath10k_pci 0001:01:00.0: Falling back to user helper
[   12.550932] firmware ath10k!QCA99X0!hw2.0!firmware-2.bin: firmware_loading_store: map pages failed
[   12.551695] ath10k_pci 0001:01:00.0: could not fetch firmware file 'ath10k/QCA99X0/hw2.0/firmware-2.bin': -11
[   12.560934] ath10k_pci 0001:01:00.0: Direct firmware load for ath10k/QCA99X0/hw2.0/firmware.bin failed with error -2
[   12.570415] ath10k_pci 0001:01:00.0: Falling back to user helper
[   12.586521] firmware ath10k!QCA99X0!hw2.0!firmware.bin: firmware_loading_store: map pages failed
[   12.587022] ath10k_pci 0001:01:00.0: could not fetch firmware (-11)
[   12.596215] ath10k_pci 0001:01:00.0: could not fetch firmware files (-11)
[   12.601678] ath10k_pci 0001:01:00.0: could not probe fw (-11)
[   12.610338] ip_tables: (C) 2000-2006 Netfilter Core Team
[   12.617825] nf_conntrack version 0.5.0 (7529 buckets, 30116 max)
[   12.698900] xt_time: kernel timezone is -0000
[   12.702183] PPP generic driver version 2.4.2
[   12.702879] NET: Registered protocol family 24
[   15.284611] jffs2_scan_eraseblock(): End of filesystem marker found at 0x0
[   15.284671] jffs2_build_filesystem(): unlocking the mtd device... done.
[   15.309338] jffs2_build_filesystem(): erasing all blocks after the end marker... 
[   15.718038] eth1: device MAC address 00:03:7f:ba:db:02
[   15.729502] device eth1 entered promiscuous mode
[   15.731272] br-lan: port 1(eth1) entered forwarding state
[   15.733259] br-lan: port 1(eth1) entered forwarding state
[   15.749678] eth0: device MAC address 00:03:7f:ba:db:01
[   17.712540] ipq806x-gmac-dwmac 37400000.ethernet eth1: Link is Up - 1Gbps/Full - flow control off
[   17.732503] br-lan: port 1(eth1) entered forwarding state
[   85.912229] done.
[   85.912260] jffs2: notice: (467) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
root

Re: Support for TP-Link Archer C2600

I've been breaking down the image file and partition tables, so I should be able to double check your code. There is an odd missing partition that doesn't have any reference (which appears to be the same size as the uboot). And we have the double partition listing.

It looks from the logs that it's mostly just missing the ath10k firmware, rather than the actual driver. Seems like a makefile needs to be told to download the codearoura page (since the ap148 has no wireless by default)

Another odd point is that your info form the SSH stock firmware doesn't have any mention of ath10k -- so they hacked the wireless drivers in there somewhere.

Good work on the boot up though.

Of course, it will probably be good to leave the ap148 target alone and make an archer-c2600 target
Based on the nss stuff being open sourced and providing the patches (which it looked like they have at least partially up to 3.18) seems like it might be able to get incorporated as well -- it'd be nice to have full performance.

Archer C2600 (v1.0, LEDE 17.01.1) -- Dev Files / LEDE Trunk Known Issues

Re: Support for TP-Link Archer C2600

I'll write TP-Link -- perhaps they might provide the actual code to generate the image file.

Archer C2600 (v1.0, LEDE 17.01.1) -- Dev Files / LEDE Trunk Known Issues

Re: Support for TP-Link Archer C2600

The stock firmware doesn't use ath10k, but rather a different proprietary wireless driver.
(I think this one: https://www.codeaurora.org/cgit/quic/qs … i-10.4.2/)

Re: Support for TP-Link Archer C2600

Wireless is still not working with ath10k-firmware-qca99x0 installed.  Looks like some errors loading the firmware (but different from before).

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.18.23 (bendavid@theMuleDesktop) (gcc version 5.2.0 (OpenWrt GCC 5.2.0 r47648) ) #26 SMP PREEMPT Sat Dec 5 04:43:39 CET 2015
[    0.000000] CPU: ARMv7 Processor [512f04d0] revision 0 (ARMv7), cr=10c5787d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[    0.000000] Machine model: Qualcomm IPQ8064/AP148
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] On node 0 totalpages: 122880
[    0.000000] free_area_init_node: node 0, pgdat c06c7d80, node_mem_map ddc39000
[    0.000000]   Normal zone: 960 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 122880 pages, LIFO batch:31
[    0.000000] PERCPU: Embedded 9 pages/cpu @ddc18000 s7360 r8192 d21312 u36864
[    0.000000] pcpu-alloc: s7360 r8192 d21312 u36864 alloc=9*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 121920
[    0.000000] Kernel command line: 
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 481736K/491520K available (3542K kernel code, 255K rwdata, 1096K rodata, 176K init, 289K bss, 9784K reserved, 0K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xffe00000   (2048 kB)
[    0.000000]     vmalloc : 0xde800000 - 0xff000000   ( 520 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xde000000   ( 480 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0208000 - 0xc068fb28   (4639 kB)
[    0.000000]       .init : 0xc0690000 - 0xc06bc000   ( 176 kB)
[    0.000000]       .data : 0xc06bc000 - 0xc06fbf50   ( 256 kB)
[    0.000000]        .bss : 0xc06fbf50 - 0xc0744394   ( 290 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]     RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000012] sched_clock: 32 bits at 6MHz, resolution 160ns, wraps every 687194767200ns
[    0.000028] Switching to timer-based delay loop, resolution 160ns
[    0.000159] Calibrating delay loop (skipped), value calculated using timer frequency.. 12.50 BogoMIPS (lpj=62500)
[    0.000181] pid_max: default: 32768 minimum: 301
[    0.000342] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000360] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000981] CPU: Testing write buffer coherency: ok
[    0.001274] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.001782] Setting up static identity map for 0x42212990 - 0x422129e8
[    0.084116] CPU1: Booted secondary processor
[    0.084248] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.084368] Brought up 2 CPUs
[    0.084390] SMP: Total of 2 processors activated (25.00 BogoMIPS).
[    0.084401] CPU: All CPU(s) started in SVC mode.
[    0.098872] VFP support v0.3: implementor 51 architecture 0 part 4d variant 2 rev 0
[    0.099433] pinctrl core: initialized pinctrl subsystem
[    0.099928] regulator-dummy: no parameters
[    0.107498] NET: Registered protocol family 16
[    0.107758] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.134567] cpuidle: using governor ladder
[    0.165583] cpuidle: using governor menu
[    0.179005] gpiochip_add: registered GPIOs 0 to 68 on device: 800000.pinmux
[    0.179029] GPIO chip 800000.pinmux: created GPIO range 0->68 ==> 800000.pinmux PIN 0->68
[    0.180736] qcom_rpm 108000.rpm: RPM firmware 3.0.16777342
[    0.180809] qcom_rpm 108000.rpm: failed to mark ack irq as wakeup
[    0.180878] qcom_rpm 108000.rpm: failed to mark wakeup irq as wakeup
[    0.208983] smb208-s1a: 1050 <--> 1150 mV 
[    0.209377] smb208-s1b: 1050 <--> 1150 mV 
[    0.209735] smb208-s2a: 800 <--> 1250 mV 
[    0.210103] smb208-s2b: 800 <--> 1250 mV 
[    0.210670] pps_core: LinuxPPS API ver. 1 registered
[    0.210684] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.210742] PTP clock support registered
[    0.212163] Switched to clocksource dg_timer
[    0.213885] NET: Registered protocol family 2
[    0.214701] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.214749] TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
[    0.214804] TCP: Hash tables configured (established 4096 bind 4096)
[    0.214861] TCP: reno registered
[    0.214886] UDP hash table entries: 256 (order: 1, 8192 bytes)
[    0.214911] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[    0.215145] NET: Registered protocol family 1
[    0.215218] PCI: CLS 0 bytes, default 64
[    0.216723] futex hash table entries: 512 (order: 3, 32768 bytes)
[    0.226174] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.226204] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.227253] msgmni has been set to 940
[    0.230398] io scheduler noop registered
[    0.230425] io scheduler deadline registered (default)
[    0.231855] qcom-pcie 1b500000.pci: GPIO lookup for consumer perst
[    0.231875] qcom-pcie 1b500000.pci: using device tree for GPIO lookup
[    0.231897] of_get_named_gpiod_flags: can't parse 'perst-gpios' property of node '/soc/pci@1b500000[0]'
[    0.231924] of_get_named_gpiod_flags: parsed 'perst-gpio' property of node '/soc/pci@1b500000[0]' - status (0)
[    0.231996] 1b500000.pci supply vdda not found, using dummy regulator
[    0.232099] 1b500000.pci supply vdda_phy not found, using dummy regulator
[    0.232192] 1b500000.pci supply vdda_refclk not found, using dummy regulator
[    0.261986] qcom-pcie 1b500000.pci: PCI host bridge to bus 0000:00
[    0.262013] pci_bus 0000:00: root bus resource [io  0xfe00000-0xfffff] (bus address [0x1fc00000-0xfefffff])
[    0.262032] pci_bus 0000:00: root bus resource [mem 0x08000000-0x0fdfffff]
[    0.262056] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.262115] pci 0000:00:00.0: [17cb:0101] type 01 class 0x060400
[    0.262589] pci 0000:00:00.0: supports D1
[    0.262608] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    0.263009] PCI: bus0: Fast back to back transfers disabled
[    0.263400] pci 0000:01:00.0: [168c:0040] type 00 class 0x028000
[    0.263612] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x001fffff 64bit]
[    0.264600] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[    0.265096] PCI: bus1: Fast back to back transfers disabled
[    0.265121] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[    0.265296] pci 0000:00:00.0: BAR 8: assigned [mem 0x08000000-0x081fffff]
[    0.265323] pci 0000:01:00.0: BAR 0: assigned [mem 0x08000000-0x081fffff 64bit]
[    0.265442] pci 0000:00:00.0: PCI bridge to [bus 01]
[    0.265465] pci 0000:00:00.0:   bridge window [mem 0x08000000-0x081fffff]
[    0.266036] aer 0000:00:00.0:pcie02: service driver aer loaded
[    0.266357] qcom-pcie 1b700000.pci: GPIO lookup for consumer perst
[    0.266374] qcom-pcie 1b700000.pci: using device tree for GPIO lookup
[    0.266393] of_get_named_gpiod_flags: can't parse 'perst-gpios' property of node '/soc/pci@1b700000[0]'
[    0.266416] of_get_named_gpiod_flags: parsed 'perst-gpio' property of node '/soc/pci@1b700000[0]' - status (0)
[    0.266490] 1b700000.pci supply vdda not found, using dummy regulator
[    0.266594] 1b700000.pci supply vdda_phy not found, using dummy regulator
[    0.266692] 1b700000.pci supply vdda_refclk not found, using dummy regulator
[    0.300241] qcom-pcie 1b700000.pci: PCI host bridge to bus 0001:00
[    0.300267] pci_bus 0001:00: root bus resource [io  0x31e10000-0xfffff] (bus address [0x63c00000-0x31eeffff])
[    0.300284] pci_bus 0001:00: root bus resource [mem 0x2e000000-0x31dfffff]
[    0.300303] pci_bus 0001:00: root bus resource [bus 00-ff]
[    0.300353] pci 0001:00:00.0: [17cb:0101] type 01 class 0x060400
[    0.300492] pci 0001:00:00.0: supports D1
[    0.300509] pci 0001:00:00.0: PME# supported from D0 D1 D3hot
[    0.300886] PCI: bus0: Fast back to back transfers disabled
[    0.301263] pci 0001:01:00.0: [168c:0040] type 00 class 0x028000
[    0.301471] pci 0001:01:00.0: reg 0x10: [mem 0x00000000-0x001fffff 64bit]
[    0.302548] pci 0001:01:00.0: PME# supported from D0 D3hot D3cold
[    0.303027] PCI: bus1: Fast back to back transfers disabled
[    0.303048] pci_bus 0001:01: busn_res: [bus 01-ff] end is updated to 01
[    0.303294] pci 0001:00:00.0: BAR 8: assigned [mem 0x2e000000-0x2e1fffff]
[    0.303320] pci 0001:01:00.0: BAR 0: assigned [mem 0x2e000000-0x2e1fffff 64bit]
[    0.303433] pci 0001:00:00.0: PCI bridge to [bus 01]
[    0.303457] pci 0001:00:00.0:   bridge window [mem 0x2e000000-0x2e1fffff]
[    0.303913] aer 0001:00:00.0:pcie02: service driver aer loaded
[    0.306752] gsbi 16300000.gsbi: GSBI port protocol: 6 crci: 0
[    0.308033] gsbi 1a200000.gsbi: GSBI port protocol: 3 crci: 0
[    0.309065] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    0.310201] msm_serial 16340000.serial: msm_serial: detected port #0
[    0.310313] msm_serial 16340000.serial: uartclk = 1843200
[    0.310388] 16340000.serial: ttyMSM0 at MMIO 0x16340000 (irq = 184, base_baud = 115200) is a MSM
[    0.310449] msm_serial: console setup on port #0
[    0.953587] console [ttyMSM0] enabled
[    0.958413] msm_serial: driver initialized
[    0.964264] nand: No NAND device found
[    0.966326] spi_qup 1a280000.spi: IN:block:16, fifo:64, OUT:block:16, fifo:64
[    0.969372] of_dma_request_slave_channel: dma-names property of node '/soc/gsbi@1a200000/spi@1a280000' missing or empty
[    0.976709] of_get_named_gpiod_flags: parsed 'cs-gpios' property of node '/soc/gsbi@1a200000/spi@1a280000[0]' - status (0)
[    0.977907] m25p80 spi32766.0: s25fl256s1 (32768 Kbytes)
[    0.987365] 13 qcom-smem partitions found on MTD device spi32766.0
[    0.992851] Creating 13 MTD partitions on "spi32766.0":
[    0.998709] 0x000000000000-0x000000020000 : "0:SBL1"
[    1.005072] 0x000000020000-0x000000040000 : "0:MIBIB"
[    1.010033] 0x000000040000-0x000000060000 : "0:SBL2"
[    1.015115] 0x000000060000-0x000000090000 : "0:SBL3"
[    1.020007] 0x000000090000-0x0000000a0000 : "0:DDRCONFIG"
[    1.025096] 0x0000000a0000-0x0000000b0000 : "0:SSD"
[    1.030261] 0x0000000b0000-0x0000000e0000 : "0:TZ"
[    1.034964] 0x0000000e0000-0x000000100000 : "0:RPM"
[    1.039789] 0x000000100000-0x000000170000 : "0:APPSBL"
[    1.044631] 0x000000170000-0x0000001b0000 : "0:APPSBLENV"
[    1.049773] 0x0000001b0000-0x0000001f0000 : "0:ART"
[    1.055363] 0x0000001f0000-0x0000003f0000 : "0:HLOS"
[    1.059964] 0x0000003f0000-0x000001ef0000 : "rootfs"
[    1.065241] mtd: device 12 (rootfs) set to be root filesystem
[    1.069429] 1 squashfs-split partitions found on MTD device rootfs
[    1.074848] 0x0000006e0000-0x000001ef0000 : "rootfs_data"
[    1.082687] libphy: Fixed MDIO Bus: probed
[    1.086599] of_get_named_gpiod_flags: parsed 'gpios' property of node '/soc/mdio[0]' - status (0)
[    1.086623] of_get_named_gpiod_flags: parsed 'gpios' property of node '/soc/mdio[1]' - status (0)
[    1.086642] of_get_named_gpiod_flags: can't parse 'gpios' property of node '/soc/mdio[2]'
[    1.086795] libphy: GPIO Bitbanged MDIO: probed
[    1.111123] switch0: Atheros AR8337 rev. 2 switch registered on gpio-0
[    1.332780] stmmac - user ID: 0x10, Synopsys ID: 0x37
[    1.332810]  Ring mode enabled
[    1.336808]  DMA HW capability register supported
[    1.339761]  Enhanced/Alternate descriptors
[    1.344533]     Enabled extended descriptors
[    1.348528]  RX Checksum Offload Engine supported (type 2)
[    1.352784]  TX Checksum insertion supported
[    1.358075]  Wake-Up On Lan supported
[    1.362636]  Enable RX Mitigation via HW Watchdog Timer
[    1.367667] stmmac - user ID: 0x10, Synopsys ID: 0x37
[    1.371100]  Ring mode enabled
[    1.376452]  DMA HW capability register supported
[    1.379259]  Enhanced/Alternate descriptors
[    1.384032]     Enabled extended descriptors
[    1.388024]  RX Checksum Offload Engine supported (type 2)
[    1.392192]  TX Checksum insertion supported
[    1.397644]  Wake-Up On Lan supported
[    1.402070]  Enable RX Mitigation via HW Watchdog Timer
[    1.406439] i2c /dev entries driver
[    1.411938] Speed bin: 0
[    1.414172] PVS bin: 1
[    1.417325] platform cpufreq-krait.0: Driver cpufreq-krait requests probe deferral
[    1.421112] L2 @ QSB rate. Forcing new rate.
[    1.426925] L2 @ 387500 KHz
[    1.431142] CPU0 @ 800000 KHz
[    1.433607] CPU1 @ QSB rate. Forcing new rate.
[    1.436734] CPU1 @ 384000 KHz
[    1.441406] TCP: cubic registered
[    1.445066] NET: Registered protocol family 10
[    1.448943] NET: Registered protocol family 17
[    1.451739] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
[    1.456229] 8021q: 802.1Q VLAN Support v1.8
[    1.469016] Registering SWP/SWPB emulation handler
[    1.481245] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[    1.488709] UBIFS error (pid 1): ubifs_mount: cannot open "ubi0:rootfs", error -19
[    1.496590] VFS: Mounted root (squashfs filesystem) readonly on device 31:12.
[    1.496759] Freeing unused kernel memory: 176K (c0690000 - c06bc000)
[    2.066061] random: nonblocking pool is initialized
[    3.090732] init: Console is alive
[    3.090862] init: - watchdog -
[    5.151503] usbcore: registered new interface driver usbfs
[    5.151582] usbcore: registered new interface driver hub
[    5.156030] usbcore: registered new device driver usb
[    5.164372] SCSI subsystem initialized
[    5.168661] libata version 3.00 loaded.
[    5.170805] ahci 29000000.sata: forcing PORTS_IMPL to 0x1
[    5.170861] ahci 29000000.sata: AHCI 0001.0300 32 slots 1 ports 6 Gbps 0x1 impl platform mode
[    5.175509] ahci 29000000.sata: flags: ncq sntf pm led clo only pmp pio slum part ccc apst 
[    5.184558] scsi host0: ahci_platform
[    5.192294] ata1: SATA max UDMA/133 mmio [mem 0x29000000-0x2900017f] port 0x100 irq 241
[    5.532855] ata1: SATA link down (SStatus 0 SControl 300)
[    5.534718] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    5.537636] ehci-platform: EHCI generic platform driver
[    5.546382] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    5.549188] ohci-platform: OHCI generic platform driver
[    6.051100] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    6.051148] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
[    6.055799] xhci-hcd xhci-hcd.0.auto: irq 142, io mem 0x11000000
[    6.063660] hub 1-0:1.0: USB hub found
[    6.069301] hub 1-0:1.0: 1 port detected
[    6.073162] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    6.076920] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
[    6.082786] hub 2-0:1.0: USB hub found
[    6.089779] hub 2-0:1.0: 1 port detected
[    6.093918] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[    6.097676] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 3
[    6.103195] xhci-hcd xhci-hcd.1.auto: irq 237, io mem 0x10000000
[    6.111066] hub 3-0:1.0: USB hub found
[    6.116840] hub 3-0:1.0: 1 port detected
[    6.120536] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[    6.124477] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 4
[    6.130201] hub 4-0:1.0: USB hub found
[    6.137330] hub 4-0:1.0: 1 port detected
[    7.111938] init: - preinit -
[    9.358300] mount_root: jffs2 not ready yet, using temporary tmpfs overlay
[    9.363469] procd: - early -
[    9.364093] procd: - watchdog -
[   10.106640] procd: - ubus -
[   11.113016] procd: - init -
[   11.406496] ip6_tables: (C) 2000-2006 Netfilter Core Team
[   11.410572] Loading modules backported from Linux version master-2015-12-03-0-g1677f62
[   11.410872] Backport generated by backports.git backports-20151120-0-g906a6b3
[   11.435415] cfg80211: World regulatory domain updated:
[   11.435440] cfg80211:  DFS Master region: unset
[   11.439441] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[   11.444107] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[   11.453692] cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[   11.461408] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
[   11.469466] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A)
[   11.477458] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)
[   11.487164] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
[   11.496631] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
[   11.504685] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)
[   11.540201] ath10k_pci 0000:01:00.0: enabling device (0140 -> 0142)
[   11.540959] ath10k_pci 0000:01:00.0: pci irq msi interrupts 1 irq_mode 0 reset_mode 0
[   11.683797] ath10k_pci 0000:01:00.0: Direct firmware load for ath10k/cal-pci-0000:01:00.0.bin failed with error -2
[   11.683826] ath10k_pci 0000:01:00.0: Falling back to user helper
[   11.698819] firmware ath10k!cal-pci-0000:01:00.0.bin: firmware_loading_store: map pages failed
[   12.534047] ath10k_pci 0000:01:00.0: qca99x0 hw2.0 target 0x01000000 chip_id 0x003b01ff sub 168c:0002
[   12.534086] ath10k_pci 0000:01:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 1
[   12.543746] ath10k_pci 0000:01:00.0: firmware ver 10.4.1.00030-1 api 5 features no-p2p crc32 d2901e01
[   14.592549] ath10k_pci 0000:01:00.0: unable to read from the device
[   14.592577] ath10k_pci 0000:01:00.0: could not execute otp for board id check: -110
[   14.597617] ath10k_pci 0000:01:00.0: failed to get board id from otp: -110
[   14.605318] ath10k_pci 0000:01:00.0: could not probe fw (-110)
[   14.612858] ath10k_pci 0001:01:00.0: enabling device (0140 -> 0142)
[   14.618772] ath10k_pci 0001:01:00.0: pci irq msi interrupts 1 irq_mode 0 reset_mode 0
[   14.754430] ath10k_pci 0001:01:00.0: Direct firmware load for ath10k/cal-pci-0001:01:00.0.bin failed with error -2
[   14.754461] ath10k_pci 0001:01:00.0: Falling back to user helper
[   14.769586] firmware ath10k!cal-pci-0001:01:00.0.bin: firmware_loading_store: map pages failed
[   14.769950] ath10k_pci 0001:01:00.0: qca99x0 hw2.0 target 0x01000000 chip_id 0x003b01ff sub 168c:0002
[   14.778355] ath10k_pci 0001:01:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 1
[   14.789229] ath10k_pci 0001:01:00.0: firmware ver 10.4.1.00030-1 api 5 features no-p2p crc32 d2901e01
[   16.832550] ath10k_pci 0001:01:00.0: unable to read from the device
[   16.832579] ath10k_pci 0001:01:00.0: could not execute otp for board id check: -110
[   16.837621] ath10k_pci 0001:01:00.0: failed to get board id from otp: -110
[   16.845321] ath10k_pci 0001:01:00.0: could not probe fw (-110)
[   16.853942] ip_tables: (C) 2000-2006 Netfilter Core Team
[   16.860920] nf_conntrack version 0.5.0 (7529 buckets, 30116 max)
[   16.938847] xt_time: kernel timezone is -0000
[   16.942075] PPP generic driver version 2.4.2
[   16.942816] NET: Registered protocol family 24
[   20.697870] eth1: device MAC address 00:03:7f:ba:db:02
[   20.722741] device eth1 entered promiscuous mode
[   20.724331] br-lan: port 1(eth1) entered forwarding state
[   20.726433] br-lan: port 1(eth1) entered forwarding state
[   20.774789] eth0: device MAC address 00:03:7f:ba:db:01
[   21.080827] jffs2_scan_eraseblock(): End of filesystem marker found at 0x0
[   21.080881] jffs2_build_filesystem(): unlocking the mtd device... done.
[   21.092806] jffs2_build_filesystem(): erasing all blocks after the end marker... 
[   22.692606] ipq806x-gmac-dwmac 37400000.ethernet eth1: Link is Up - 1Gbps/Full - flow control off
[   22.722535] br-lan: port 1(eth1) entered forwarding state
[   88.816146] done.
[   88.816178] jffs2: notice: (557) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.

60 (edited by bendavid 2015-12-05 05:14:15)

Re: Support for TP-Link Archer C2600

Btw, I have the image/Makefile sorted out such that I can properly generate the C2600 factory image.  I did not figure out how to generate a working sysupgrade image yet.

61 (edited by TeutonJon78 2015-12-05 08:49:10)

Re: Support for TP-Link Archer C2600

I think the problem from this line

[   14.754430] ath10k_pci 0001:01:00.0: Direct firmware load for ath10k/cal-pci-0001:01:00.0.bin failed with error -2

is from this file: https://dev.openwrt.org/browser/trunk/p … ?rev=47592

For the QCA99x0, it defaults to building with the board-2.bin, and we need to pull in the https://www.codeaurora.org/cgit/quic/qs … 1-0001.bin (assuming I'm reading the files right). Or, if you build that file in, perhaps it's not the right one either.

I also uploaded my builds (md5s were different between the builds, which seems not great -- I would think they build would be reproducible using the same files) and my partition spreadsheet.

In your decompressed ram file you are missing a ton of partitions the stock on has, I'm just not sure which are actually needed full time and which are firmware specific.

In the fwup-ptn section I don't know why the partitions are out of order or if it matters, since it really just uses the size and the base to find the file.

Upload location: https://mega.nz/#F!9MN2UIwB!eqps0Ty6a-sASlFKNNdNbw

Regarding the upgrade image, it probably depends on picking the right type of flash. The assumption is that it's using SPI flash, which seems to be NOR (?). The its files in the /bin directory tell you which images goes with which type of flash.

Edit: I missed a partition line that I wasn't finding before. It was uboot -- all the partitions now work out. However, in the first partition listing, they aren't ordered.

Edit: added the dd commands to split the stock firmware up into its chunks to the partition file. And also to rejoin them to check the results (the commands worked for me).

Archer C2600 (v1.0, LEDE 17.01.1) -- Dev Files / LEDE Trunk Known Issues

Re: Support for TP-Link Archer C2600

I also added the UN firmware analysis and the formats of the partitions to the spreadsheet (v10). Seems the firmware are identical except for:

size, md5 (no kidding wink )
US release has a product-info fwup-ptn (which I assume is what the firmware uses to lock the interface to US for that locale)
soft-version = release is different (matches release in firmware names)

Archer C2600 (v1.0, LEDE 17.01.1) -- Dev Files / LEDE Trunk Known Issues

Re: Support for TP-Link Archer C2600

This thread should be made sticky, great work guys. I was looking at the Turris, but this might be my next router. Any progress in getting the ath10k firmware loaded?

Re: Support for TP-Link Archer C2600

@TeutonJon78 sorry can you clarify exactly which two firmwares you are comparing?

Re: Support for TP-Link Archer C2600

For the sysupgrade btw the problem is understood.  It needs to also be generated by tplink-safeloader with the -S option.  (but this will require a bit more modification to get it working correctly for the C2600 flash layout)

66 (edited by TeutonJon78 2015-12-06 18:43:33)

Re: Support for TP-Link Archer C2600

I was comparing the official stock US ROM to the stock UN (international) ROM.

So theoretically, either model can be switched either way since it's really just that additional partition. It also leads to the idea that there doesn't need to be exactly the same partitions as the official flash. There of course is going to be a required subset that needs to be there.

I know one major problem with the safeloader that is already there is that is doesn't account for creating the flash image from stratch. It uses the defaults partition setup and makes sure that the compiled size is less than the pre-allocated size. When in reality, it should be generating that fwup-ptn section on the fly, based on the sizes of the actual files being fed into it. It seems only a few have a required size.

I have no idea about the partitions contained within the kernel/flash layout and which are needed.

Archer C2600 (v1.0, LEDE 17.01.1) -- Dev Files / LEDE Trunk Known Issues

Re: Support for TP-Link Archer C2600

If you build the C2600 factory image using the patches I posted in
https://lists.openwrt.org/pipermail/ope … 37701.html
and
https://lists.openwrt.org/pipermail/ope … 37728.html

then the resulting firmware contains:
fwup-ptn partition-table base 0x00800 size 0x00800     
fwup-ptn soft-version base 0x01000 size 0x00015
fwup-ptn support-list base 0x01015 size 0x0005a
fwup-ptn os-image base 0x0106f size 0x1c56d0   
fwup-ptn file-system base 0x1c673f size 0x2f0004

Which seams to be a sufficient set to be able to correctly flash from the web ui of the stock firmware.
(though interestingly it appears not possible to flash it from the bootloader recovery, for some reason which I have yet to figure out)

Re: Support for TP-Link Archer C2600

For the issues loading the ath10k firmware,
I have narrowed this down to the loading of the calibration data.

I'm trying to adapt the solution used for the qca9880 in the ar71xx
https://dev.openwrt.org/browser/trunk/t … ?rev=47405
but I'm not able to figure out the correct offset and size for dumping the ath10k/cal*.bin files from the 0:ART partition.
(probably will need two different offsets for the 5ghz and 2ghz radios)

Any suggestions how to figure this out would be welcome.
In case it helps there's a dump of my ART partition here
https://www.dropbox.com/s/k7w3nt0erg1we … p.bin?dl=0

69 (edited by TeutonJon78 2015-12-07 00:17:35)

Re: Support for TP-Link Archer C2600

bendavid wrote:

If you build the C2600 factory image using the patches I posted in
https://lists.openwrt.org/pipermail/ope … 37701.html
and
https://lists.openwrt.org/pipermail/ope … 37728.html

then the resulting firmware contains:
fwup-ptn partition-table base 0x00800 size 0x00800     
fwup-ptn soft-version base 0x01000 size 0x00015
fwup-ptn support-list base 0x01015 size 0x0005a
fwup-ptn os-image base 0x0106f size 0x1c56d0   
fwup-ptn file-system base 0x1c673f size 0x2f0004

Which seams to be a sufficient set to be able to correctly flash from the web ui of the stock firmware.
(though interestingly it appears not possible to flash it from the bootloader recovery, for some reason which I have yet to figure out)

I think the second patch you should set up a specific board type of c2600, rather than reusing the ap148 -- we don't know what other differences might be needed, and it would probably be better than tagging off another board type.

And it might be good to use C2600v1 as the names in case they release another version. Technically all that R7500 works needs to be redone now because a R7500v2 has different internals (switched to basically the same as our board but only using 3:3x3 antennas instead of the 4:4x4 we have.

Archer C2600 (v1.0, LEDE 17.01.1) -- Dev Files / LEDE Trunk Known Issues

Re: Support for TP-Link Archer C2600

mmm, isn't this what I'm doing now in the second version of the patch linked here?

71 (edited by TeutonJon78 2015-12-07 00:33:28)

Re: Support for TP-Link Archer C2600

+define Device/C2600
+ $(call Device/TpSafeImage)
+ DEVICE_DTS := qcom-ipq8064-c2600
+ BLOCKSIZE := 128KiB
+ PAGESIZE := 2048
+ BOARD_NAME := ap148
+ TPLINK_BOARD_ID := C2600
+endef


And since you replied before I edited my previous one, probably good to use C2600v1 in case they release any HW mods, as they tend to do. For example, Netgear has a 7500v2 with different wifi (all QCA instead of QCA/Quadtenna).

Archer C2600 (v1.0, LEDE 17.01.1) -- Dev Files / LEDE Trunk Known Issues

72 (edited by TeutonJon78 2015-12-07 00:50:00)

Re: Support for TP-Link Archer C2600

There is also this file that downloads more ath10k files from the flash partitions for reuse in openWRT.
https://dev.openwrt.org/browser/trunk/t … ?rev=41562

I also wonder that since you were playing around with some images that didn't have the full partition table is something got messed up in your flash. It might be good to go back to the factory image if you haven't and then try your image. It might repopulate some of those flash sections. I'm not sure what's specific to each router versus what is generic to the entire product, e.g. the calibration data.

It does seem like we'll need something similar to get it from flash.

Archer C2600 (v1.0, LEDE 17.01.1) -- Dev Files / LEDE Trunk Known Issues

Re: Support for TP-Link Archer C2600

Thanks,
Missed that line for the BOARD_NAME indeed, will update it.

I actually just got the wireless working (both bands).

It requires indeed dumping the appropriate sections from the 0:ART mtd partition to /lib/firmware/ath10k in order to load the calibration data.
(using a solution based on https://dev.openwrt.org/browser/trunk/t … ?rev=47405 as said)

There is also a small patch needed to ath10k itself (the one suggested in https://www.mail-archive.com/ath10k@lis … 3657.html)

In fact I have been forced to flash back and forth to the stock firmware in order to update my openwrt builds, since sysupgrade is not working for this router at the moment.  (Actually I don't think it's working at all for IPQ806X with NOR flash at the moment)

Re: Support for TP-Link Archer C2600

Sweet, excellent work.

Did you try the openwrt-ipq806x-sysupgrade-squashfs.bin or openwrt-ipq806x-sysupgrade-squashfs-mbn.bin generated from the GPL tarball? Those are generated for NOR (the non squashfs ones are generated for NAND), according to the .its files.

Are you using the US or UN firmware? If using the UN one, could you also dump your product-info partition from flash? I wonder if that gets written based on the first firmware used or if it get cleared out on each flash. As in, if I flash the UN on to my US one, would be international again, or is it locked to that due that partition being populated.

Archer C2600 (v1.0, LEDE 17.01.1) -- Dev Files / LEDE Trunk Known Issues

Re: Support for TP-Link Archer C2600

(Sorry will come back to this over the weekend.  Should be able to submit an updated patch with at least wired + wireless support, and maybe also LEDs/buttons.  Factory image support flashable from stock fw will definitely be there, not sure yet about sysupgrade or being able to flash from bootloader)