Adding OpenWrt support for Xiaomi AX3600 (Part 1)

Well, to give QCA a break they never really intended for v1 SoC to be sold publicly and made it really clear that only v2 would be supported as v1 doesn't even support final 802.11ax

The updated patches for 5.15 are on my repo ipq807x-5.15 branch https://github.com/psi-c/openwrt/tree/ipq807x-5.15 and I've updated the feeds.conf.default to point to my nss-packages. I've corrected them for the changes in the __dma_xx_area parameters (not that it seems to make any difference but that could be due to the next problem...).

Unfortunately, and I don't know how I've just noticed now, but it would seem it builds, the modules load, but don't work, as the roaming issue is back. This I don't understand as I'm sure I would have noticed it (it's not hard to miss!).

The only clue I can see is maybe it's not loading the firmware as there's not the message I see in 5.10

[    8.808115] EDMA ver 1 hw init
[    8.808365] EDMA HW Reset completed succesfully
[    8.810116] Num rings - TxDesc:1 (23-23) TxCmpl:1 (7-7)
[    8.814519] RxDesc:1 (15-15) RxFill:1 (7-7)
[    8.824636] **********************************************************
[    8.824668] * NSS Data Plane driver
[    8.830493] **********************************************************
[    8.958709] nss_driver - fw of size 833304  bytes copied to load addr: 40000000, nss_id : 0
[    8.960816] Supported Frequencies - 
[    8.960824] 187.2 MHz 
[    8.965893] 748.8 MHz 
[    8.969681] 1.4976 GHz 
[    8.971850] 
[    8.976590] ffffffc008955900: set sdma ffffff8003938500
[    8.978381] ffffffc008955900: meminfo init succeed
[    9.019904] node size 2 # items 4
[    9.019937] memory: 40000000 536870912 (avl 437161984) items 4 active_cores 2
[    9.022223] addr/size storage words 2 2 # words 4 in DTS, ddr size 1000000
[    9.029335] ffffffc008955900: nss core 0 booted successfully
[    9.040728] nss_driver - fw of size 292296  bytes copied to load addr: 40800000, nss_id : 1
[    9.044113] Supported Frequencies - 
[    9.044261] 187.2 MHz 
[    9.050152] 748.8 MHz 
[    9.055093] 1.4976 GHz 
[    9.055957] 
[    9.060718] ffffffc00895d140: set sdma ffffff8003b70d00
[    9.062478] ffffffc00895d140: meminfo init succeed
[    9.067561] debugfs: Directory 'dynamic_if' with parent 'stats' already present!
[    9.072220] debugfs: File 'n2h' in directory 'strings' already present!
[    9.079763] debugfs: File 'drv' in directory 'strings' already present!
[    9.090332] node size 2 # items 4
[    9.092691] memory: 40000000 536870912 (avl 437161984) items 4 active_cores 2
[    9.096191] addr/size storage words 2 2 # words 4 in DTS, ddr size 1000000
[    9.103302] ffffffc00895d140: nss core 1 booted successfully
[    9.114368] PPP generic driver version 2.4.2
[    9.116646] NET: Registered protocol family 24
[    9.123339] Loading modules backported from Linux version v5.15-rc6-0-g519d81956ee2
[    9.124372] Backport generated by backports.git v5.15-rc6-1-0-gd44432d6
[    9.141339] xt_time: kernel timezone is -0000
[    9.187453] ath10k 5.10 driver, optimized for CT firmware, probing pci device: 0x50.
[    9.187961] ath10k_pci 0000:01:00.0: enabling device (0000 -> 0002)
[    9.194765] ath10k_pci 0000:01:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[   10.027989] ath10k_pci 0000:01:00.0: qca9887 hw1.0 target 0x4100016d chip_id 0x004000ff sub 0000:0000
[   10.028031] ath10k_pci 0000:01:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[   10.036363] ath10k_pci 0000:01:00.0: firmware ver 10.1-ct-87-__fW-022-ecad3248 api 2 features wmi-10.x,has-wmi-mgmt-tx,mfp,txstatus-noack,wmi-10.x-CT,ratemask-CT,txrate-CT,get-temp-CT,tx-rc-CT,cust-stats-CT,retry-gt2-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT crc32 61a92df5
[   10.088442] ath10k_pci 0000:01:00.0: board_file api 2 bmi_id N/A crc32 b4ce36fa
[   10.955316] ath10k_pci 0000:01:00.0: 10.1 wmi init: vdevs: 16  peers: 127  tid: 256
[   10.962256] ath10k_pci 0000:01:00.0: wmi print 'P 128 V 8 T 410'
[   10.962310] ath10k_pci 0000:01:00.0: wmi print 'msdu-desc: 1424  sw-crypt: 0 ct-sta: 0'
[   10.968102] ath10k_pci 0000:01:00.0: wmi print 'alloc rem: 25560 iram: 24780'
[   11.015530] ath10k_pci 0000:01:00.0: htt-ver 2.1 wmi-op 2 htt-op 2 cal file max-sta 128 raw 0 hwcrypto 1
[   11.015903] ath10k_pci 0000:01:00.0: NOTE:  Firmware DBGLOG output disabled in debug_mask: 0x10000000
[   11.131922] ath11k c000000.wifi: ipq8074 hw2.0
[   11.132285] remoteproc remoteproc0: powering up cd00000.q6v5_wcss
[   11.135552] remoteproc remoteproc0: Booting fw image IPQ8074/q6_fw.mdt, size 668
[   12.383198] remoteproc remoteproc0: remote processor cd00000.q6v5_wcss is now up

