Archer C7 V1.0 crashes on boot

In the bug report about the bootloop, https://bugs.openwrt.org/index.php?do=details&task_id=1743 the committer of that patch said "The problem is fixed in the upcoming ath79 Archer C7 V1.(0/1) though."

So I would assume yes.

just tried image from yesterday. bootloop present

1 Like

amazing, so I can safely change the hardware page to list Chaos Calmer as the last known good firmware for this revision

2 Likes

it is incompatible with plain ath10k driver. since the support used to be available does anyone have ath10k fw binaries? these do not seem to exist in git repos or elsewhere.

tp-link fw loads but is not usable:

[    9.940000] ath10k_pci 0000:01:00.0: BAR 0: assigned [mem 0x12000000-0x121fffff 64bit]
[    9.950000] PCI: Enabling device 0000:01:00.0 (0000 -> 0002)
[    9.950000] ath10k: MSI didn't succeed (-1), trying legacy INTR
[    9.980000] ath10k: legacy interrupt handling
[   10.200000] ath10k: Hardware name qca988x hw1.0 version 0x4000002c
[   11.260000] ath10k: UART prints disabled
[   11.270000] ath10k: Unknown eventid: 32768
[   16.270000] ath10k: wmi service ready event not received
[   16.270000] ath10k: init htc connect failed (-145)
[   16.280000] ath10k: could not init core (-145)
[   16.280000] ath10k: could not probe fw (-145)
[   16.290000] ath10k: could not register driver core (-145)
[   16.290000] ath10k_pci: probe of 0000:01:00.0 failed with error -145
[   18.660000] eth1: link up (1000Mbps/Full duplex)
[   18.660000] device eth1 entered promiscuous mode

notice how it waits exactly 5 secs from 11.27 to 16.27 before it fails.

ath10k fw (for hw2.0) doesn't even start, most likely due to file format:

[    9.940000] PCI: Enabling device 0000:01:00.0 (0000 -> 0002)
[    9.940000] ath10k: MSI didn't succeed (-1), trying legacy INTR
[    9.970000] ath10k: legacy interrupt handling
[   10.320000] ath10k: Hardware name qca988x hw1.0 version 0x4000002c
[   11.520000] ath10k: early firmware event indicated
[   11.600000] ath10k: unable to write LZ data to the device
[   11.600000] ath10k: could not write fw (-145)
[   11.600000] ath10k: could not init core (-145)
[   11.610000] ath10k: could not probe fw (-145)
[   11.610000] ath10k: could not register driver core (-145)
[   11.620000] ath10k_pci: probe of 0000:01:00.0 failed with error -145
[   14.000000] eth1: link up (1000Mbps/Full duplex)

update: latest 2.0 fw starts after cutting board data out and some trailing chars
previously device would crash if used ath10k_pci_device_reset pointing to this offending line

