Hey everyone, had some time this weekend and thought I'd push a few updates.

Everything should now build with GCC 14.1.

I recently got a hold of 2 MX5300's (3-radio mesh setup) so included a bunch of fixes for NSS mesh users. Still no luck in getting any NSS firmware above 11.4 to work with mesh unfortunately...

NSS Packages:

date commit desc
2024-06-02 f9ca66a qca-nss: mark nss-cfi and nss-crypto as broken
2024-06-02 a4d3606 qca-nss-drv: allow mac80211 to disable signal redirection
2024-06-02 5700922 qca-nss-drv: add NAPI threading
2024-06-02 f5844d3 qca-nss-ecm: Enable bridge vlan filtering

Main Repo:

date commit desc
2024-06-02 59b1352658 qualcommax: NSS: ECM: Fixes for Bridge VLAN Filtering
2024-06-02 a4b7de0c7e qualcommax: NSS: Add DTS entries for nss-macsec
2024-06-02 0918a790cd qualcommax: NSS: Add support for sxk80, mx8500
2024-06-02 5cf73fd324 ath11k_nss: mac80211 Use C99 flexible arrays instead of zero-length arrays
2024-06-02 7e507af684 ath11k_nss: Add lock when accessing idr_pool of tx_ring
2024-06-02 2ae8f8cff1 ath11k_nss: correctly free skb using ieee80211_free_txskb()
2024-06-02 2c62943716 ath11k_nss: fix incorrect tx/rx stats WDS
2024-06-02 3dcbf2daad ath11k_nss: change warning levels
2024-06-02 fd9994c3f2 ath11k_nss: mac80211: remove STA txq pending airtime underflow warning
2024-06-02 a063101a04 ath11k_nss: mac80211 fix pending airtime
2024-06-01 a9d36e7181 iproute2: Fixup NSS patches for GCC 14.x
2024-06-01 d91ab1ad75 qualcommax: NSS: Set required NSS packages and options

Sidenote:

Found something interesting. The NSS firmware hosted on Telecom Infra Project wlan-ap repo shows firmware:

NSS.FW.12.1.r2-003-HK.R

Which is a part of release NHSS.QSDK.12.0.5 and newer than what the README states 11.3.0.5.R1, and newer than what's in quic repo.

The upstream Qualcomm repo is:

NSS.FW.12.1-022-HK.R

Which is a part of release NHSS.QSDK.12.0.5.r4. The commits for qca-nss-drv aren't that many. Mostly build restructuring, but the headers are the same, so doubt there's any significant change between them functionality wise.

However, I figured since wlan-ap repo also explicitly enables the meshing feature via qca-nss-drv-meshmgr that it may have the feature enabled. The firmware loads... but sadly mesh feature still broken.

It's unfortunate because between NHSS.QSDK.11.4.0.5.r5 and NHSS.QSDK.12.0.5 there were quite a few additions made in regards to wifi meshing/wds. So I know the feature is there... Just not sure how to go about getting the damn thing working. Guess it's back to 11.4 for now :confused:

14 Likes

@qosmio thanks for the update.
github actions build based on your repo is failing.

edit:
automated build working now. wierd...gremins crawling under github actions

Works with gcc 13: https://github.com/JuliusBairaktaris/Qualcommax_NSS_Builder/actions/runs/9345216255

And GCC 14: https://github.com/JuliusBairaktaris/Qualcommax_NSS_Builder/actions/runs/9345383450

1 Like

Built with GCC 14 successfully for me.

I tried digging some stuff about nss firmware.
In aht11k nss.c:

	case NSS_WIFILI_SEND_MESH_CAPABILITY_INFO:

		complete(&ab->nss.complete);

		if (response != NSS_CMN_RESPONSE_EMSG)

			ab->nss.mesh_nss_offload_enabled = true;

		ath11k_warn(ab, "nss wifili mesh capability response %d\n",

			   ab->nss.mesh_nss_offload_enabled);

		break;

I get this with nss 12.0 firmware:

[   18.609304] ath11k c000000.wifi: nss wifili mesh capability response 1
[   18.609348] ath11k c000000.wifi: nss wifili mesh capability response 1
[   19.456893] ath11k_pci 0000:01:00.0: nss wifili mesh capability response 1

This shows that nss firmwrare has mesh capability.
It seems that the nss firmware cannot register the mesh dynamic interface. I guess quic guys broke it.

1 Like

So, I am struggling a bit. I know that there is this guide https://github.com/AgustinLorenzo/openwrt/issues/9 by @agustinlorenzo where he explains how to upgrade from normal builds with kernel 5.5 to 6.1 in order for the custom builds with nss to be compatible.

But are there are short guides on how to actually install the latest builds? Like the ones from JuliusBairaktaris and such?

How would one go from the normal openwrt build to a custom build?

I did not have gcc-14 installed on my system and i got this error building toolchain/gdb

make[7]: Entering directory '/home/asvio/01-NBG7815/nbg7815-qosmio/build_dir/toolchain-aarch64_cortex-a53_gcc-13.3.0_musl/gdb-14.1/libbacktrace'
/usr/bin/env bash ./libtool  --tag=CC   --mode=compile /home/asvio/01-NBG7815/nbg7815-qosmio/staging_dir/host/bin/gcc -DHAVE_CONFIG_H -I.  -I ./../include -I ./../libgcc -I ../libgcc -I/home/asvio/01-NBG7815/nbg7815-qosmio/staging_dir/host/include  -funwind-tables -frandom-seed=atomic.lo -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wmissing-format-attribute -Wcast-qual   -O2 -I/home/asvio/01-NBG7815/nbg7815-qosmio/staging_dir/host/include      -c -o atomic.lo atomic.c
bash: ./libtool: No such file or directory

I installed gcc-14 and the problem disappeared
i did not modify config to build with gcc-14

1 Like

@hnyman

I've been trying to find a similar memory range as well, but have not been successful. It's a key feature I've been missing since IPQ806x days...

So Qualcomm hasn't worked on qca-nss-crypto/qca-nss-cfi in over 3 years. Safe to say development is halted upstream. It was never really functional, even in QSDK. I've since marked these packages as "@BROKEN" in the Makefile so they only show up if you specifically enable broken packages option. I'm leaving the packages in the repo in the hopes maybe some brave and talented soul can take a stab it

So it doesn't seem to be an issue with the ath11k patches. The issue is now the NSS firmware isn't properly initializing the interface. It could be a number of things honestly...

Have you tried:

  1. Testing with a lower NSS FW. Select @CONFIG_NSS_FIRMWARE_VERSION_11_4. Or manually updating to other FWs from QUIC repo (11.5 for example)
  2. Testing with different wifi fw (WLAN.HK.2.7.0.1-01701-QCAHKSWPL_SILICONZ-1)

Could be another case of "broken upstream", like my issue with mesh feature on anything above 11.4.

I recently committed a patch that might help. Can you test the following to see if it fixes your issue?
qualcommax: NSS: ECM: Fixes for Bridge VLAN Filtering

Yup! It definitely is there. My initial guess was an improper interface type in nss_dynamic_interface.h. Mesh was introduced in NHSS.QSDK.11.4, but they never updated nss_dynamic_interface_stats.c to also reflect that. Otherwise /sys/kernel/debug/qca-nss-drv/stats/dynamic_if/type_names just showed NULL entries for it.

