Hi,
A little back story here. A while back I have installed OpenWrt on an Archer C7 v1 hardware. I was well aware the 5GHz chipset (QCA9880-AR1A) coming with it wasn't working with the firmware, but since its stability was already bad, I made the decision to make the switch anyway. I read on the internet, a guy was able to take a new PCIe 5GHz WiFi module, inserted it, then upon reboot, his router worked and recognized the card: https://smallhacks.wordpress.com/2015/11/22/upgrading-tp-link-archer-c7-ac1750-to-use-with-openwrt/. At first I though it could be a nice idea, but since buying a new card could cost me about a 100 bucks, I simply left the idea.
Then recently, one of my friends told me he bricked his router and guess what, it's an Archer C7 v2 hardware. Naturally, I told him I'd took his router if he was about to throw it out, which as a good samaritain, decided to give me. Today I took the time to switch the the PCIe WiFi (QCA9880-BR4A) to my router. It booted, but the card doesn't seems to be recognized.
I went to "System -> Software" under the administrative panel and I though maybe the driver wasn't installed. So I installed the package "ath10k-firmware-qca988x", rebooted the router, but it did nothing. I even had factory reset the router, but alas, still did nothing.
The kernel logs are showing something interesting though:
[ 0.000000] Linux version 4.9.184 (buildbot@2ccc8102e0c3) (gcc version 7.3.0 (OpenWrt GCC 7.3.0 r7808-ef686b7292) ) #0 Thu Jun 27 12:18:52 2019
[ 0.000000] MyLoader: sysp=e5ede3a7, boardp=952505af, parts=fde76865
[ 0.000000] bootconsole [early0] enabled
[ 0.000000] CPU0 revision is: 00019750 (MIPS 74Kc)
[ 0.000000] SoC: Qualcomm Atheros QCA9558 ver 1 rev 0
[ 0.000000] Determined physical RAM map:
[ 0.000000] memory: 08000000 @ 00000000 (usable)
[ 0.000000] Initrd not found or empty - disabling initrd
[ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[ 0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x0000000000000000-0x0000000007ffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000000000-0x0000000007ffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff]
[ 0.000000] On node 0 totalpages: 32768
[ 0.000000] free_area_init_node: node 0, pgdat 8044c434, node_mem_map 81000020
[ 0.000000] Normal zone: 256 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 32768 pages, LIFO batch:7
[ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[ 0.000000] pcpu-alloc: [0] 0
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
[ 0.000000] Kernel command line: board=ARCHER-C7 console=ttyS0,115200 rootfstype=squashfs noinitrd
[ 0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Writing ErrCtl register=00000000
[ 0.000000] Readback ErrCtl register=00000000
[ 0.000000] Memory: 124940K/131072K available (3393K kernel code, 178K rwdata, 448K rodata, 324K init, 211K bss, 6132K reserved, 0K cma-reserved)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS:51
[ 0.000000] Clocks: CPU:720.000MHz, DDR:600.000MHz, AHB:200.000MHz, Ref:40.000MHz
[ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 5309056796 ns
[ 0.000008] sched_clock: 32 bits at 360MHz, resolution 2ns, wraps every 5965232126ns
[ 0.008300] Calibrating delay loop... 358.80 BogoMIPS (lpj=1794048)
[ 0.071195] pid_max: default: 32768 minimum: 301
[ 0.076194] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.083239] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.092903] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.103401] futex hash table entries: 256 (order: -1, 3072 bytes)
[ 0.110879] NET: Registered protocol family 16
[ 0.116810] MIPS: machine is TP-LINK Archer C7
[ 0.124624] ar724x-pci ar724x-pci.0: PCIe link is down
[ 0.130127] registering PCI controller with io_map_base unset
[ 0.136346] registering PCI controller with io_map_base unset
[ 0.631936] PCI host bridge to bus 0000:00
[ 0.636337] pci_bus 0000:00: root bus resource [mem 0x10000000-0x11ffffff]
[ 0.643650] pci_bus 0000:00: root bus resource [io 0x0000]
[ 0.649583] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
[ 0.656797] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[ 0.665240] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
[ 0.665342] PCI host bridge to bus 0000:01
[ 0.669701] pci_bus 0000:01: root bus resource [mem 0x12000000-0x13ffffff]
[ 0.677026] pci_bus 0000:01: root bus resource [io 0x0001]
[ 0.682946] pci_bus 0000:01: root bus resource [??? 0x00000000 flags 0x0]
[ 0.690171] pci_bus 0000:01: No busn resource found for root bus, will use [bus 01-ff]
[ 0.698617] pci 0000:01:00.0: [168c:003c] type 00 class 0x028000
[ 0.698655] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x001fffff 64bit]
[ 0.698704] pci 0000:01:00.0: reg 0x30: [mem 0x00000000-0x0000ffff pref]
[ 0.698771] pci 0000:01:00.0: supports D1 D2
[ 0.698937] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[ 0.698960] pci 0000:01:00.0: BAR 0: assigned [mem 0x12000000-0x121fffff 64bit]
[ 0.706776] pci 0000:01:00.0: BAR 6: assigned [mem 0x12200000-0x1220ffff pref]
[ 0.714463] pci 0000:01:00.0: using irq 41 for pin 1
[ 0.722434] clocksource: Switched to clocksource MIPS
[ 0.728668] NET: Registered protocol family 2
[ 0.734106] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.741526] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.748329] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.755170] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.761398] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.768305] NET: Registered protocol family 1
[ 0.772998] PCI: CLS 0 bytes, default 32
[ 0.775248] Crashlog allocated RAM at address 0x3f00000
[ 0.781671] workingset: timestamp_bits=30 max_order=15 bucket_order=0
[ 0.794317] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.800517] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[ 0.818655] io scheduler noop registered
[ 0.822863] io scheduler deadline registered (default)
[ 0.828671] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[ 0.837613] console [ttyS0] disabled
[ 0.861492] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11, base_baud = 2500000) is a 16550A
[ 0.870678] console [ttyS0] enabled
[ 0.878095] bootconsole [early0] disabled
[ 0.891408] m25p80 spi0.0: found s25fl064k, expected m25p80
[ 0.908916] m25p80 spi0.0: s25fl064k (8192 Kbytes)
[ 0.914258] 5 tp-link partitions found on MTD device spi0.0
[ 0.919910] Creating 5 MTD partitions on "spi0.0":
[ 0.924798] 0x000000000000-0x000000020000 : "u-boot"
[ 0.931325] 0x000000020000-0x000000170910 : "kernel"
[ 0.938021] 0x000000170910-0x0000007f0000 : "rootfs"
[ 0.944371] mtd: device 2 (rootfs) set to be root filesystem
[ 0.950149] 1 squashfs-split partitions found on MTD device rootfs
[ 0.956463] 0x0000003c0000-0x0000007f0000 : "rootfs_data"
[ 0.963687] 0x0000007f0000-0x000000800000 : "art"
[ 0.970081] 0x000000020000-0x0000007f0000 : "firmware"
[ 0.977745] libphy: Fixed MDIO Bus: probed
[ 0.994872] switch0: Atheros AR8327 rev. 4 switch registered on ag71xx-mdio.0
[ 1.691216] libphy: ag71xx_mdio: probed
[ 2.323941] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.0:00 [uid=004dd034, driver=Atheros AR8216/AR8236/AR8316]
[ 2.335296] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode:RGMII
[ 2.612430] random: fast init done
[ 2.964064] eth1: Atheros AG71xx at 0xba000000, irq 5, mode:SGMII
[ 2.972025] NET: Registered protocol family 10
[ 2.980042] NET: Registered protocol family 17
[ 2.984644] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[ 2.997878] 8021q: 802.1Q VLAN Support v1.8
[ 3.003600] hctosys: unable to open rtc device (rtc0)
[ 3.014642] VFS: Mounted root (squashfs filesystem) readonly on device 31:2.
[ 3.022988] Freeing unused kernel memory: 324K
[ 3.027491] This architecture does not have kernel memory protection.
[ 3.799091] init: Console is alive
[ 3.802797] init: - watchdog -
[ 4.770514] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[ 4.825243] usbcore: registered new interface driver usbfs
[ 4.830903] usbcore: registered new interface driver hub
[ 4.836406] usbcore: registered new device driver usb
[ 4.845828] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 4.853734] ehci-platform: EHCI generic platform driver
[ 4.859110] ehci-platform ehci-platform.0: EHCI Host Controller
[ 4.865178] ehci-platform ehci-platform.0: new USB bus registered, assigned bus number 1
[ 4.875461] ehci-platform ehci-platform.0: TX-TX IDP fix enabled
[ 4.881562] ehci-platform ehci-platform.0: irq 48, io mem 0x1b000000
[ 4.912472] ehci-platform ehci-platform.0: USB 2.0 started, EHCI 1.00
[ 4.919751] hub 1-0:1.0: USB hub found
[ 4.923861] hub 1-0:1.0: 1 port detected
[ 4.928142] ehci-platform ehci-platform.1: EHCI Host Controller
[ 4.934210] ehci-platform ehci-platform.1: new USB bus registered, assigned bus number 2
[ 4.944495] ehci-platform ehci-platform.1: TX-TX IDP fix enabled
[ 4.950598] ehci-platform ehci-platform.1: irq 49, io mem 0x1b400000
[ 4.982459] ehci-platform ehci-platform.1: USB 2.0 started, EHCI 1.00
[ 4.989741] hub 2-0:1.0: USB hub found
[ 4.993841] hub 2-0:1.0: 1 port detected
[ 4.998490] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[ 5.016205] init: - preinit -
[ 5.804750] eth1: link up (1000Mbps/Full duplex)
[ 5.842940] random: procd: uninitialized urandom read (4 bytes read)
[ 9.092659] jffs2: notice: (444) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
[ 9.110831] mount_root: switching to jffs2 overlay
[ 9.140963] urandom-seed: Seeding with /etc/urandom.seed
[ 9.342239] eth1: link down
[ 9.355413] procd: - early -
[ 9.358410] procd: - watchdog -
[ 9.962540] procd: - watchdog -
[ 9.965938] procd: - ubus -
[ 10.096366] random: ubusd: uninitialized urandom read (4 bytes read)
[ 10.105632] random: ubusd: uninitialized urandom read (4 bytes read)
[ 10.112496] random: ubusd: uninitialized urandom read (4 bytes read)
[ 10.119753] procd: - init -
[ 10.464388] kmodloader: loading kernel modules from /etc/modules.d/*
[ 10.474668] ip6_tables: (C) 2000-2006 Netfilter Core Team
[ 10.489935] Loading modules backported from Linux version wt-2017-11-01-0-gfe248fc2c180
[ 10.498106] Backport generated by backports.git v4.14-rc2-1-31-g86cf0e5d
[ 10.507916] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 10.520193] nf_conntrack version 0.5.0 (2048 buckets, 8192 max)
[ 10.568570] xt_time: kernel timezone is -0000
[ 10.616566] PPP generic driver version 2.4.2
[ 10.622956] NET: Registered protocol family 24
[ 10.662190] ath: EEPROM regdomain: 0x0
[ 10.662197] ath: EEPROM indicates default country code should be used
[ 10.662200] ath: doing EEPROM country->regdmn map search
[ 10.662212] ath: country maps to regdmn code: 0x3a
[ 10.662216] ath: Country alpha2 being used: US
[ 10.662219] ath: Regpair used: 0x3a
[ 10.678202] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[ 10.681307] ieee80211 phy0: Atheros AR9550 Rev:0 mem=0xb8100000, irq=47
[ 10.767177] kmodloader: done loading kernel modules from /etc/modules.d/*
[ 11.797541] urandom_read: 5 callbacks suppressed
[ 11.797548] random: jshn: uninitialized urandom read (4 bytes read)
[ 20.016165] eth1: link up (1000Mbps/Full duplex)
[ 20.020927] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
[ 20.073899] br-lan: port 1(eth1.1) entered blocking state
[ 20.079389] br-lan: port 1(eth1.1) entered disabled state
[ 20.085235] device eth1.1 entered promiscuous mode
[ 20.090095] device eth1 entered promiscuous mode
[ 20.163627] br-lan: port 1(eth1.1) entered blocking state
[ 20.169116] br-lan: port 1(eth1.1) entered forwarding state
[ 20.174942] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[ 20.251972] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 20.283873] IPv6: ADDRCONF(NETDEV_UP): eth0.2: link is not ready
[ 21.092539] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[ 21.099271] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[ 21.433949] eth0: link up (1000Mbps/Full duplex)
[ 21.691544] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 21.728673] IPv6: ADDRCONF(NETDEV_CHANGE): eth0.2: link becomes ready
[ 22.181816] ath: EEPROM regdomain: 0x807c
[ 22.185920] ath: EEPROM indicates we should expect a country code
[ 22.192096] ath: doing EEPROM country->regdmn map search
[ 22.197500] ath: country maps to regdmn code: 0x3a
[ 22.202357] ath: Country alpha2 being used: CA
[ 22.206874] ath: Regpair used: 0x3a
[ 22.210411] ath: regdomain 0x807c dynamically updated by user
[ 25.269664] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 25.325443] br-lan: port 2(wlan0) entered blocking state
[ 25.330957] br-lan: port 2(wlan0) entered disabled state
[ 25.336739] device wlan0 entered promiscuous mode
[ 32.737509] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[ 32.744154] br-lan: port 2(wlan0) entered blocking state
[ 32.749549] br-lan: port 2(wlan0) entered forwarding state
[ 67.615519] random: crng init done
I have a log reading: "PCIe link is down". So I though maybe this is because I haven't properly installed the card inside, but some other forum threads are guiding us to other possibilities: https://forum.archive.openwrt.org/viewtopic.php?id=56638.
Can someone help me with this issue? Do I need to disable the USB like suggested in the previous thread? Do someone have some insight on that little problem?
Thanks a lot!
David