Meanwhile in 5.15:

[    9.030995] EDMA ver 1 hw init
[    9.031256] EDMA HW Reset completed succesfully
[    9.032979] Num rings - TxDesc:1 (23-23) TxCmpl:1 (7-7)
[    9.037375] RxDesc:1 (15-15) RxFill:1 (7-7)
[    9.047180] **********************************************************
[    9.047222] * NSS Data Plane driver
[    9.053436] **********************************************************
[    9.062571] qca-nss-drv.ko is loaded for symbol link
[    9.071498] PPP generic driver version 2.4.2
[    9.072290] NET: Registered PF_PPPOX protocol family
[    9.078663] Loading modules backported from Linux version v5.15.8-0-g43e577d7a2cb
[    9.079886] Backport generated by backports.git v5.15.8-1-0-g83f664bb
[    9.095747] NET: Registered PF_QIPCRTR protocol family
[    9.100818] xt_time: kernel timezone is -0000
[    9.140386] ath10k 5.15 driver, optimized for CT firmware, probing pci device: 0x50.
[    9.141243] ath10k_pci 0000:01:00.0: enabling device (0000 -> 0002)
[    9.147630] ath10k_pci 0000:01:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[   10.079254] ath10k_pci 0000:01:00.0: qca9887 hw1.0 target 0x4100016d chip_id 0x004000ff sub 0000:0000
[   10.079308] ath10k_pci 0000:01:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[   10.087599] ath10k_pci 0000:01:00.0: firmware ver 10.1-ct-87-__fW-022-ecad3248 api 2 features wmi-10.x,has-wmi-mgmt-tx,mfp,txstatus-noack,wmi-10.x-CT,ratemask-CT,txrate-CT,get-temp-CT,tx-rc-CT,cust-stats-CT,retry-gt2-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT crc32 61a92df5
[   10.139691] ath10k_pci 0000:01:00.0: board_file api 2 bmi_id N/A crc32 b4ce36fa
[   11.005865] ath10k_pci 0000:01:00.0: 10.1 wmi init: vdevs: 16  peers: 127  tid: 256
[   11.012813] ath10k_pci 0000:01:00.0: wmi print 'P 128 V 8 T 410'
[   11.012862] ath10k_pci 0000:01:00.0: wmi print 'msdu-desc: 1424  sw-crypt: 0 ct-sta: 0'
[   11.018622] ath10k_pci 0000:01:00.0: wmi print 'alloc rem: 25560 iram: 24780'
[   11.066082] ath10k_pci 0000:01:00.0: htt-ver 2.1 wmi-op 2 htt-op 2 cal file max-sta 128 raw 0 hwcrypto 1
[   11.066451] ath10k_pci 0000:01:00.0: NOTE:  Firmware DBGLOG output disabled in debug_mask: 0x10000000
[   11.210494] ath11k c000000.wifi: ipq8074 hw2.0
[   11.210803] remoteproc remoteproc0: powering up cd00000.q6v5_wcss
[   11.213982] remoteproc remoteproc0: Booting fw image IPQ8074/q6_fw.mdt, size 668
[   12.387795] remoteproc remoteproc0: remote processor cd00000.q6v5_wcss is now up