diff --git a/exports/nss_dynamic_interface.h b/exports/nss_dynamic_interface.h
index 198bc91..7595af1 100644
--- a/exports/nss_dynamic_interface.h
+++ b/exports/nss_dynamic_interface.h
@@ -40,10 +40,10 @@
 enum nss_dynamic_interface_type {
        NSS_DYNAMIC_INTERFACE_TYPE_NONE,
        NSS_DYNAMIC_INTERFACE_TYPE_GRE_REDIR,
-       NSS_DYNAMIC_INTERFACE_TYPE_CAPWAP,
+       NSS_DYNAMIC_INTERFACE_TYPE_RESERVED_5,
        NSS_DYNAMIC_INTERFACE_TYPE_TUNIPIP6_INNER,
        NSS_DYNAMIC_INTERFACE_TYPE_TUNIPIP6_OUTER,
-       NSS_DYNAMIC_INTERFACE_TYPE_WIFI,
+       NSS_DYNAMIC_INTERFACE_TYPE_RESERVED,
        NSS_DYNAMIC_INTERFACE_TYPE_VAP,
        NSS_DYNAMIC_INTERFACE_TYPE_RESERVED_0,
        NSS_DYNAMIC_INTERFACE_TYPE_PPPOE,
@@ -105,6 +105,11 @@ enum nss_dynamic_interface_type {
        NSS_DYNAMIC_INTERFACE_TYPE_TLS_OUTER,
        NSS_DYNAMIC_INTERFACE_TYPE_MIRROR,
        NSS_DYNAMIC_INTERFACE_TYPE_WIFI_EXT_VDEV_WDS,
+       NSS_DYNAMIC_INTERFACE_TYPE_CAPWAP_HOST_INNER,
+       NSS_DYNAMIC_INTERFACE_TYPE_CAPWAP_OUTER,
+       NSS_DYNAMIC_INTERFACE_TYPE_WIFI_EXT_VDEV_VLAN,
+       NSS_DYNAMIC_INTERFACE_TYPE_WIFI_MESH_INNER,
+       NSS_DYNAMIC_INTERFACE_TYPE_WIFI_MESH_OUTER,
        NSS_DYNAMIC_INTERFACE_TYPE_MAX
 };

I patch it in my repo, but it's only a visual representation obviously... Still, feels like maybe the respective bits are off.

I took a blind guess and tried shifting it around in place of

NSS_DYNAMIC_INTERFACE_TYPE_CAPWAP_HOST_INNER`->`NSS_DYNAMIC_INTERFACE_TYPE_WIFI_MESH_INNER` 

and

NSS_DYNAMIC_INTERFACE_TYPE_CAPWAP_HOST_OUTER`->`NSS_DYNAMIC_INTERFACE_TYPE_WIFI_MESH_OUTER` 

But wifi meshmgr just crashes. My only other guess is maybe shifting to NSS_DYNAMIC_INTERFACE_TYPE_RESERVED and NSS_DYNAMIC_INTERFACE_TYPE_RESERVED_5. But seriously doubt it's the issue.

2 Likes

Hi, qosmio, thanks for your continuously effort! I know it may be a little headache to see some description, but please let me to be more specific, so maybe you could point out the right way for IPQ6018 Guys!

  1. I have tried WLAN.HK.2.7.0.1-01701-QCAHKSWPL_SILICONZ-1, but still NSS SOC Initialization.
  2. I haven't tried lower NSS FW, and will report back later!
  3. After another long time research, I found it may caused by my inappropriate startup of qca-nss-drv, since dev.nss.rps is always 0 and I cannot set it to 1 by sysctl -w , also there is no file named /sys/kernel/debug/qca-nss-drv/stats/cpu_load_ubi in my device. However, qca-nss-ecm seems to startup normally, I can see :
dev.nss.general.redirect = 1
dev.nss.ipv4cfg.ipv4_accel_mode = 1
dev.nss.ipv6cfg.ipv6_accel_mode = 1
  1. I think it may relate to DTC files. I can just set one core (nss0) in dts file, while add nss1 will feed me with syntax error.
    I know some of my question may seem silly, so thanks for your patience to read this

IPQ60xx only has 1 NSS core, and no dedicated crypto core like in IPQ807x so you can't enable what doesn't exist.

Do you mean dev.nss.rps.enable? It might actually be enabled but just not showing correctly in sysctl. The code for nss_rps also can't set or read pri_map, but shouldn't affect offloading. You can try editing the qca-nss-drv init script and enabling dynamic debugging to see if it's actually failing:

echo 'file *rps* +p' > /sys/kernel/debug/dynamic_debug/control

You'll need to enable the dynamic debug option in your build.

CONFIG_KERNEL_DYNAMIC_DEBUG=y

I also looked at the firmware for GLiNet AXT1800 and looks like they're also using firmware 11.4.0.5:

?Version: NSS.CP.11.4.0.5-5-R

So that may in fact be the required version to get wifi offloading working.

I also see that GLiNet is not using the proprietary qca-wifi modules and plain old ath11k. I looked on Github, and the only mention I see of it is from Telecominfraproject's wlan-ap repo with no mention of any patches they added for IPQ60xx... I thought it was supposed to be fully open? Strange.

There is an openwrt PR for AXT1800 at https://github.com/openwrt/openwrt/pull/14950

I built and tested this and it works for me, but I am not
expert enough at openwrt development to attempt to merge your nss code

1 Like

Thanks for your quick reply. Due to some special reason (GLiNet said someone sell the firmware using the opensource code), GLiNet has closed their open source repository for AXT1800 and no further update for new linux kernel. Without official support, the community strived to keep updated for AX1800/AXT1800.

  1. I will try what you have mentioned and report back.

    It looks like echo 'file *rps* +p' > /sys/kernel/debug/dynamic_debug/control output nothing. I search any file contains rps and find rps_cpus and rps_flow_cnt and they are all 0.

  2. Here is some opensource repository you may want to check when you get some free time:

At last, thanks for your kind and patience for IPQ60XX user :grin:

1 Like

Here is the PR using openwrt 23.05 and latest linux kernel. It is waiting to be merged into official release after a few more developers approve it.

1 Like

In fact, I tried doing some hacking things, and I found that dynamic interfaces can be easily registered. For example, I was able to register NSS_DYNAMIC_INTERFACE_TYPE_PPPOE on the IGS module by simply modifying the registered dynamic interface NSS_DYNAMIC_INTERFACE_TYPE_IGS to others. It was a bit crazy, but I was able to successfully register it on the IGS module. Additionally, I was able to successfully register for Wi-Fi:

NSS_DYNAMIC_INTERFACE_TYPE_WIFI_EXT_VDEV_VLAN
NSS_DYNAMIC_INTERFACE_TYPE_WIFI_EXT_VDEV_WDS

But regarding mesh:

NSS_DYNAMIC_INTERFACE_TYPE_WIFI_MESH_INNER
NSS_DYNAMIC_INTERFACE_TYPE_WIFI_MESH_OUTER

None of them succeeded.
I want to change the Dynamic Interface Type number to see if I can successfully register the dynamic interface, but I can't find it, and I have a suspicion that this is hardcoded in nss firmware

1 Like

:wink: I totally went the same mad hacker route. Flipped around the entire struct like crazy, but majority of them still worked. I'm they're similar to the virtual interfaces enough that it just accepts packets.

But yea, mesh is no go. I briefly tried using a WDS setup in my build and speeds were awful. I'd also get dropouts and frequent kernel panics.

Mesh works when it wants to. It goes crazy with the phantom proxy path creation. That it would flood up my UniFi switch of bogus MACS.

I think I have it in a pretty decent place now. All my devices roaming, and have an average transfer speed ~ 1G throughout the house.

That with me in the basement meshing through node 1 to node 2. Barely any latency.

2 Likes

On the latest build for my ipq6000/Linksys-MR7350 NSS works fine. Zero CPU usage while speed test on a smartphone. I have a 300Mbit WAN.

Summary
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x51af8014]
[    0.000000] Linux version 6.6.30 (vladdrako@Vladdrako-PC) (aarch64-openwrt-linux-musl-gcc (OpenWrt GCC 14.1.0 r28188-2122aea90e) 14.1.0, GNU ld (GNU Binutils) 2.42) #0 SMP PREEMPT Mon Jun  3 07:30:43 2024
[    0.000000] Machine model: Linksys MR7350
[    0.000000] OF: reserved mem: 0x0000000000060000..0x0000000000065fff (24 KiB) nomap non-reusable memory@60000
[    0.000000] OF: reserved mem: 0x0000000040000000..0x0000000040ffffff (16384 KiB) nomap non-reusable nss@40000000
[    0.000000] OF: reserved mem: 0x000000004a100000..0x000000004a4fffff (4096 KiB) nomap non-reusable bootloader@4a100000
[    0.000000] OF: reserved mem: 0x000000004a600000..0x000000004a9fffff (4096 KiB) nomap non-reusable tzapp@4a600000
[    0.000000] OF: reserved mem: 0x000000004aa00000..0x000000004aafffff (1024 KiB) nomap non-reusable smem@4aa00000
[    0.000000] OF: reserved mem: 0x000000004ab00000..0x000000004e1fffff (56320 KiB) nomap non-reusable wcnss@4ab00000
[    0.000000] OF: reserved mem: 0x0000000050000000..0x00000000500fffff (1024 KiB) nomap non-reusable q6_etr_dump@1
[    0.000000] OF: reserved mem: 0x0000000050100000..0x00000000501fffff (1024 KiB) nomap non-reusable m3_dump@50100000
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000040000000-0x000000005fffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000040000000-0x0000000040ffffff]
[    0.000000]   node   0: [mem 0x0000000041000000-0x000000004a0fffff]
[    0.000000]   node   0: [mem 0x000000004a100000-0x000000004a4fffff]
[    0.000000]   node   0: [mem 0x000000004a500000-0x000000004a5fffff]
[    0.000000]   node   0: [mem 0x000000004a600000-0x000000004e1fffff]
[    0.000000]   node   0: [mem 0x000000004e200000-0x000000004fffffff]
[    0.000000]   node   0: [mem 0x0000000050000000-0x00000000501fffff]
[    0.000000]   node   0: [mem 0x0000000050200000-0x000000005fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000005fffffff]
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.0 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.0
[    0.000000] percpu: Embedded 19 pages/cpu s39608 r8192 d30024 u77824
[    0.000000] pcpu-alloc: s39608 r8192 d30024 u77824 alloc=19*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: Spectre-v4
[    0.000000] CPU features: kernel page table isolation disabled by kernel configuration
[    0.000000] alternatives: applying boot alternatives
[    0.000000] Kernel command line: init=/sbin/init rootfstype=squashfs ubi.mtd=rootfs root=mtd:squashfs rootwait ubi.block=0,rootfs root=/dev/ubiblock0_0 mitigations=off noirqdebug cgroup_disable=memory
[    0.000000] IRQ lockup detection disabled
[    0.000000] cgroup: Disabling memory control group subsystem
[    0.000000] Dentry cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.000000] Inode-cache hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 129024
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: SWIOTLB bounce buffer size adjusted to 0MB
[    0.000000] software IO TLB: area num 4.
[    0.000000] software IO TLB: SWIOTLB bounce buffer size roundup to 1MB
[    0.000000] software IO TLB: mapped [mem 0x000000005f4c0000-0x000000005f5c0000] (1MB)
[    0.000000] Memory: 412236K/524288K available (11456K kernel code, 1058K rwdata, 1732K rodata, 1920K init, 298K bss, 112052K reserved, 0K cma-reserved)
[    0.000000] le9 Unofficial (le9uo) working set protection 1.6 by Masahito Suzuki (forked from hakavlad's original le9 patch)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 100 jiffies.
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] Root IRQ handler: 0xffffffc080010000
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] arch_timer: cp15 and mmio timer(s) running at 24.00MHz (virt/virt).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000001] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.000111] Console: colour dummy device 80x25
[    0.000124] printk: console [tty0] enabled
[    0.000857] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=24000)
[    0.000890] pid_max: default: 32768 minimum: 301
[    0.001264] Mount-cache hash table entries: 1024 (order: 1, 8192 bytes, linear)
[    0.001296] Mountpoint-cache hash table entries: 1024 (order: 1, 8192 bytes, linear)
[    0.002262] spectre-v4 mitigation disabled by command-line option
[    0.003235] RCU Tasks: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1.
[    0.003350] RCU Tasks Trace: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1.
[    0.003563] rcu: Hierarchical SRCU implementation.
[    0.003581] rcu:     Max phase no-delay instances is 400.
[    0.003810] dyndbg: Ignore empty _ddebug table in a CONFIG_DYNAMIC_DEBUG_CORE build
[    0.004298] smp: Bringing up secondary CPUs ...
[    0.004930] Detected VIPT I-cache on CPU1
[    0.005041] CPU1: Booted secondary processor 0x0000000001 [0x51af8014]
[    0.005735] Detected VIPT I-cache on CPU2
[    0.005816] CPU2: Booted secondary processor 0x0000000002 [0x51af8014]
[    0.006454] Detected VIPT I-cache on CPU3
[    0.006532] CPU3: Booted secondary processor 0x0000000003 [0x51af8014]
[    0.006607] smp: Brought up 1 node, 4 CPUs
[    0.006692] SMP: Total of 4 processors activated.
[    0.006709] CPU features: detected: 32-bit EL0 Support
[    0.006725] CPU features: detected: CRC32 instructions
[    0.006811] CPU: All CPU(s) started at EL1
[    0.006827] alternatives: applying system-wide alternatives
[    0.021982] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns
[    0.022045] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.022315] pinctrl core: initialized pinctrl subsystem
[    0.023279] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.023957] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
[    0.024014] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.024069] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.024524] thermal_sys: Registered thermal governor 'step_wise'
[    0.024532] thermal_sys: Registered thermal governor 'user_space'
[    0.024631] cpuidle: using governor menu
[    0.024940] ASID allocator initialised with 65536 entries
[    0.082248] qcom,cpr4-apss-regulator b018000.cpr4-ctrl: CPR valid fuse count: 4
[    0.086246] Modules: 28608 pages in range for non-PLT usage
[    0.086260] Modules: 520128 pages in range for PLT usage
[    0.087406] cryptd: max_cpu_qlen set to 1000
[    0.089467] SCSI subsystem initialized
[    0.089706] usbcore: registered new interface driver usbfs
[    0.089760] usbcore: registered new interface driver hub
[    0.089838] usbcore: registered new device driver usb
[    0.090394] qcom_scm: convention: smc arm 64
[    0.091737] s2: Bringing 0uV into 725000-725000uV
[    0.092847] l2: Bringing 0uV into 1800000-1800000uV
[    0.093030] qcom_rpm_smd_regulator remoteproc:glink-edge:rpm-requests:regulators: Supply for l2 (l2) resolved to itself
[    0.093087] clocksource: Switched to clocksource arch_sys_counter
[    0.098173] NET: Registered PF_INET protocol family
[    0.098317] IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.099220] tcp_listen_portaddr_hash hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.099313] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.099349] TCP established hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.099417] TCP bind hash table entries: 4096 (order: 6, 262144 bytes, linear)
[    0.099648] TCP: Hash tables configured (established 4096 bind 4096)
[    0.099768] UDP hash table entries: 256 (order: 2, 24576 bytes, linear)
[    0.099818] UDP-Lite hash table entries: 256 (order: 2, 24576 bytes, linear)
[    0.100037] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.102265] workingset: timestamp_bits=46 max_order=17 bucket_order=0
[    0.102608] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.102867] jffs2: version 2.2 (NAND) (SUMMARY) (ZLIB) (CMODE_SIZE) (c) 2001-2006 Red Hat, Inc.
[    0.139273] Key type asymmetric registered
[    0.139367] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[    0.139529] io scheduler mq-deadline registered
[    0.139553] io scheduler kyber registered
[    0.139634] io scheduler bfq registered
[    0.141699] qcom-qmp-usb-phy 78000.ssphy: supply vdda-phy not found, using dummy regulator
[    0.141895] qcom-qmp-usb-phy 78000.ssphy: supply vdda-pll not found, using dummy regulator
[    0.143777] qcom-qusb2-phy 79000.qusb: supply vdd not found, using dummy regulator
[    0.143953] qcom-qusb2-phy 79000.qusb: supply vdda-pll not found, using dummy regulator
[    0.144034] qcom-qusb2-phy 79000.qusb: supply vdda-phy-dpdm not found, using dummy regulator
[    0.144297] qcom-qusb2-phy 79000.qusb: Registered Qcom-QUSB2 phy
[    0.155383] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    0.157143] msm_serial 78b0000.serial: msm_serial: detected port #1
[    0.157216] msm_serial 78b0000.serial: uartclk = 24000000
[    0.157624] 78b0000.serial: ttyMSM1 at MMIO 0x78b0000 (irq = 22, base_baud = 1500000) is a MSM
[    0.158313] msm_serial 78b1000.serial: msm_serial: detected port #0
[    0.158382] msm_serial 78b1000.serial: uartclk = 1843200
[    0.158796] 78b1000.serial: ttyMSM0 at MMIO 0x78b1000 (irq = 23, base_baud = 115200) is a MSM
[    0.158860] msm_serial: console setup on port #0
[    0.158952] printk: console [ttyMSM0] enabled
[    1.074265] msm_serial: driver initialized
[    1.083775] loop: module loaded
[    1.084330] zram: Added device: zram0
[    1.087245] nand: device found, Manufacturer ID: 0xc2, Chip ID: 0xaa
[    1.089590] nand: Macronix MX30UF2G18AC
[    1.095996] nand: 256 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[    1.099587] qcom-nandc 79b0000.nand-controller: Opcode not supported: 238
[    1.107198] Block protection check failed
[    1.136436] i2c_dev: i2c /dev entries driver
[    1.143480] sdhci: Secure Digital Host Controller Interface driver
[    1.143551] sdhci: Copyright(c) Pierre Ossman
[    1.148617] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.156429] remoteproc remoteproc0: releasing cd00000.remoteproc
[    1.161728] NET: Registered PF_INET6 protocol family
[    1.165744] Segment Routing with IPv6
[    1.169723] In-situ OAM (IOAM) with IPv6
[    1.173328] NET: Registered PF_PACKET protocol family
[    1.177288] Bridge firewalling registered
[    1.182323] l2tp_core: L2TP core driver, V2.0
[    1.186182] l2tp_netlink: L2TP netlink interface
[    1.190549] 8021q: 802.1Q VLAN Support v1.8
[    1.212584] zswap: loaded using pool zstd/zsmalloc
[    1.241493] lrng_drng_mgr: Initial DRNG initialized triggering first seeding
[    1.242929] qcom,cpr4-apss-regulator b018000.cpr4-ctrl: CPR valid fuse count: 4
[    1.247926] cpr4_ipq807x_apss_read_fuse_data: apc_corner: speed bin = 0
[    1.254683] cpr4_ipq807x_apss_read_fuse_data: apc_corner: CPR fusing revision = 2
[    1.261276] cpr4_ipq807x_apss_read_fuse_data: apc_corner: CPR misc fuse value = 0
[    1.268935] cpr4_ipq807x_apss_read_fuse_data: apc_corner: Voltage boost fuse config = 0 boost = disable
[    1.276463] cpr3_mem_acc_init: apc: not using memory accelerator regulator
[    1.285578] cpr4_ipq807x_apss_calculate_open_loop_voltages: apc_corner: fused      SVS: open-loop= 675000 uV
[    1.292532] cpr4_ipq807x_apss_calculate_open_loop_voltages: apc_corner: fused      NOM: open-loop= 787500 uV
[    1.302513] cpr4_ipq807x_apss_calculate_open_loop_voltages: apc_corner: fused    TURBO: open-loop= 850000 uV
[    1.312322] cpr4_ipq807x_apss_calculate_open_loop_voltages: apc_corner: fused   STURBO: open-loop= 900000 uV
[    1.322158] cpr4_ipq807x_apss_calculate_target_quotients: apc_corner: fused      SVS: quot[ 7]= 597, quot_offset[ 7]=   0
[    1.331944] cpr4_ipq807x_apss_calculate_target_quotients: apc_corner: fused      NOM: quot[ 7]= 800, quot_offset[ 7]= 200
[    1.342794] cpr4_ipq807x_apss_calculate_target_quotients: apc_corner: fused    TURBO: quot[ 7]= 905, quot_offset[ 7]= 105
[    1.353742] cpr4_ipq807x_apss_calculate_target_quotients: apc_corner: fused   STURBO: quot[ 7]= 980, quot_offset[ 7]=  75
[    1.364982] cpr3_regulator_init_ctrl: apc: Default CPR mode = closed-loop
[    1.367810] nand: device found, Manufacturer ID: 0xc2, Chip ID: 0xaa
[    1.382366] nand: Macronix MX30UF2G18AC
[    1.388779] nand: 256 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[    1.392371] qcom-nandc 79b0000.nand-controller: Opcode not supported: 238
[    1.399988] Block protection check failed
[    1.407193] 20 qcomsmem partitions found on MTD device qcom_nand.0
[    1.410856] Creating 20 MTD partitions on "qcom_nand.0":
[    1.416914] 0x000000000000-0x000000180000 : "0:sbl1"
[    1.424230] 0x000000180000-0x000000280000 : "0:mibib"
[    1.427743] lrng_es_mgr: LRNG initial entropy level 36 bits of entropy
[    1.433253] 0x000000280000-0x000000600000 : "0:qsee"
[    1.442159] 0x000000600000-0x000000680000 : "0:devcfg"
[    1.444747] 0x000000680000-0x000000700000 : "0:rpm"
[    1.449696] 0x000000700000-0x000000780000 : "0:cdt"
[    1.454567] 0x000000780000-0x000000800000 : "0:appsblenv"
[    1.459407] 0x000000800000-0x000000980000 : "0:appsbl"
[    1.465673] 0x000000980000-0x000000a00000 : "0:art"
[    1.469503] lrng_es_mgr: LRNG minimally seeded with 128 bits of entropy
[    1.469958] 0x000000a00000-0x000001300000 : "0:wififw"
[    1.488000] 0x000001300000-0x000001380000 : "0:ethphyfw"
[    1.489008] 0x000001380000-0x000001400000 : "u_env"
[    1.493376] 0x000001400000-0x000001440000 : "s_env"
[    1.497745] 0x000001440000-0x000001480000 : "devinfo"
[    1.502609] 0x000001480000-0x000001c80000 : "kernel"
[    1.511612] lrng_es_mgr: LRNG fully operational
[    1.512133] lrng_es_mgr: LRNG fully seeded with 256 bits of entropy
[    1.518629] 0x000001c80000-0x000006680000 : "rootfs"
[    1.580351] mtd: setting mtd15 (rootfs) as root device
[    1.580664] mtdsplit: no squashfs found in "rootfs"
[    1.584470] 0x000006680000-0x000006e80000 : "alt_kernel"
[    1.595969] 0x000006e80000-0x00000b880000 : "alt_rootfs"
[    1.653717] 0x00000b880000-0x00000ba80000 : "sysdiag"
[    1.655876] 0x00000ba80000-0x00000fe80000 : "syscfg"
[    1.720907] core: _opp_supported_by_regulators: OPP minuV: 7 maxuV: 7, not supported by regulator
[    1.720983] cpu cpu0: _opp_add: OPP not supported by regulators (1608000000)
[    1.729164] cpufreq: cpufreq_online: CPU0: Running at unlisted initial frequency: 799999 KHz, changing to: 864000 KHz
[    1.738475] remoteproc remoteproc0: cd00000.remoteproc is available
[    1.746992] ubi0: attaching mtd15
[    2.071232] ubi0: scanning is finished
[    2.076760] ubi0: attached mtd15 (name "rootfs", size 74 MiB)
[    2.076814] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[    2.081523] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[    2.088276] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[    2.095132] ubi0: good PEBs: 592, bad PEBs: 0, corrupted PEBs: 0
[    2.101901] ubi0: user volume: 2, internal volumes: 1, max. volumes count: 128
[    2.108155] ubi0: max/mean erase counter: 2/0, WL threshold: 4096, image sequence number: 1717399843
[    2.115191] ubi0: available PEBs: 0, total reserved PEBs: 592, PEBs reserved for bad PEB handling: 40
[    2.124490] ubi0: background thread "ubi_bgt0d" started, PID 627
[    2.125246] block ubiblock0_0: created from ubi0:0(rootfs)
[    2.139818] clk: Disabling unused clocks
[    2.375664] init: Console is alive
[    2.375828] init: - watchdog -
[    3.436115] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    3.450901] Key type encrypted registered
[    3.460006] device-mapper: ioctl: 4.48.0-ioctl (2023-03-01) initialised: dm-devel@redhat.com
[    3.495654] JFS: nTxBlock = 3235, nTxLock = 25884
[    3.535627] SGI XFS with security attributes, no debug enabled
[    3.538040] gpio_button_hotplug: loading out-of-tree module taints kernel.
[    3.588376] ssdk_dt_parse_interrupt[934]:INFO:intr-gpio does not exist
[    3.912494] __adpt_hppe_uniphy_psgmii_mode_set[1194]:INFO:uniphy 0 psgmii channel selection
[    4.022210] regi_init[2525]:INFO:Initializing CPPE Done!!
[    4.022309] regi_init[2574]:INFO:qca-ssdk module init succeeded!
[    4.029036] EDMA ver 1 hw init
[    4.032943] EDMA HW Reset completed succesfully
[    4.035565] Num rings - TxDesc:1 (23-23) TxCmpl:1 (23-23)
[    4.039964] RxDesc:1 (15-15) RxFill:1 (7-7)
[    4.045908] dp1: ppe offload disabled: 0 for macid 1
[    4.049510] dp1: Switch attached to macid 1 status: 0
[    4.219065] GMAC2(ffffff80064369c0) Invalid MAC@ - using 22:10:d6:04:9e:e9
[    4.219154] dp2: ppe offload disabled: 0 for macid 2
[    4.224887] dp2: Switch attached to macid 2 status: 0
[    4.284947] GMAC3(ffffff8005da99c0) Invalid MAC@ - using 9a:7e:8a:de:d4:38
[    4.285007] dp3: ppe offload disabled: 0 for macid 3
[    4.290753] dp3: Switch attached to macid 3 status: 0
[    4.350669] GMAC4(ffffff8005dae9c0) Invalid MAC@ - using d6:42:df:64:14:72
[    4.350723] dp4: ppe offload disabled: 0 for macid 4
[    4.356466] dp4: Switch attached to macid 4 status: 0
[    4.416016] GMAC5(ffffff8005ef39c0) Invalid MAC@ - using ae:ab:50:d8:6e:b1
[    4.416099] dp5: ppe offload disabled: 0 for macid 5
[    4.421843] dp5: Switch attached to macid 5 status: 0
[    4.481626] **********************************************************
[    4.481683] * NSS Data Plane driver
[    4.487072] **********************************************************
[    4.509099] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[    4.509165] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 1
[    4.514475] xhci-hcd xhci-hcd.1.auto: hcc params 0x0220fe65 hci version 0x110 quirks 0x0000008000000010
[    4.521109] xhci-hcd xhci-hcd.1.auto: irq 39, io mem 0x08a00000
[    4.530563] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[    4.536332] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 2
[    4.541888] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed
[    4.549797] hub 1-0:1.0: USB hub found
[    4.556052] hub 1-0:1.0: 1 port detected
[    4.580273] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    4.580805] hub 2-0:1.0: USB hub found
[    4.587468] hub 2-0:1.0: 1 port detected
[    4.624843] usbcore: registered new interface driver usb-storage
[    4.626476] usbcore: registered new interface driver uas
[    4.630386] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    4.646201] init: - preinit -
[    7.490531] mount_root: loading kmods from internal overlay
[    7.515582] kmodloader: loading kernel modules from //etc/modules-boot.d/*
[    7.518446] kmodloader: done loading kernel modules from //etc/modules-boot.d/*
[    7.600111] block: attempting to load /tmp/overlay/upper/etc/config/fstab
[    7.600306] block: unable to load configuration (fstab: Entry not found)
[    7.606050] block: attempting to load /tmp/overlay/etc/config/fstab
[    7.612801] block: unable to load configuration (fstab: Entry not found)
[    7.618761] block: attempting to load /etc/config/fstab
[    7.626218] block: unable to load configuration (fstab: Entry not found)
[    7.630640] block: no usable configuration
[    7.639707] UBIFS (ubi0:1): Mounting in unauthenticated mode
[    7.641508] UBIFS (ubi0:1): background thread "ubifs_bgt0_1" started, PID 948
[    7.671182] UBIFS (ubi0:1): recovery needed
[    7.764468] UBIFS (ubi0:1): recovery completed
[    7.764608] UBIFS (ubi0:1): UBIFS: mounted UBI device 0, volume 1, name "rootfs_data"
[    7.767841] UBIFS (ubi0:1): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
[    7.775747] UBIFS (ubi0:1): FS size: 22093824 bytes (21 MiB, 174 LEBs), max 184 LEBs, journal size 1142784 bytes (1 MiB, 9 LEBs)
[    7.785633] UBIFS (ubi0:1): reserved for root: 1043545 bytes (1019 KiB)
[    7.804553] block: attempting to load /tmp/ubifs_cfg/upper/etc/config/fstab
[    7.819625] block: extroot: not configured
[    7.821957] UBIFS (ubi0:1): un-mount UBI device 0
[    7.826008] UBIFS (ubi0:1): background thread "ubifs_bgt0_1" stops
[    7.834096] UBIFS (ubi0:1): Mounting in unauthenticated mode
[    7.836938] UBIFS (ubi0:1): background thread "ubifs_bgt0_1" started, PID 951
[    7.897442] UBIFS (ubi0:1): UBIFS: mounted UBI device 0, volume 1, name "rootfs_data"
[    7.897513] UBIFS (ubi0:1): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
[    7.904306] UBIFS (ubi0:1): FS size: 22093824 bytes (21 MiB, 174 LEBs), max 184 LEBs, journal size 1142784 bytes (1 MiB, 9 LEBs)
[    7.914185] UBIFS (ubi0:1): reserved for root: 1043545 bytes (1019 KiB)
[    7.961504] block: attempting to load /tmp/overlay/upper/etc/config/fstab
[    7.965951] block: extroot: not configured
[    7.969009] block: attempting to load /tmp/ubifs_cfg/upper/etc/config/fstab
[    7.971611] block: extroot: not configured
[    7.980365] mount_root: switching to ubifs overlay
[    7.986729] overlayfs: null uuid detected in lower fs '/', falling back to xino=off,index=off,nfs_export=off.
[    8.020834] procd: - early -
[    8.025225] procd: - watchdog -
[    8.577715] XFS (sda): Ending clean mount
[    8.709897] hub 1-1.4:1.0: USB hub found
[    8.710652] hub 1-1.4:1.0: 4 ports detected
[    9.850548] procd: - watchdog -
[    9.863255] procd: - ubus -
[    9.912644]  sdc: sdc1 sdc2 sdc3
[    9.917566] procd: - init -
[   10.496557] kmodloader: loading kernel modules from /etc/modules.d/*
[   10.533996] NET: Registered PF_ALG protocol family
[   10.584231] Key type dns_resolver registered
[   10.598049] Key type cifs.idmap registered
[   10.619117] tun: Universal TUN/TAP device driver, 1.6
[   10.692509] ffffffc07979e400: NSS core 0 DDR from 40000000 to 41000000
[   10.703391] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[   10.706581] nat46: module (version 4c5beee236841724219598fabb1edc93d4f08ce5) loaded.
[   10.710620] gre: GRE over IPv4 demultiplexor driver
[   10.717394] ip_gre: GRE over IPv4 tunneling driver
[   10.724370] ip6_gre: GRE over IPv6 tunneling driver
[   10.725168] ffffffc07979e400: nss core 0 booted successfully
[   10.739906] QCA multicast snooping installed successfully
[   10.754205] Jool: Core Jool v4.1.11.0 module inserted.
[   10.755217] NAT64 Jool v4.1.11.0 module inserted.
[   10.759043] SIIT Jool v4.1.11.0 module inserted.
[   10.789636] cryptodev: driver 1.13 loaded.
[   10.791984] nss_vlan_mgr_init_module[1940]:Module (Build Build Id: 06/03/24, 07:36:56) loaded
[   10.799851] PPP generic driver version 2.4.2
[   10.815920] NET: Registered PF_PPPOX protocol family
[   10.831402] nss-macsec0 DT exist!
[   10.831631] nss-macsec1 DT exist!
[   10.833939] cannot find nss-macsec2 node
[   10.833981] cannot find nss-macsec3 node
[   10.833985] nss_macsec init success
[   10.846933] hid: raw HID events driver (C) Jiri Kosina
[   10.862934] GACT probability on
[   10.868147] Mirror/redirect action on
[   10.877211] u32 classifier
[   10.877258]     input device check on
[   10.878854]     Actions configured
[   10.895483] ntfs3: Max link count 4000
[   10.906529] ntfs3: Enabled Linux POSIX ACLs support
[   10.915662] fuse: init (API version 7.39)
[   10.935428] usbcore: registered new interface driver cdc_wdm
[   10.937707] Loading modules backported from Linux version v6.6.15-0-g51f354b815c4
[   10.940193] Backport generated by backports.git 193becf2
[   10.964213] l2tp_ppp: PPPoL2TP kernel driver, V2.0
[   11.045661] PPTP driver version 0.8.5
[   11.049327] NET: Registered PF_QIPCRTR protocol family
[   11.061739] usbcore: registered new interface driver ums-alauda
[   11.063391] usbcore: registered new interface driver ums-cypress
[   11.068272] usbcore: registered new interface driver ums-datafab
[   11.074216] usbcore: registered new interface driver ums-freecom
[   11.080267] usbcore: registered new interface driver ums-isd200
[   11.086396] usbcore: registered new interface driver ums-jumpshot
[   11.091886] usbcore: registered new interface driver ums-karma
[   11.098974] usbcore: registered new interface driver ums-sddr09
[   11.105441] usbcore: registered new interface driver ums-sddr55
[   11.110264] usbcore: registered new interface driver ums-usbat
[   11.158901] hid-generic 0003:0D9F:0004.0001: hiddev96,hidraw0: USB HID v1.00 Device [POWERCOM Co.,LTD HID UPS Battery] on usb-xhci-hcd.1.auto-1.4.3/input0
[   11.159192] usbcore: registered new interface driver usbhid
[   11.171659] usbhid: USB HID core driver
[   11.178342] usbcore: registered new interface driver usblp
[   11.187797] wireguard: WireGuard 1.0.0 loaded. See www.wireguard.com for information.
[   11.187851] wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
[   11.224187] xt_time: kernel timezone is -0000
[   11.225813] usbcore: registered new interface driver cdc_ether
[   11.229878] usbcore: registered new interface driver cdc_ncm
[   11.301859] usbcore: registered new interface driver rndis_host
[   11.318675] ath11k c000000.wifi: ipq6018 hw1.0
[   11.318725] ath11k c000000.wifi: FW memory mode: 2
[   11.322414] remoteproc remoteproc0: powering up cd00000.remoteproc
[   11.333881] remoteproc remoteproc0: Booting fw image IPQ6018/q6_fw.mdt, size 7340
[   11.931256] remoteproc remoteproc0: remote processor cd00000.remoteproc is now up
[   11.933253] ath11k c000000.wifi: qmi ignore invalid mem req type 3
[   11.950315] ath11k c000000.wifi: chip_id 0x0 chip_family 0x4 board_id 0xff soc_id 0xffffffff
[   11.955855] ath11k c000000.wifi: fw_version 0x25008f8e fw_build_timestamp 2024-03-01 03:54 fw_build_id WLAN.HK.2.5.0.1-03982-QCAHKSWPL_SILICONZ-3
[   11.956419] kmodloader: done loading kernel modules from /etc/modules.d/*
[   12.098336] ath11k c000000.wifi: nss init soc nss if_num 203 userpd_id 0
[   13.237983] XFS (sdb): Mounting V5 Filesystem 607ce313-e5a1-4310-ae92-3e4d5acc9422
[   13.466290] XFS (sdb): Ending clean mount
[   13.724281] F2FS-fs (sdc3): Mounted with checkpoint version = 2d0bd97a
[   14.423008] zram0: detected capacity change from 0 to 512
[   14.438154] Adding 252k swap on /dev/zram0.  Priority:100 extents:1 across:252k SSDsc
[   14.809875] usb 1-1.4.3: USB disconnect, device number 7
[   17.672127] usb 1-1.4.3: new low-speed USB device number 8 using xhci-hcd
[   17.905605] hid-generic 0003:0D9F:0004.0002: hiddev96,hidraw0: USB HID v1.00 Device [POWERCOM Co.,LTD HID UPS Battery] on usb-xhci-hcd.1.auto-1.4.3/input0
[   20.378614] F2FS-fs (sdc2): device does not support discard
[   20.407700] F2FS-fs (sdc2): Mounted with checkpoint version = 28c8673b
[   21.380734] ECM init
[   21.391463] ECM database jhash random seed: 0x6b5a2e42
[   21.414347] ECM init complete
[   21.911226] br-lan: port 1(lan1) entered blocking state
[   21.921954] br-lan: port 1(lan1) entered disabled state
[   21.927409] nss-dp 3a001000.dp1 lan1: entered allmulticast mode
[   21.932636] nss-dp 3a001000.dp1 lan1: entered promiscuous mode
[   21.958640] br-lan: port 2(lan2) entered blocking state
[   21.969407] br-lan: port 2(lan2) entered disabled state
[   21.974399] nss-dp 3a001200.dp2 lan2: entered allmulticast mode
[   21.980181] nss-dp 3a001200.dp2 lan2: entered promiscuous mode
[   21.997883] br-lan: port 3(lan3) entered blocking state
[   21.997967] br-lan: port 3(lan3) entered disabled state
[   22.002118] nss-dp 3a001400.dp3 lan3: entered allmulticast mode
[   22.008301] nss-dp 3a001400.dp3 lan3: entered promiscuous mode
[   22.031679] br-lan: port 4(lan4) entered blocking state
[   22.031766] br-lan: port 4(lan4) entered disabled state
[   22.036098] nss-dp 3a001600.dp4 lan4: entered allmulticast mode
[   22.042018] nss-dp 3a001600.dp4 lan4: entered promiscuous mode
[   22.720443] br-lan: port 5(phy0-ap0) entered blocking state
[   22.731212] br-lan: port 5(phy0-ap0) entered disabled state
[   22.736520] ath11k c000000.wifi phy0-ap0: entered allmulticast mode
[   22.742462] ath11k c000000.wifi phy0-ap0: entered promiscuous mode
[   22.748473] br-lan: port 5(phy0-ap0) entered blocking state
[   22.754503] br-lan: port 5(phy0-ap0) entered forwarding state
[   23.659177] br-lan: port 6(phy1-ap0) entered blocking state
[   23.669988] br-lan: port 6(phy1-ap0) entered disabled state
[   23.675349] ath11k c000000.wifi phy1-ap0: entered allmulticast mode
[   23.681306] ath11k c000000.wifi phy1-ap0: entered promiscuous mode
[   23.799472] br-lan: port 6(phy1-ap0) entered blocking state
[   23.799555] br-lan: port 6(phy1-ap0) entered forwarding state
[   24.992675] nss-dp 3a001000.dp1 lan1: PHY Link up speed: 1000
[   25.004769] br-lan: port 1(lan1) entered blocking state
[   25.009143] br-lan: port 1(lan1) entered forwarding state
[   25.056686] nss-dp 3a001200.dp2 lan2: PHY Link up speed: 1000
[   25.057331] br-lan: port 2(lan2) entered blocking state
[   25.061471] br-lan: port 2(lan2) entered forwarding state
[   25.120462] nss-dp 3a001800.dp5 wan: PHY Link up speed: 1000
[   25.121575] nss-dp 3a001600.dp4 lan4: PHY Link up speed: 100
[   25.127070] br-lan: port 4(lan4) entered blocking state
[   25.130892] br-lan: port 4(lan4) entered forwarding state
[   30.221232] smp_affinity: ppdu-end-interrupts-mac1 pinned to 8
[   30.224967] smp_affinity: ppdu-end-interrupts-mac2 pinned to 4
[   30.234405] smp_affinity: ce0 pinned to 2
[   30.238539] smp_affinity: ce1 pinned to 2
[   30.241862] smp_affinity: ce2 pinned to 2
[   30.245425] smp_affinity: ce3 pinned to 2
[   30.249168] smp_affinity: ce5 pinned to 2
[   30.253416] smp_affinity: ce7 pinned to 2
[   30.257353] smp_affinity: ce9 pinned to 2
[   30.261255] smp_affinity: ce10 pinned to 2
[   30.265330] smp_affinity: ce11 pinned to 2
[   30.268544] smp_affinity: xhci-hcd:usb1 pinned to 4
[   31.187000] 2024.06.04 13:45:20 up 0 min, load average: 1.54, 0.36, 0.12
[   40.416556] nss-dp 3a001400.dp3 lan3: PHY Link up speed: 1000
[   40.416687] br-lan: port 3(lan3) entered blocking state
[   40.421329] br-lan: port 3(lan3) entered forwarding state
[  183.712665] nss-dp 3a001000.dp1 lan1: PHY Link is down
[  183.712962] br-lan: port 1(lan1) entered disabled state
[  185.760813] nss-dp 3a001000.dp1 lan1: PHY Link up speed: 1000
[  185.760922] br-lan: port 1(lan1) entered blocking state
[  185.765572] br-lan: port 1(lan1) entered forwarding state
root@MR7350:~# cat /sys/kernel/debug/qca-nss-drv/stats/cpu_load_ubi
CPU Utilization:
Note: Averaged over 1 second

Core 0:
Min     Avg     Max
 4%      4%      7%

That's good to hear! And you're getting wifi offloading showing up in /sys/kernel/debug/qca-nss-drv/stats/wifili?

So it means it should work on the AXT1800 too @tonytuya.

Did you have to modify anything with my repo outside of the standard board specific changes? I was going to include the following NSS dts in my repo once the PR for AXT1800 got approved. But I didn't have a way to test if it would boot properly.

I hope it is REAL wifi offloading, I sitll trapped in NSS SOC Initialization with no idea.

I can state AXT1800 can boot but still needs defination about nss_region to finish OP compile. However, NSS module seems not working.
https://gist.github.com/qosmio/9c69b363699521ded5f265838a008886.

I am happy to test anything since I got AXT1800 in my hand, and I am free those days! Also, I have the official code for GLiNet AXT1800 before they close the repository. Feel free to ask me for it!


________________________________________________________________________________

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< INTERNAL: UNKNOWN >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
________________________________________________________________________________


________________________________________________________________________________

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< PDEV 0 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
________________________________________________________________________________


#txrx

        wifili[0]_rx_msdu_error                 = 0               error
        wifili[0]_rx_inv_peer_rcv               = 0               special
        wifili[0]_rx_wds_srcport_exception      = 0               exception
        wifili[0]_rx_wds_srcport_exception_fail = 0               drop
        wifili[0]_rx_deliverd                   = 7706            special
        wifili[0]_rx_deliver_drops              = 0               drop
        wifili[0]_rx_intra_bss_ucast            = 0               special
        wifili[0]_rx_intra_bss_ucast_fail       = 0               drop
        wifili[0]_rx_intra_bss_mcast            = 0               special
        wifili[0]_rx_intra_bss_mcast_fail       = 0               drop
        wifili[0]_rx_sg_rcv_send                = 0               special
        wifili[0]_rx_sg_rcv_fail                = 0               drop
        wifili[0]_rx_mcast_echo                 = 0               special
        wifili[0]_rx_inv_tid                    = 0               special
        wifili[0]_stats_rx_frag_inv_sc          = 0               special
        wifili[0]_stats_rx_frag_inv_fc          = 0               special
        wifili[0]_stats_rx_frag_non_frag        = 0               special
        wifili[0]_stats_rx_frag_retry           = 0               special
        wifili[0]_stats_rx_frag_ooo             = 0               special
        wifili[0]_stats_rx_frag_ooo_seq         = 0               special
        wifili[0]_stats_rx_frag_all_frag_rcv    = 0               special
        wifili[0]_stats_rx_frag_deliver         = 0               special
        wifili[0]_tx_enqueue                    = 16062           special
        wifili[0]_tx_enqueue_drop               = 0               drop
        wifili[0]_tx_dequeue                    = 16062           special
        wifili[0]_tx_hw_enqueue_fail            = 0               drop
        wifili[0]_tx_sent_count                 = 16062           special


#tcl ring

        wifili[0]_tcl_no_hw_desc = 0               special
        wifili[0]_tcl_ring_full  = 0               special
        wifili[0]_tcl_ring_sent  = 16062           special


#tcl comp

        wifili[0]_tx_desc_free_inv_bufsrc       = 0               error
        wifili[0]_tx_desc_free_inv_cookie       = 0               special
        wifili[0]_tx_desc_free_hw_ring_empty    = 0               special
        wifili[0]_tx_desc_free_reaped           = 16199           special
        wifili[0]_tx_capture_enqueue_count      = 0               special
        wifili[0]_tx_capture_enqueue_fail_count = 0               error


#reo ring

        wifili[0]_reo_error          = 0               error
        wifili[0]_reo_reaped         = 7703            special
        wifili[0]_reo_inv_cookie     = 0               special
        wifili[0]_stats_reo_frag_rcv = 0               special


#tx sw pool

        wifili[0]_tx_desc_in_use            = 0               special
        wifili[0]_tx_desc_alloc_fail        = 0               special
        wifili[0]_tx_desc_already_allocated = 0               special
        wifili[0]_tx_desc_invalid_free      = 0               special
        wifili[0]_tx_desc_free_src_fw       = 3955            special
        wifili[0]_tx_desc_free_completion   = 12107           special
        wifili[0]_tx_desc_no_pb             = 0               special
        wifili[0]_tx_desc_queuelimit_drop   = 0               drop


#tx ext sw pool

        wifili[0]_ext_tx_desc_in_use            = 0               special
        wifili[0]_ext_tx_desc_alloc_fail        = 0               special
        wifili[0]_ext_tx_desc_already_allocated = 0               special
        wifili[0]_ext_tx_desc_invalid_free      = 0               special


#rxdma pool

        wifili[0]_rx_desc_no_pb      = 935337          special
        wifili[0]_rx_desc_alloc_fail = 0               special
        wifili[0]_rx_desc_in_use     = 4095            special


#rxdma ring

        wifili[0]_rxdma_hw_desc_unavailable = 0               special
        wifili[0]_rxdma_buf_replenished     = 11935           special


________________________________________________________________________________

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< PDEV 1 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
________________________________________________________________________________


#txrx

        wifili[1]_rx_msdu_error                 = 0               error
        wifili[1]_rx_inv_peer_rcv               = 0               special
        wifili[1]_rx_wds_srcport_exception      = 0               exception
        wifili[1]_rx_wds_srcport_exception_fail = 0               drop
        wifili[1]_rx_deliverd                   = 0               special
        wifili[1]_rx_deliver_drops              = 0               drop
        wifili[1]_rx_intra_bss_ucast            = 0               special
        wifili[1]_rx_intra_bss_ucast_fail       = 0               drop
        wifili[1]_rx_intra_bss_mcast            = 0               special
        wifili[1]_rx_intra_bss_mcast_fail       = 0               drop
        wifili[1]_rx_sg_rcv_send                = 0               special
        wifili[1]_rx_sg_rcv_fail                = 0               drop
        wifili[1]_rx_mcast_echo                 = 0               special
        wifili[1]_rx_inv_tid                    = 0               special
        wifili[1]_stats_rx_frag_inv_sc          = 0               special
        wifili[1]_stats_rx_frag_inv_fc          = 0               special
        wifili[1]_stats_rx_frag_non_frag        = 0               special
        wifili[1]_stats_rx_frag_retry           = 0               special
        wifili[1]_stats_rx_frag_ooo             = 0               special
        wifili[1]_stats_rx_frag_ooo_seq         = 0               special
        wifili[1]_stats_rx_frag_all_frag_rcv    = 0               special
        wifili[1]_stats_rx_frag_deliver         = 0               special
        wifili[1]_tx_enqueue                    = 3954            special
        wifili[1]_tx_enqueue_drop               = 0               drop
        wifili[1]_tx_dequeue                    = 3954            special
        wifili[1]_tx_hw_enqueue_fail            = 0               drop
        wifili[1]_tx_sent_count                 = 3954            special


#tcl ring

        wifili[1]_tcl_no_hw_desc = 0               special
        wifili[1]_tcl_ring_full  = 0               special
        wifili[1]_tcl_ring_sent  = 3954            special


#tcl comp

        wifili[1]_tx_desc_free_inv_bufsrc       = 0               error
        wifili[1]_tx_desc_free_inv_cookie       = 0               special
        wifili[1]_tx_desc_free_hw_ring_empty    = 0               special
        wifili[1]_tx_desc_free_reaped           = 3954            special
        wifili[1]_tx_capture_enqueue_count      = 0               special
        wifili[1]_tx_capture_enqueue_fail_count = 0               error


#reo ring

        wifili[1]_reo_error          = 0               error
        wifili[1]_reo_reaped         = 0               special
        wifili[1]_reo_inv_cookie     = 0               special
        wifili[1]_stats_reo_frag_rcv = 0               special


#tx sw pool

        wifili[1]_tx_desc_in_use            = 0               special
        wifili[1]_tx_desc_alloc_fail        = 0               special
        wifili[1]_tx_desc_already_allocated = 0               special
        wifili[1]_tx_desc_invalid_free      = 0               special
        wifili[1]_tx_desc_free_src_fw       = 3954            special
        wifili[1]_tx_desc_free_completion   = 0               special
        wifili[1]_tx_desc_no_pb             = 0               special
        wifili[1]_tx_desc_queuelimit_drop   = 0               drop


#tx ext sw pool

        wifili[1]_ext_tx_desc_in_use            = 0               special
        wifili[1]_ext_tx_desc_alloc_fail        = 0               special
        wifili[1]_ext_tx_desc_already_allocated = 0               special
        wifili[1]_ext_tx_desc_invalid_free      = 0               special


#rxdma pool

        wifili[1]_rx_desc_no_pb      = 1               special
        wifili[1]_rx_desc_alloc_fail = 0               special
        wifili[1]_rx_desc_in_use     = 4095            special


#rxdma ring

        wifili[1]_rxdma_hw_desc_unavailable = 0               special
        wifili[1]_rxdma_buf_replenished     = 4095            special


________________________________________________________________________________

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< PDEV 2 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
________________________________________________________________________________


#txrx

        wifili[2]_rx_msdu_error                 = 0               error
        wifili[2]_rx_inv_peer_rcv               = 0               special
        wifili[2]_rx_wds_srcport_exception      = 0               exception
        wifili[2]_rx_wds_srcport_exception_fail = 0               drop
        wifili[2]_rx_deliverd                   = 0               special
        wifili[2]_rx_deliver_drops              = 0               drop
        wifili[2]_rx_intra_bss_ucast            = 0               special
        wifili[2]_rx_intra_bss_ucast_fail       = 0               drop
        wifili[2]_rx_intra_bss_mcast            = 0               special
        wifili[2]_rx_intra_bss_mcast_fail       = 0               drop
        wifili[2]_rx_sg_rcv_send                = 0               special
        wifili[2]_rx_sg_rcv_fail                = 0               drop
        wifili[2]_rx_mcast_echo                 = 0               special
        wifili[2]_rx_inv_tid                    = 0               special
        wifili[2]_stats_rx_frag_inv_sc          = 0               special
        wifili[2]_stats_rx_frag_inv_fc          = 0               special
        wifili[2]_stats_rx_frag_non_frag        = 0               special
        wifili[2]_stats_rx_frag_retry           = 0               special
        wifili[2]_stats_rx_frag_ooo             = 0               special
        wifili[2]_stats_rx_frag_ooo_seq         = 0               special
        wifili[2]_stats_rx_frag_all_frag_rcv    = 0               special
        wifili[2]_stats_rx_frag_deliver         = 0               special
        wifili[2]_tx_enqueue                    = 0               special
        wifili[2]_tx_enqueue_drop               = 0               drop
        wifili[2]_tx_dequeue                    = 0               special
        wifili[2]_tx_hw_enqueue_fail            = 0               drop
        wifili[2]_tx_sent_count                 = 0               special


#tcl ring

        wifili[2]_tcl_no_hw_desc = 0               special
        wifili[2]_tcl_ring_full  = 0               special
        wifili[2]_tcl_ring_sent  = 0               special


#tcl comp

        wifili[2]_tx_desc_free_inv_bufsrc       = 0               error
        wifili[2]_tx_desc_free_inv_cookie       = 0               special
        wifili[2]_tx_desc_free_hw_ring_empty    = 0               special
        wifili[2]_tx_desc_free_reaped           = 0               special
        wifili[2]_tx_capture_enqueue_count      = 0               special
        wifili[2]_tx_capture_enqueue_fail_count = 0               error


#reo ring

        wifili[2]_reo_error          = 0               error
        wifili[2]_reo_reaped         = 0               special
        wifili[2]_reo_inv_cookie     = 0               special
        wifili[2]_stats_reo_frag_rcv = 0               special


#tx sw pool

        wifili[2]_tx_desc_in_use            = 0               special
        wifili[2]_tx_desc_alloc_fail        = 0               special
        wifili[2]_tx_desc_already_allocated = 0               special
        wifili[2]_tx_desc_invalid_free      = 0               special
        wifili[2]_tx_desc_free_src_fw       = 0               special
        wifili[2]_tx_desc_free_completion   = 0               special
        wifili[2]_tx_desc_no_pb             = 0               special
        wifili[2]_tx_desc_queuelimit_drop   = 0               drop


#tx ext sw pool

        wifili[2]_ext_tx_desc_in_use            = 0               special
        wifili[2]_ext_tx_desc_alloc_fail        = 0               special
        wifili[2]_ext_tx_desc_already_allocated = 0               special
        wifili[2]_ext_tx_desc_invalid_free      = 0               special


#rxdma pool

        wifili[2]_rx_desc_no_pb      = 0               special
        wifili[2]_rx_desc_alloc_fail = 0               special
        wifili[2]_rx_desc_in_use     = 0               special


#rxdma ring

        wifili[2]_rxdma_hw_desc_unavailable = 0               special
        wifili[2]_rxdma_buf_replenished     = 0               special


#wbm ring

        wifili_wbm_ie_local_alloc_fail = 0               error
        wifili_wbm_src_dma             = 131             special
        wifili_wbm_src_dma_code_inv    = 0               special
        wifili_wbm_src_reo             = 6               special
        wifili_wbm_src_reo_code_nullq  = 0               special
        wifili_wbm_src_reo_code_inv    = 1               error
        wifili_wbm_src_inv             = 0               error

My build is customized. But most patches are from your and robimarco Linux kernel repos. NSS dtsi is from @shi05275 repo. Also, I deleted the 188 patch from mac80211. But for me, nss-drv crashed when nss-firmware compiled from your Makefile. It works only with the old Makefile. I don't know why.

It included from reserved-memory node from ipq6018.dtsi that should be fixed by the patch.

	reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		rpm_msg_ram: memory@60000 {
			reg = <0x0 0x00060000 0x0 0x6000>;
			no-map;
		};

		nss_region: nss@40000000 {
			reg = <0x0 0x40000000 0x0 0x01000000>;
			no-map;
		};

		bootloader@4a100000 {
			reg = <0x0 0x4a100000 0x0 0x400000>;
			no-map;
		};

		sbl@4a500000 {
			reg = <0x0 0x4a500000 0x0 0x100000>;
			no-map;
		};

		smem@4aa00000 {
			compatible = "qcom,smem";
			reg = <0x0 0x4aa00000 0x0 0x00100000>;
			no-map;

			hwlocks = <&tcsr_mutex 3>;
		};

		tzapp_region: tzapp@4a600000 {
			reg = <0x0 0x4a600000 0x0 0x400000>;
			no-map;
		};

		q6_region: wcnss@4ab00000 {
			reg = <0x0 0x4ab00000 0x0 0x5500000>;
			no-map;
		};

		q6_etr_region: q6_etr_dump@1 {
			reg = <0x0 0x50000000 0x0 0x00100000>;
			no-map;
		};

		m3_dump_region: m3_dump@50100000 {
			reg = <0x0 0x50100000 0x0 0x00100000>;
			no-map;
		};
	};
1 Like

COOL! I will test immediately! But without 188 Patch, do we still need this?