if (!(ath10k_pci_reg_read32(mem, RTC_STATE_ADDRESS) &

of compat-wireless-2013-06-27,

after putting two warn prints here:

/* Put Target, including PCIe, into RESET. */
val = ath10k_pci_reg_read32(mem, SOC_GLOBAL_RESET_ADDRESS);
val |= 1;
ath10k_pci_reg_write32(mem, SOC_GLOBAL_RESET_ADDRESS, val);

for (i = 0; i < ATH_PCI_RESET_WAIT_MAX; i++) {
	if (ath10k_pci_reg_read32(mem, RTC_STATE_ADDRESS) &
				  RTC_STATE_COLD_RESET_MASK)
		ath10k_warn("put into reset \n");
		break;
	msleep(1);
}

/* Pull Target, including PCIe, out of RESET. */
val &= ~1;
ath10k_pci_reg_write32(mem, SOC_GLOBAL_RESET_ADDRESS, val);

for (i = 0; i < ATH_PCI_RESET_WAIT_MAX; i++) {
	if (!(ath10k_pci_reg_read32(mem, RTC_STATE_ADDRESS) &
				    RTC_STATE_COLD_RESET_MASK))
		ath10k_warn("pull out of reset \n");
		break;
	msleep(1);
}

there is no more crash, but bootlog revealed that while pcie is being pulled out of reset it was never put into reset!

[    9.790000] ath10k_pci 0000:01:00.0: BAR 0: assigned [mem 0x12000000-0x121fffff 64bit]
[    9.800000] PCI: Enabling device 0000:01:00.0 (0000 -> 0002)
[    9.810000] ath10k: MSI-X didn't succeed (-1), trying MSI
[    9.810000] ath10k: MSI didn't succeed (-1), trying legacy INTR
[    9.840000] ath10k: legacy interrupt handling
[    9.840000] ath10k: pull out of reset
[   10.790000] ath10k: Hardware name qca988x hw1.0 version 0x4000002c
[   12.020000] ath10k: UART prints disabled
[   13.030000] ath10k: ctl_resp never came in (-145)
[   13.030000] ath10k: could not init core (-145)
[   13.040000] ath10k: could not probe fw (-145)
[   13.040000] ath10k: could not register driver core (-145)
[   13.050000] ath10k_pci: probe of 0000:01:00.0 failed with error -145
[   14.930000] eth1: link up (1000Mbps/Full duplex)

soc has two pci interfaces and the message is related to unpopulated pci bus0 which explains why it shows twice when you remove wlan module

1 Like

power up sequence of QCA9886 might be useful here in case it is identical to QCA9880

got the minipcie extender board today and connected the card to a laptop; ubuntu 16.04 frozen at boot; win10 booted and device was detected but not installed due to missing driver
next i connect qca9862 card and boot win10- same thing no driver. found some driver and installed it and qca9862 picked up APs around, but did not connect - it reset the card on every connect attempt. booting win10 with qca9880 and driver installed failed - win10 frozen too.
patching ubuntu 16.04 with changes from https://github.com/openwrt/openwrt/pull/2435 allowed system to boot up to the point where fw fails.
one interesting thing discovered: usb lines on QCA9880-AR1A are actually used for bluetooth! lsusb finds AR3012 BT4.0

That's common for many wifi/BT combined cards for laptops afaik.

yeah, but this is oversized card not designed for laptop. tried loading it in vbox running ubuntu 10.04 that does not require dfu patches and the interface was detected, some TX/RX packets shown in hciconfig but it doesn't find bluetooth devices. also i don't think it affects PCIe stability, and using MSI interrupts doesn't help either as the situation is the same as with legacy interrupts.

turns out, somebody at AVM did a sloppy job stripping out proprietary code before publishing GPL sources: fritzbox 7490's GPL-wlan.tar.gz contains sub_project5/mips-linux-2.6.31/drivers/pcie dir with qca proprietary pcie drivers for both host and target that have quite a bit of DMA fixes.
more important, i've made some more progress with the card, after recompiling tp-link kernel and dumping skbs while booting original firmware, it is now clear that the card does not use raw or nwifi mode but ethernet encapsulation instead. and the service ready event does not send any memory allocation info as i've suspected. still have issues with things like "target pause event never came" or resetting rx filter...

2 Likes

This has been changed again today by @Borromini

Only after I changed the download urls accordingly, I noticed your edit summary:

updated last known good firmware at CC as later versions cause bootloop

Is this still the case, ie. 18.06.5 causes bootloop on C7 v1?

My apologies if I have messed up, I just checked the C7 page for someone in need of flashing and I thought the v1 stuck at 15.05 was a leftover :confused: I should have checked the page log.

Let's hope someone can test if the latest stable (and 19.07 RCs) still break stuff.

@tmomas Should I roll it back?

1 Like

I'd like to avoid revert-ping-pong (back to 15.05, then back to 18.06 again).
A quick tryout would be nice, just to get clarity. If nobody does that within reasonable amount of time (e.g. over the weekend), I'd suggest to revert to 15.05.

19.07 rc1 still breaks, and this won't get fix automagically as it requires driver changes.
current state of the driver that i work on is that it crashed on vdev create:

[   28.075183] ath10k_pci 0000:01:00.0: ath10k_htc_notify_tx_completion: ep 2 skb 87309b40
[   28.083333] ath10k_pci 0000:01:00.0: wmi pdev regdomain rd 11 rd2g 11 rd5g 11 ctl2g 30 ctl5g 10 dfs_region 1
[   28.093309] ath10k_pci 0000:01:00.0: htc ep 2 consumed 1 credits (total 0)
[   28.100295] ath10k_pci 0000:01:00.0: pci tx item 0 paddr 0x068b3920 len 36 n_items 1
[   28.108149] ath10k_pci 0000:01:00.0: pci tx data: 00000000: 02 01 1c 00 00 09 00 00 04 90 00 00 11 00 00 00  ................
[   28.119617] ath10k_pci 0000:01:00.0: pci tx data: 00000010: 11 00 00 00 11 00 00 00 30 00 00 00 10 00 00 00  ........0.......
[   28.131085] ath10k_pci 0000:01:00.0: pci tx data: 00000020: 01 00 00 00                                      ....
[   28.141520] ath10k_pci 0000:01:00.0: mac create vdev 0 map ffff
[   28.147533] ath10k_pci 0000:01:00.0: mac vdev create 0 (add interface) type 1 subtype 0 bcnmode single-buf
[   28.157333] ath10k_pci 0000:01:00.0: WMI vdev create: id 0 type 1 subtype 0 macaddr 10:fe:ed:eb:f0:5f
[   28.166691] ath10k_pci 0000:01:00.0: htc insufficient credits ep 2 required 1 available 0
[   28.174989] ath10k_pci 0000:01:00.0: htc insufficient credits ep 2 required 1 available 0
[   28.186282] ath10k_pci 0000:01:00.0: pci rx ce pipe 1 len 16
[   28.192068] ath10k_pci 0000:01:00.0: pci rx: 00000000: 00 02 08 00 08 0e 00 00 01 04 00 01 02 01 04 06  ................
[   28.203099] ath10k_pci 0000:01:00.0: htc ep 2 got 1 credits (total 1)
[   28.209652] ath10k_pci 0000:01:00.0: pci rx ce pipe 1 len 16
[   28.215387] ath10k_pci 0000:01:00.0: pci rx: 00000000: 00 02 08 00 08 10 00 00 01 04 00 01 02 01 04 06  ................
[   28.226416] ath10k_pci 0000:01:00.0: htc ep 2 got 1 credits (total 2)
[   28.232981] ath10k_pci 0000:01:00.0: pci rx ce pipe 2 len 16
[   28.238726] ath10k_pci 0000:01:00.0: pci rx: 00000000: 02 00 08 00 00 0f 00 00 01 90 00 00 11 00 00 00  ................
[   28.249752] ath10k_pci 0000:01:00.0: htc rx completion ep 2 skb 87525a80
[   28.256544] ath10k_pci 0000:01:00.0: testmode event wmi cmd_id 36865 skb 87525a80 skb->len 4
[   28.265108] ath10k_pci 0000:01:00.0: 00000000: 11 00 00 00                                      ....
[   28.274377] ath10k_pci 0000:01:00.0: wmi event echo value 0x00000011
[   28.280846] ath10k_pci 0000:01:00.0: ath10k_htc_notify_tx_completion: ep 2 skb 87309000
[   28.290241] ath10k_pci 0000:01:00.0: htc ep 2 consumed 1 credits (total 1)
[   28.297225] ath10k_pci 0000:01:00.0: pci tx item 0 paddr 0x068b3800 len 32 n_items 1
[   28.305119] ath10k_pci 0000:01:00.0: pci tx data: 00000000: 02 01 18 00 00 0a 00 00 11 90 00 00 00 00 00 00  ................
[   28.316591] ath10k_pci 0000:01:00.0: pci tx data: 00000010: 01 00 00 00 00 00 00 00 10 fe ed eb f0 5f 00 00  ............._..
[   28.328114] ath10k_pci 0000:01:00.0: vdev param 0 not supported by firmware
[   28.335176] ath10k_pci 0000:01:00.0: wmi vdev id 0x0 set param 32 value 3
[   28.342069] ath10k_pci 0000:01:00.0: htc ep 2 consumed 1 credits (total 0)
[   28.349053] ath10k_pci 0000:01:00.0: pci tx item 0 paddr 0x068b09e0 len 24 n_items 1
[   28.356901] ath10k_pci 0000:01:00.0: pci tx data: 00000000: 02 01 10 00 00 0b 00 00 1a 90 00 00 00 00 00 00  ................
[   28.368368] ath10k_pci 0000:01:00.0: pci tx data: 00000010: 20 00 00 00 03 00 00 00                           .......
[   28.379139] ath10k_pci 0000:01:00.0: wmi peer create vdev_id 0 peer_addr 10:fe:ed:eb:f0:5f
[   28.387515] ath10k_pci 0000:01:00.0: htc insufficient credits ep 2 required 1 available 0
[   28.395817] ath10k_pci 0000:01:00.0: htc insufficient credits ep 2 required 1 available 0
[   28.404786] napi poll crash
[   28.404805] ath10k_pci 0000:01:00.0: firmware crashed! (guid n/a)
[   28.413852] ath10k_pci 0000:01:00.0: qca988x hw1.0 target 0x4000002c chip_id 0x043200ff sub 168c:3223
[   28.423213] ath10k_pci 0000:01:00.0: kconfig debug 1 debugfs 1 tracing 0 dfs 1 testmode 1
[   28.434289] ath10k_pci 0000:01:00.0: firmware ver 10.0.107 api 1 features wmi-10.x,no-p2p,wowlan,raw-mode crc32 a25d55f3
[   28.445366] ath10k_pci 0000:01:00.0: board_file api 1 bmi_id N/A crc32 ced86105
[   28.452788] ath10k_pci 0000:01:00.0: htt-ver 2.0 wmi-op 2 htt-op 2 cal otp max-sta 56 raw 0 hwcrypto 1
[   28.462377] ath10k_pci 0000:01:00.0: firmware register dump:
[   28.468125] ath10k_pci 0000:01:00.0: [00]: 0x4000002C 0x00000000 0x009A5F2A 0x00000000
[   28.476149] ath10k_pci 0000:01:00.0: [04]: 0x00000000 0x00000000 0x00000000 0x00000000
[   28.484186] ath10k_pci 0000:01:00.0: [08]: 0x00000000 0x00000000 0x00000000 0x00000000
[   28.492218] ath10k_pci 0000:01:00.0: [12]: 0x00000000 0x00000000 0x00000000 0x00000000
[   28.500253] ath10k_pci 0000:01:00.0: [16]: 0x00000000 0x00000000 0x00000000 0x009A5F2A
[   28.508285] ath10k_pci 0000:01:00.0: [20]: 0x00000000 0x00401930 0x00000000 0x00000000
[   28.516311] ath10k_pci 0000:01:00.0: [24]: 0x00000000 0x00000000 0x00000000 0x00000000
[   28.524347] ath10k_pci 0000:01:00.0: [28]: 0x00000000 0x00000000 0x00000000 0x00000000
[   28.532385] ath10k_pci 0000:01:00.0: [32]: 0x00000000 0x00000000 0x00000000 0x00000000
[   28.540426] ath10k_pci 0000:01:00.0: [36]: 0x00000000 0x00000000 0x00000000 0x00000000
[   28.548457] ath10k_pci 0000:01:00.0: [40]: 0x00000000 0x00000000 0x00000000 0x00000000
[   28.556483] ath10k_pci 0000:01:00.0: [44]: 0x00000000 0x00000000 0x00000000 0x00000000
[   28.564520] ath10k_pci 0000:01:00.0: [48]: 0x00000000 0x00000000 0x00000000 0x00000000
[   28.572554] ath10k_pci 0000:01:00.0: [52]: 0x00000000 0x00000000 0x00000000 0x00000000
[   28.580589] ath10k_pci 0000:01:00.0: [56]: 0x00000000 0x00000000 0x00000000 0x00000000
[   28.588618] ath10k_pci 0000:01:00.0: Copy Engine register dump:
[   28.594631] ath10k_pci 0000:01:00.0: [00]: 0x00057400   0   0   3   3
[   28.601180] ath10k_pci 0000:01:00.0: [01]: 0x00057800  13  13  18  19
[   28.607713] ath10k_pci 0000:01:00.0: [02]: 0x00057c00   3   3   2   3
[   28.614253] ath10k_pci 0000:01:00.0: [03]: 0x00058000  12  12  12  12
[   28.620800] ath10k_pci 0000:01:00.0: [04]: 0x00058400   3   3  67   3
[   28.627337] ath10k_pci 0000:01:00.0: [05]: 0x00058800   1   1   0   1
[   28.633879] ath10k_pci 0000:01:00.0: [06]: 0x00058c00   1   1   1   1
[   28.640425] ath10k_pci 0000:01:00.0: [07]: 0x00059000   1   1   1   1
[   28.648660] ath10k_pci 0000:01:00.0: htc insufficient credits ep 2 required 1 available 0
[   28.656964] ath10k_pci 0000:01:00.0: failed to create wmi peer 10:fe:ed:eb:f0:5f on vdev 0: -143
[   28.665901] ath10k_pci 0000:01:00.0: failed to create vdev 0 peer for AP/IBSS: -143
[   28.673679] ath10k_pci 0000:01:00.0: WMI vdev delete id 0
[   28.679172] ath10k_pci 0000:01:00.0: htc insufficient credits ep 2 required 1 available 0
[   28.687743] ath10k_pci 0000:01:00.0: wmi disable pktlog
[   28.693064] ath10k_pci 0000:01:00.0: htc insufficient credits ep 2 required 1 available 0
[   28.701374] ath10k_pci 0000:01:00.0: htc insufficient credits ep 2 required 1 available 0
[   28.709678] ath10k_pci 0000:01:00.0: could not suspend target (-143)
[   28.716113] ath10k_pci 0000:01:00.0: boot hif stop
[   28.721321] ath10k_pci 0000:01:00.0: ath10k_htc_notify_tx_completion: ep 2 skb 87309b40
[   28.729463] ath10k_pci 0000:01:00.0: ath10k_htc_notify_tx_completion: ep 2 skb 87309180
[   28.738187] ath10k_pci 0000:01:00.0: boot hif power down
[   28.744187] ath10k_pci 0000:01:00.0: cannot restart a device that hasn't been started

The 5 GHz chip is unsupported / unsupportable, so the build system should not be loading kmod-ath10k into images for this model. Until that is done, owners of a V1 could use Image Builder to remove it.

Does that mean a 18.06 / 19.07 image without ath10k would boot properly?

1 Like

Might it not be wiser to strip the kmod-ath10k package from the v1 builds altogether then? They're still built, and I'm sure not everyone will check the wiki before trying to flash it...

That, and a big fat warning on the C7 wiki page that v1 devices don't have functional wireless with anything > 15.05.

So

define Device/tplink_archer-c7-v1
   $(Device/tplink-8mlzma)
   ATH_SOC := qca9558
   DEVICE_MODEL := Archer C7
   DEVICE_VARIANT := v1
   DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
   TPLINK_HWID := 0x75000001
   SUPPORTED_DEVICES += archer-c7
 endef
 TARGET_DEVICES += tplink_archer-c7-v1

instead of

define Device/tplink_archer-c7-v1
   $(Device/tplink-8mlzma)
   ATH_SOC := qca9558
   DEVICE_MODEL := Archer C7
   DEVICE_VARIANT := v1
   DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca988x-ct
   TPLINK_HWID := 0x75000001
   SUPPORTED_DEVICES += archer-c7
 endef
 TARGET_DEVICES += tplink_archer-c7-v1

Not sure devs would agree though...

Removing ath10k{,-ct} should fix that issue - and wireless on the c7-v1 has never worked (not in 15.05.x and never before, nor is it expected to get supported, ever). For ar71xx it has been removed.

OK then that should be backported to 19.07 ar71xx and all ath79 branches...

I'll send in a few patches this evening.

I have sent in patches for master & 19.07 ath79, but, according to @chunkeey's comment posted at August 29th at 20:34 in the bugreport, this might not be needed.

@psyborg did you try an ar71xx or an ath79 build? I can't tell from your log. I assume ath79, since 19.07 ar71xx has the ath10k packages already stripped from the C7 v1 profile.

1 Like

it is the same on ar71xx or ath79, it takes several driver modifications (e.g max STA number,API version etc.) to get to the point of interface bring up attempt (which fails on vdev creation, same in case rx filter is set to true - dummy vdev create/delete).
the main problem is when dumping skb with original fw there are too many skb dumps for both wifi and eth interfaces and it takes quite some examination of the dumps to come up with proper driver values.
another problem is occasional pcie data bus errors, and these prevent core from going to suspend and resume on initial firmware load/mac start - this can be bypassed easily until dma fixes are made (maybe someone can take a look at avm sources and try to make something out of it?) by simply not suspending core after initial fw load and not (re)starting hif from mac.c
i can post full bootlog if anybody is interested in it

1 Like