qca-nss0-retail.bin & qca-nss1-retail.bin are present and non-zero size in /lib/firmware. Ah well, more fun things to investigate :slight_smile:

1 Like

You need to add the ipq8074-ac-nss.dtsi and the corresponding includes in the device dts to make the nss cores work:

https://github.com/robimarko/openwrt/commit/5e0cee43e289c1a47dd80532e3370228e14b296b
1 Like

Well, starting the code review early - given the fact how little usually changes compared to drafts - can be useful. Of course in the light of how ath11k evolved, I would say there is plenty to fix on the ath11k side before this huge task should suck up all the dev resources...

I doubt it's sucking a lot of resources, it seems to be basically ath11k with modifications.
They have started being rather active on ath11k in the 1-2 weeks, it will be time for more backporting to bring us in line.

It seems they dont want Broadcom to be the first one with 802.11be like they were for 802.11ax despite those not actually being per the final standard

Thanks, looks like all that's included already though. I cloned Robi's repo yesterday evening then added my patches in. See what I can find today...

Edit: face-palm! Clearly it was too late for me too, looking in the wrong directory. Indeed it is missing from ipq807x-5.15.

1 Like

Hey guys,

with your help my AX3600 is running OpenWRT. Thank you, especially @robimarko: Great job.
However i'm an OpenWrt noob and have some problems getting all up and running.
I think it's because i have to do everything from scratch (no fancy wizards :wink: )
Is there anybody out there, who will share his/her config. So i can use this config, make my changes and have a full configured router. All i need is working wifi, wan (dhcp), all lan ports and lan DHCP. Currently there is no need for something special thing like VLan etc.
I know I am lazy and unknowing, but maybe someone will help me out and I assume that it is easier for me to adapt a preconfigured system. The settings and configuration options slay me right now and I'm not sure if I have certain settings set correctly or not.
Thanks in advance.

Exception made for the WiFi, everything else should work as you describe right out of the box (e.g., WAN via DHCP and pre-configured LAN issuing addresses via DHCP in all other ports). Honestly, I would start with the official Quick Start guide (https://openwrt.org/docs/guide-quick-start/start).

However, beware that I would not recommend using an unsupported device (such as the AX3600) to learn the essentials -- when things don't work you'll need to diagnose if it's your configuration or a bug with the device, something that very much requires already knowing the essentials; ergo not a good first device to learn the ropes.

@robimarko last night out of a sudden, both radios stopped and the log was full with this:

[614081.310917] ath11k_warn: 26 callbacks suppressed
[614081.310941] ath11k c000000.wifi: failed to send WMI_PDEV_BSS_CHAN_INFO_REQUEST cmd
[614081.314667] ath11k c000000.wifi: failed to send pdev bss chan info request
[614081.322405] ath11k c000000.wifi: failed to send WMI_PDEV_SET_PARAM cmd
[614081.329080] ath11k c000000.wifi: Failed to set beacon mode for VDEV: 1
[614081.335714] ath11k c000000.wifi: failed to send WMI_BCN_TMPL_CMDID
[614081.342249] ath11k c000000.wifi: failed to submit beacon template command: -108
[614081.348512] ath11k c000000.wifi: failed to update bcn template: -108
[614081.356168] ath11k c000000.wifi: failed to send WMI_VDEV_SET_PARAM_CMDID
[614081.362464] ath11k c000000.wifi: Failed to set dtim period for VDEV 1: -108
[614081.369532] ath11k c000000.wifi: failed to send WMI_VDEV_SET_PARAM_CMDID
[614087.132832] ath11k_warn: 26 callbacks suppressed
[614087.132854] ath11k c000000.wifi: failed to send WMI_PDEV_BSS_CHAN_INFO_REQUEST cmd
[614087.136581] ath11k c000000.wifi: failed to send pdev bss chan info request
[614087.144662] ath11k c000000.wifi: failed to send WMI_PDEV_BSS_CHAN_INFO_REQUEST cmd
[614087.150955] ath11k c000000.wifi: failed to send pdev bss chan info request
[614087.159757] ath11k c000000.wifi: failed to send WMI_PDEV_BSS_CHAN_INFO_REQUEST cmd
[614087.165573] ath11k c000000.wifi: failed to send pdev bss chan info request
[614087.173538] ath11k c000000.wifi: failed to send WMI_PDEV_BSS_CHAN_INFO_REQUEST cmd
[614087.180128] ath11k c000000.wifi: failed to send pdev bss chan info request
[614087.381998] ath11k c000000.wifi: failed to send WMI_PDEV_BSS_CHAN_INFO_REQUEST cmd
[614087.382046] ath11k c000000.wifi: failed to send pdev bss chan info request
[614093.394030] ath11k_warn: 34 callbacks suppressed

I needed to reboot to fix this. No our of memory issues or anything else present, the wired part worked as it should. This never happened before.

I guess the FW crapped itself but didn't crash, weird.
Maybe they fixed it recently?

Well I am using this FW version since it was released, but never seen an issue nor similar messages in the log. Maybe I should try the 2.6 release?

Its hard to suggest anything, it could be in the driver or FW.
Probably some real edge case

Well, the latest 2.6 FW is crahsing the remote proc:

[   13.143143] qcom-q6v5-wcss-pil cd00000.q6v5_wcss: fatal error received: 
[   13.143143] QC Image Version: QC_IMAGE_VERSION_STRING=WLAN.HK.2.6.0.1-00828-QCAHKSWPL_SILICONZ-1
[   13.143143] Image Variant : IMAGE_VARIANT_STRING=8074.wlanfw.eval_v2Q
[   13.143143] 
[   13.143143]     :Excep  :0 Exception detectedparam0 :zero, param1 :zero, param2 :zero.
[   13.143143] Thread ID      : 0x00000060  Thread name    : WLAN RT1  Process ID     : 0
[   13.143143] Register:
[   13.143143] SP : 0x4bfc7688
[   13.143143] FP : 0x4bfc76a0
[   13.143143] PC : 0x4b18ae08
[   13.143143] SSR : 0x00000001
[   13.143143] BADVA : 0x009c9d7e
[   13.143143] LR : 0x4b18ad88
[   13.143143] 
[   13.143143] Stack Dump
[   13.143143] from : 0x4bfc7688
[   13.143143] to   : 0x4bfc7cc0
[   13.143143] 
[   13.189787] remoteproc remoteproc0: crash detected in cd00000.q6v5_wcss: type fatal error
[   13.211971] remoteproc remoteproc0: handling crash #1 in cd00000.q6v5_wcss
[   13.220108] remoteproc remoteproc0: recovering cd00000.q6v5_wcss
[   13.252844] remoteproc remoteproc0: stopped remote processor cd00000.q6v5_wcss

Ahh, so they either changed one of the QMI ID-s for memory type, or they changed the memory modes and it just panics

@psi-c thank you very much for pushing your changes to the repo, I pulled the code and tried to build it last night, but there are some issues and I'm unable to produce a build until I fix them.

@kirdes cheers for the heads-up, you are correct, the NSS nodes are missing.

So I added the DTS file for NSS, ipq8074-ac-nss.dtsi and included it in the ipq8071-ax3600.dtsi profile, but there are some problems with it. The kernel build is failing with an "Unable to parse input tree" error, at line 181. The EIP197 node basically is causing the error. I know my way around the kernel and I've been patching, backporting, adding new drivers etc. and fixing stuff for at least 10 years (the joys of using Gentoo), but DTS and hardware support is a new-ish area for me, I can't say I understand exactly what's been changed or why this is failing. I did some research, tried to define those 3 clocks manually, but still no luck.

I managed to get rid of the error by removing the eip197 node (or sub-node?) entirely from that section, and the DTB was generated. No idea what the implications are, or if we were using that functionality at all. I remember @robimarko was trying to get this working a while ago, but my understanding was that we'd need proprietary firmware etc. and that it was failing to load the crypto nodes, even with the stock firmware blob.

This is the remaining definition of that node, with the eip197 parts removed:

nss_crypto: qcom,nss_crypto {
		compatible = "qcom,nss-crypto";
		#address-cells = <1>;
		#size-cells = <1>;
		qcom,max-contexts = <64>;
		qcom,max-context-size = <32>;
		ranges;
	};

I had to bring in a few more patches, for example qca-ssdk still needs the '-fno-PIC' flag applied to its Makefile, otherwise it's not gonna build with PIE and SSP etc.

EXTRA_CFLAGS='-fno-PIC -fno-stack-protector -I$(STAGING_DIR)/usr/include' \

But my last problem is related to the kmod-keys-trusted module reporting that the asn1_decoder kernel module is missing, and the build was failing. It was already 5-6AM so I bailed, but I want to get a working build tonight.

Package kmod-keys-trusted is missing dependencies for the following libraries:
asn1_encoder.ko

I added it as a dependency, edited the config-5.15 to basically set CONFIG_ASN1=y and CONFIG_ASN1_DECODER=y, but either my build tree didn't clean properly (ran make clean), or there are other places that I still need to patch to include this..

--- a/package/kernel/linux/modules/other.mk
+++ b/package/kernel/linux/modules/other.mk
@@ -1129,7 +1129,7 @@ $(eval $(call KernelPackage,keys-encrypted))
 define KernelPackage/keys-trusted
   SUBMENU:=$(OTHER_MENU)
   TITLE:=TPM trusted keys on kernel keyring
-  DEPENDS:=@KERNEL_KEYS +kmod-crypto-hash +kmod-crypto-hmac +kmod-crypto-sha1 +kmod-tpm
+  DEPENDS:=@KERNEL_KEYS +(LINUX_5_15):kmod-asn1-decoder kmod-crypto-hash +kmod-crypto-hmac +kmod-crypto-sha1 +kmod-tpm
   KCONFIG:=CONFIG_TRUSTED_KEYS
   FILES:= \
          $(LINUX_DIR)/security/keys/trusted.ko@lt5.10 \
-- a/target/linux/ipq807x/config-5.15
+++ b/target/linux/ipq807x/config-5.15
@@ -51,6 +51,8 @@ CONFIG_ARM_PSCI_CPUIDLE=y
 CONFIG_ARM_PSCI_FW=y
 # CONFIG_ARM_QCOM_CPUFREQ_HW is not set
 # CONFIG_ARM_QCOM_CPUFREQ_NVMEM is not set
+CONFIG_ASN1=y
+CONFIG_ASN1_ENCODER=y
 CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
 CONFIG_BINARY_PRINTF=y
 CONFIG_BLK_DEV_LOOP=y

Any help would be appreciated!

Btw I saw that in 5.15.17+ they made quite a few changes (potentially beneficial for us), fixing some ath11k stuff etc.

Oh wait, I just realised I added the ASN1 decoder instead of the encoder in the other.mk file. Haha, it was definitely way too late. I'll actually add both in and let's see if we can get this bad boy building.. :face_with_open_eyes_and_hand_over_mouth:

Can someone offer me a wifi config für ax 2,4 GHz?
I only get 20mbit there, with n mode around 80mbit.

Just checked back and I was looking in the wrong directory for dtsi changes... I'll see what I can make of building with those changes.

You gotta drop the NSS crypto as it requires clocks that don't exist.
I am not sure even if all of the PPE clocks exist for ECM as I only added what was needed and there were fixes for many of the NSS clocks that were not added

1 Like

Culled the entire "nss_crypto: qcom,nss_crypto {" section from
ipq8074-ac-nss.dtsi and it builds and boots and even shows some signs life...

[    6.965284] **********************************************************
[    6.965326] * NSS Data Plane driver
[    6.971317] **********************************************************
[    6.997389] qca-nss 39400000.nss: Direct firmware load for qca-nss1.bin failed with error -2
[    6.997447] qca-nss 39400000.nss: Falling back to sysfs fallback for: qca-nss1.bin
/lib/firmware/qca-nss1.bin 33
[    7.074361] nss_driver - fw of size 292296  bytes copied to load addr: 40800000, nss_id : 1
[    7.075476] ------------[ cut here ]------------
[    7.081531] gcc_ubi1_ahb_clk status stuck at 'off'
[    7.081557] WARNING: CPU: 2 PID: 638 at clk_branch_wait+0x130/0x140
[    7.090995] Modules linked in: qca_nss_drv(+) qca_nss_dp qca_ssdk seqiv jitterentropy_rng drbg michael_mic hmac cmac leds_gpio xhci_plat_hcd xhci_pci xhci_hcd dwc3 dwc3_qcom gpio_button_hotplug
[    7.097184] CPU: 2 PID: 638 Comm: kmodloader Tainted: G        W         5.15.15 #0
[    7.114520] Hardware name: Xiaomi AX3600 (DT)
[    7.121981] pstate: 604000c5 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[    7.126497] pc : clk_branch_wait+0x130/0x140
[    7.133264] lr : clk_branch_wait+0x130/0x140
[    7.137776] sp : ffffffc013133750
[    7.142028] x29: ffffffc013133750 x28: ffffff8003a35000 x27: ffffffc008a23840
[    7.145248] x26: ffffffc0100bc190 x25: ffffffc008a1b100 x24: ffffffc008a13840
[    7.152367] x23: ffffffc0108811a8 x22: 0000000000000001 x21: ffffffc0103d0e50
[    7.159484] x20: 0000000000000000 x19: ffffffc0125f1598 x18: 0000000000000145
[    7.166603] x17: 3030383034203a72 x16: 6464612064616f6c x15: ffffffc0125678e8
[    7.173720] x14: 00000000000003cf x13: 0000000000000145 x12: ffffffc013133478
[    7.180838] x11: fffffffffffe51e0 x10: fffffffffffe51b0 x9 : ffffffc0125bf8e8
[    7.187957] x8 : 0000000000001e78 x7 : ffffffc0125678e8 x6 : 00000000ffffefff
[    7.195075] x5 : ffffffc0125bf8e8 x4 : 00000000ffffefff x3 : 0000000000000001
[    7.202193] x2 : 0000000000000000 x1 : ffffffc012567840 x0 : 0000000000000026
[    7.209311] Call trace:
[    7.216420]  clk_branch_wait+0x130/0x140
[    7.218679]  clk_branch2_enable+0x30/0x40
[    7.222846]  clk_core_enable+0x6c/0xc0
[    7.226752]  clk_enable+0x28/0x54
[    7.230397]  __nss_hal_init_utcm_shared+0x3f0/0xfe0 [qca_nss_drv]
[    7.233788]  __nss_hal_init_utcm_shared+0x490/0xfe0 [qca_nss_drv]
[    7.239864]  nss_hal_probe+0xec/0x65c [qca_nss_drv]
[    7.245938]  nss_if_log_tx_msg+0x40/0x700 [qca_nss_drv]
[    7.250626]  platform_probe+0x68/0xe0
[    7.255831]  really_probe.part.0+0x9c/0x30c
[    7.259652]  __driver_probe_device+0x98/0x144
[    7.263645]  driver_probe_device+0x44/0x11c
[    7.268159]  __driver_attach+0xf8/0x190
[    7.272150]  bus_for_each_dev+0x60/0xa0
[    7.275970]  driver_attach+0x24/0x30
[    7.279790]  bus_add_driver+0x104/0x1ec
[    7.283608]  driver_register+0x78/0x130
[    7.287169]  __platform_driver_register+0x28/0x34
[    7.290989]  init_module+0x198/0x1000 [qca_nss_drv]
[    7.295851]  do_one_initcall+0x50/0x1b0
[    7.300536]  do_init_module+0x54/0x1f0
[    7.304356]  load_module+0x1cec/0x22e0
[    7.308175]  __do_sys_init_module+0x190/0x250
[    7.311908]  __arm64_sys_init_module+0x1c/0x30
[    7.316336]  invoke_syscall.constprop.0+0x5c/0x104
[    7.320676]  do_el0_svc+0x74/0x16c
[    7.325449]  el0_svc+0x18/0x54
[    7.328833]  el0t_64_sync_handler+0xa4/0x130
[    7.331875]  el0t_64_sync+0x184/0x188
[    7.336301] ---[ end trace a0e951c91c3e7ab6 ]---
[    7.339930] ffffff8003a35010: cannot enable clock: nss-ahb-clk
[    7.344565] ffffffc008a1b100: clock configure failed
[    7.350247] qca-nss: probe of 39400000.nss failed with error -14

Unless you've got an instant solution, don't worry about this. I'll see if I can learn a bit more about clocks tomorrow!